Tuning of procedure having cursor
I have following procedure which has to be tuned. I was thinking of using Bulk collect, but I believe I cannot use because I am having one select statement before update. art_neg_item_level table has got 40000000 records and art_prod_series has got 7000000 records. The procedure is not getting executed at all (even in one full day). Please suggest some alternative solution
CREATE OR REPLACE PROCEDURE Art_Neg_Item_Cost_Update IS
v_prod_id art_neg_item_level.prod_id%TYPE;
v_busi_dte art_neg_item_level.busi_dte%TYPE;
v_ser_ltr art_neg_item_level.ser_ltr%TYPE;
v_itm_qty art_neg_item_level.itm_qty%TYPE;
v_curr_cost art_prod_series.curr_cost%TYPE;
v_ord_no art_neg_item_level.ord_no%TYPE;
CURSOR get_transaction_data IS
SELECT prod_id, ser_ltr, busi_dte, itm_qty, ord_no
FROM art_neg_item_level
WHERE extd_cost=0;
BEGIN
-- Loop through the import data, parse out the string to variables
OPEN get_transaction_data;
LOOP
FETCH get_transaction_data INTO v_prod_id, v_ser_ltr, v_busi_dte, v_itm_qty, v_ord_no;
EXIT WHEN get_transaction_data%NOTFOUND;
BEGIN
SELECT a.curr_cost
INTO v_curr_cost
FROM art_prod_series a
WHERE a.eff_dte = (SELECT MAX(c.eff_dte)
FROM art_prod_series c
WHERE a.prod_id = c.prod_id
AND a.ser_ltr = c.ser_ltr
AND c.eff_dte <= v_busi_dte
AND a.curr_cost <> 0
AND v_prod_id = a.prod_id
AND v_ser_ltr = a.ser_ltr;
IF SQL%ROWCOUNT <> 0 THEN
UPDATE art_neg_item_level
SET cost = v_curr_cost,
extd_cost = v_curr_cost*v_itm_qty
WHERE prod_id = v_prod_id
AND ser_ltr = v_ser_ltr
AND busi_dte = v_busi_dte
AND itm_qty = v_itm_qty
AND ord_no = v_ord_no
AND extd_cost = 0;
COMMIT;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
END;
END LOOP;
CLOSE get_transaction_data;
COMMIT;
END Art_Neg_Item_Cost_Update;
Hi
Please go for using collection instead of cursors.. Please try this
CREATE OR REPLACE PROCEDURE Art_Neg_Item_Cost_Update IS
v_prod_id art_neg_item_level.prod_id%TYPE;
v_busi_dte art_neg_item_level.busi_dte%TYPE;
v_ser_ltr art_neg_item_level.ser_ltr%TYPE;
v_itm_qty art_neg_item_level.itm_qty%TYPE;
v_curr_cost art_prod_series.curr_cost%TYPE;
v_ord_no art_neg_item_level.ord_no%TYPE;
BEGIN
-- Loop through the import data, parse out the string to variables
--OPEN get_transaction_data;
--LOOP
--FETCH get_transaction_data INTO v_prod_id, v_ser_ltr, v_busi_dte, v_itm_qty, v_ord_no;
--EXIT WHEN get_transaction_data%NOTFOUND;
for i in(SELECT prod_id, ser_ltr, busi_dte, itm_qty, ord_no
FROM art_neg_item_level
WHERE extd_cost=0)
loop
BEGIN
SELECT a.curr_cost
INTO v_curr_cost
FROM art_prod_series a
WHERE a.eff_dte = (SELECT MAX(c.eff_dte)
FROM art_prod_series c
WHERE a.prod_id = c.prod_id
AND a.ser_ltr = c.ser_ltr
AND c.eff_dte <= i.busi_dte
AND a.curr_cost <> 0
AND i.prod_id = a.prod_id
AND i.ser_ltr = a.ser_ltr;
IF SQL%ROWCOUNT 0 THEN
UPDATE art_neg_item_level
SET cost = v_curr_cost,
extd_cost = v_curr_cost*i.itm_qty
WHERE prod_id =i.prod_id
AND ser_ltr =i.ser_ltr
AND busi_dte = i.busi_dte
AND itm_qty = i.itm_qty
AND ord_no = i.ord_no
AND extd_cost = 0;
COMMIT;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
END;
END LOOP;
CLOSE get_transaction_data;
COMMIT;
END Art_Neg_Item_Cost_Update;
Similar Messages
-
How to Execute a Stored Procedure having cursor?
Hi Experts,
I'm a Newbie in Oracle can please help me on creating a execution script for the following SP.
create or replace
PROCEDURE TestListsGet
v_Mkt IN CHAR DEFAULT NULL ,
cv_1 IN OUT SYS_REFCURSOR
AS
BEGIN
OPEN cv_1 FOR
SELECT NAME,
LIT,
LiInfo,
DisplayOrder
FROM ListsGET
WHERE Mkt = v_Mkt
ORDER BY DisplayOrder;
END;Regards,
--EswinThere are many constructs you would have to read up on in the PL/SQL guide.
Where do you plan to call the procedure from?
The following uses SQL Plus
set serveroutput on
declare
r sys_refcursor;
v_name ListsGet.Name%type;
v_Lit ListsGet.Lit%type;
v_LiInfo ListsGet.LiInfo%type;
v_DisplayOrder ListGet.DisplayOrder%type;
begin
TestListGet (v_Mkt => null, cv_1 => r);
loop
fetch r into v_name, v_Lit, v_LiInfo, v_DisplayOrder;
exit when r%notfound;
dbms_output.put_line('Name : ' || v_Name);
dbms_output.put_line('Lit : ' || v_Lit);
dbms_output.put_line('LiInfo : ' || v_LiInfo);
dbms_output.put_line('Display Order : ' || v_DisplayOrder);
end loop;
close r;
end;
/ -
I wanted to have a cursor in my procedure having results from different tables and different databases. I successfully created the query and compiled it using the procedure builder. However, when i was about to create it as stored procedure in iSQLplus, it displayed a warning. It says "Procedure created wuth compilation error." The first error is "PLS-00341: declaration of cursor 'SUBJ_CUR' is incomplete or malformed"
Here's a piece of my code:
PROCEDURE assess(STUD_ID VARCHAR2, STUD_YEAR NUMBER, STUD_TYPE CHAR) IS
CURSOR subj_cur IS
SELECT e.student_id, s.subject_id, s.subj_code, s.subject_title, s.units, s.pay_units,
d.department_name, s.tuition_fee_type, s.lab_fee_type, f.year, f.amount
FROM regist.enrol e, regist.offering o, regist.subject s,
fee_details f, regist.student st, regist.department d
WHERE (e.student_id = STUD_ID) AND (e.offering_id = o.offering_id) AND
(o.subject_id = s.subject_id) AND (f.fee_no = s.tuition_fee_type) AND
(st.student_id=e.student_id) AND ((f.year = STUD_YEAR) OR (f.year=0)) AND
(s.department_id = d.department_id);
regist and system are databases.
Can anyone tell me where did I go wrong?
I resorted though in creating views, however I still received an error. It says, "Insufficient privileges"
Help me please..... I really need it badly..First of all, I've no experience with iSQLplus. I'm just wondering in which database the table fee_details is: system or regist? You didn't prefix the table.
-
How to create procedure having delete statement with between function?
I am very new in SQL Development, I want to create a procedure having two date variable start and end and these two variable i want to use in procedure body to delete data from a specific table between two date duration.
Please guide
Thanks,create procedure some_proc (start_date date, end_date date)
as
begin
delete from your_table
where your_date_column between start_date and end_date;
end some_proc;
/ -
Stored procedure with cursor as out parameter
Can any one help me by showing how to write a procedure with cursor as out parameter and caputuring it in java using jdbc.
Thanks in advance,
shravan bharadwajI know that in the SQLJ distribution (which is also downloadable) there is an example in the demo directory called RefCursDemo that shows the SQL code and how to call it - albeit from SQLJ and not JDBC. There may also be a demo in the JDBC distribution, though I am not sure about that.
-
Is BC4J a viabl option for database with stored procedure (ref cursor) API?
I'm about to begin a Web application development project. As foundation, we have a (Oracle) database of certain complexity that have a data access API developed with PL/SQL packages.
This API is designed to get data through stored procedures/functions that return REF CURSOR.
Personally I have been investigating about Oracle ADF/JSF, and a number of others J2EE technologies, and at this moment I am doubting if ADF BC are a viable option to my development team.
I think this because I have noticed that one of the great drawback in ADF BC is the lack of simplicity to get data through stored procedures/functions that returns REF CURSORS.
I have been looking for documentation and the only thing that I have found are two examples:
1.- One that really do not work (fails in get data from ref cursor): ADF BC StoredProcedure Sample application.
2.- And other published by Steve Muench in
http://radio.weblogs.com/0118231/stories/2003/03/03/gettingAViewObjectsResultRowsFromARefCursor.html. This sample works fine.
But, the problem with the approach of this last article is the amount (and complexity) of the code necessary to make so basic and recurrent operation as is "obtain data through a stored procedure (ref cursor)".
Below it is the code that I have constructed to call a function that returns a ref cursor (based on steve's article).
If this is the only way to make this (historically so basic and simple) task, then it is obvious that BC is not a viable technology to my (or I am in a mistake?), since we have about 50 stored procedures/functions to access the underlying data; that stored procedures/functions are key to development of the new application (and, still more, currently are used to anothers apps ).
By all this, I would like consult to Oracle's people:
1.- I really must reject BC as technology to implement this project ?
2.- It is possible to access stored procedures in a simpler way using BC?
3.- If the answer to 2 is NOT: in near future, the BC team has plans to give more support to the simple access to stored procedures?
4.- If the answer to 3 is NOT: what another technology you recommend to construct my data access/business tier and still be able to using the others characteristics of ADF?
Thank you very much for your guidelines.
Regards, RL.
** And the code!!!
** ### I am forced to do this for each call to a procedure???? ###
package myrefcursor.model;
import java.math.BigDecimal;
import java.sql.CallableStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Types;
import oracle.jbo.JboException;
import oracle.jbo.domain.NullValue;
import oracle.jbo.domain.Number;
import oracle.jbo.server.DBTransaction;
import oracle.jbo.server.ViewObjectImpl;
import oracle.jbo.server.ViewRowImpl;
import oracle.jbo.server.ViewRowSetImpl;
import oracle.jdbc.driver.OracleCallableStatement;
import oracle.jdbc.driver.OracleTypes;
public class TraePolizasViewImpl extends ViewObjectImpl {
private static final String SQL = "begin ? := PKG_PRUEBA.trae_polizas(?);end;";
private static final String COUNTSQL = "begin ? := PKG_PRUEBA.count_trae_polizas(?);end;";
public TraePolizasViewImpl() {
protected void executeQueryForCollection(Object qc,Object[] params,int numUserParams) {
BigDecimal rut_contratante = null;
Object[] theUserParam = null;
System.out.println(params);
System.out.println(params[0]);
if (params != null)
theUserParam = (Object[]) params[0];
//if (theUserParam != null && theUserParam.length > 0 )
if (! (theUserParam[1] instanceof NullValue) )
rut_contratante = (BigDecimal)theUserParam[1];
storeNewResultSet(qc ,retrieveRefCursor(qc, rut_contratante));
super.executeQueryForCollection(qc, params, numUserParams);
protected void create() {
getViewDef().setQuery(null);
getViewDef().setSelectClause(null);
setQuery(null);
protected ViewRowImpl createRowFromResultSet(Object qc, ResultSet rs) {
rs = getResultSet(qc);
ViewRowImpl r = createNewRowForCollection(qc);
try {
populateAttributeForRow(r,0, nullOrNewNumber(rs.getBigDecimal(1)));
populateAttributeForRow(r,1, rs.getString(2));
catch (SQLException s) {
throw new JboException(s);
return r;
protected boolean hasNextForCollection(Object qc) {
ResultSet rs = getResultSet(qc);
boolean nextOne = false;
try {
nextOne = rs.next();
if (!nextOne) {
setFetchCompleteForCollection(qc, true);
rs.close();
catch (SQLException s) {
throw new JboException(s);
return nextOne;
protected void releaseUserDataForCollection(Object qc, Object rs) {
ResultSet userDataRS = getResultSet(qc);
if (userDataRS != null) {
try { userDataRS.close(); }
catch (SQLException s) { ; }
super.releaseUserDataForCollection(qc, rs);
public long getQueryHitCount(ViewRowSetImpl viewRowSet) {
return viewRowSet.getRowCount();
private ResultSet retrieveRefCursor(Object qc, BigDecimal rut_contratante) {
CallableStatement st = null;
try {
st = getDBTransaction().createCallableStatement(SQL, DBTransaction.DEFAULT);
st.registerOutParameter(1,OracleTypes.CURSOR);
if (rut_contratante == null)
st.setNull(2, Types.NUMERIC);
else
st.setBigDecimal(2, rut_contratante);
st.execute();
ResultSet rs = ((OracleCallableStatement)st).getCursor(1);
rs.setFetchSize(getFetchSize());
return rs ;
catch (SQLException s) {
throw new JboException(s);
finally {try {st.close();} catch (SQLException s) {;}}
private void storeNewResultSet(Object qc, ResultSet rs) {
ResultSet existingRs = getResultSet(qc);
if (existingRs != null) {
try {existingRs.close();} catch (SQLException s) {;}
setUserDataForCollection(qc,rs);
hasNextForCollection(qc); // Prime the pump with the first row.
private ResultSet getResultSet(Object qc) {
return (ResultSet)getUserDataForCollection(qc);
private static Number nullOrNewNumber(BigDecimal b) {
try {
return b != null ? new Number(b) : null;
catch (SQLException s) { ; }
return null;
public BigDecimal getprutcontratante() {
return (BigDecimal)getNamedWhereClauseParam("prutcontratante");
public void setprutcontratante(BigDecimal value) {
setNamedWhereClauseParam("prutcontratante", value);
}no?
-
How to execute the packaged procedure(having out param) in TOAD for Oracle
Hi.
Could you help me
How to execute the packaged procedure having out parameters in TOAD for Oralce..
Thanks..Use anonymous PL/SQL block to execute it.
Example.
DECLARE
<out variable name> <out variable data type>;
BEGIN
<package name>.<procedure name>(<out variable name>);
END; -
Stored procedure: nested cursor problem
Hey folks,
i am really having a hard time trying to figure out how nested cursors work.
What i want to do:
-> Do one select statement and process the yielded rows with one cursor
-> Do another select statement depending on the first cursor
The code is quite simple, the beginning of the stored procedure is:
create or replace
PROCEDURE extractEntireMD IS
CURSOR curTemplateUnitId IS
SELECT
tu.externalident,
tu.templateunitid
FROM
templateunit tu
WHERE
tu.templateunitid = 100007;
CURSOR curPartTypeId(templateUnitID IN varchar2) IS
SELECT
tpt.parttypeid
FROM
templateparttype tpt
WHERE
tpt.templateunitid = templateUnitID;
From what i have read, this seems to be right.
No i want to use this code like this:
BEGIN
FOR valInCurTemplateUnitId IN curTemplateUnitId LOOP
DBMS_OUTPUT.PUT_LINE('ExtIdent: ' || valInCurTemplateUnitId.externalident);
DBMS_OUTPUT.PUT_LINE('templateunitid: ' || valInCurTemplateUnitId.templateunitid);
FOR valIncurPartTypeId IN curPartTypeId(valInCurTemplateUnitId.templateunitid) LOOP
DBMS_OUTPUT.PUT_LINE('PartTypeId: ' || valIncurPartTypeId.parttypeid);
END LOOP;
END LOOP;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('No such data ');
END;
The problem:
I seem to be doing something wrong, because Oracle does not heed the argument which i give to the second cursor from the first cursor:
CURSOR curPartTypeId(templateUnitID IN varchar2) IS
which i call via:
FOR valIncurPartTypeId IN curPartTypeId(valInCurTemplateUnitId.templateunitid)
Instead, oracle prints out __all__ templateunitids.
If I modify the second cursor with a constant argument like this:
CURSOR curPartTypeId(templateUnitID IN varchar2) IS
SELECT DISTINCT
tpt.parttypeid
FROM
templateparttype tpt
WHERE
tpt.templateunitid = 100007;
The result is correct. So it seems like oracle simply disregards the parameter i am giving him for the second cursor.
What am i doing wrong?> i am really having a hard time trying to figure out how nested cursors work.
Good. I trust that this will result in the realisation that it is an idiotic thing to emulate the features of the SQL engine in PL/SQL. Only a fool thinks the he/she can outprogram and outsmart the SQL engine, and do things like nested loop joins better and faster in PL/SQL.
Use SQL for the purpose it was designed. Use PL/SQL for the purpose it was designed.
Joining of data? That is prime function and feature of SQL. Not PL/SQL. -
Help Regarding File I/O in a procedure using Cursor
Hi all,
I am using a procedure, which uses a cursor, in this cursor we do some calculations and then write these calculations in a .csv file using utl_file package.
We have 2 approaches,
1. In every loop of cursor calculate and write then and there itself in the .csv file this means that file is open for total execution time of cursor.
2. In every loop of cursor calculate the values and at end of loop get the accumulated value in temporary variables and write into the file once, rather than in loop.
Which approach is better? Any visible proofs of which is better approach?
i. Our database server is a stand alone server.
ii. The file to be created is on same server.
iii. Our server is single CPU, single disk server.
iv. at a time only one user will access the file to write and that too everytime file is created with unique name having timestamp in its name.
Considering all these points, can you guys pls help me in deciding which is better approach, how and why?
Thanks in advance,
Avinash Bhamare.Hi,
Thanks for the link,
But it is not what i am looking for...
My doubt is simple and regarding whether we should be doin the I/O operations on any file in a loop or outisde loop.
Thanks & Regards,
Avinash. -
How to get resultset from procedure having dynamic select sql query ?
Hi,
I have created a procedure, in which there is dynamic select query. The procedure has one out put parameter which gives error code. When I compile that procedure it compiles successufully. When I run it it executes successfully and gives output error code. But I don't know how to get resultset of that dynamic select sql query. I need that.
This is the procedure:
create or replace
PROCEDURE uspGetProductDetailsMultiOrder
v_DefinitionDBName IN VARCHAR2,
v_CommonDBName IN VARCHAR2,
v_Filter_FilledStatus IN VARCHAR2,
v_Filter_Internal_Counterparty IN nvarchar2,
v_Filter_NoteType IN nvarchar2,
v_Filter_Exchange IN nvarchar2,
v_Filter_Issuer IN nvarchar2,
v_Filter_Product_Category IN VARCHAR2,
v_DateToFilter IN VARCHAR2,
v_Filter_FromDate IN VARCHAR2,
v_Filter_ToDate IN VARCHAR2,
v_Active_YN_Flag IN NVARCHAR2,
v_Entity_ID IN NVARCHAR2,
v_ErrorNumber OUT NUMBER
as
v_SelectSQL nvarchar2(32767);
v_Setting_Name nvarchar2(32767);
v_Default_Value nvarchar2(32767);
v_Config_Value nvarchar2(32767);
v_CCY_ID NUMBER(10,0);
v_CCY_Data nvarchar2(32767);
v_CCY_List nvarchar2(32767);
v_Seq_Id NUMBER(10,0);
SWV_Active_YN_Flag NVARCHAR2(1);
SWV_VarStr long;--varchar2(4000);
SWV_TRANCOUNT NUMBER(10,0);
SWV_fnc_SplitString_Id_var1 NUMBER(10,0);
SWV_fnc_SplitString_Id_var0 NUMBER(10,0);
CURSOR RestrictTermsheetVisibilityByC
IS select CS.Setting_Name,Default_Value,Config_Value
from Config_Settings CS LEFT OUTER JOIN Entity_Config EC ON EC.Setting_ID = CS.Setting_ID
where EC.Entity_ID = v_Entity_ID AND Setting_Level = 'ENTITY';
CURSOR Get_RestrictCCY_List_Cursor IS SELECT Id_1,Data_1 FROM table(fnc_SplitString(v_Config_Value,','));
--CURSOR Get_RestrictCCY_List_Cursor IS SELECT Id,Data FROM imp;
CURSOR GetRestrictTemplateListCursor
-- is select id,data from imp;
IS SELECT Id_1,Data_1 FROM table(fnc_SplitString(v_Config_Value,',')) ;
--Parikshit 18-Jul-2010, active YN flag param added in SP
BEGIN
SWV_Active_YN_Flag := v_Active_YN_Flag;
if SWV_Active_YN_Flag = ' ' then
SWV_Active_YN_Flag := 'Y';
end if;
v_SelectSQL := ' ';
v_SelectSQL := v_SelectSQL || ' Select ';
v_SelectSQL := v_SelectSQL || ' NM.Note_Master_Id, NM.Product_Name, NM.Template_ID, NM.Template_Sr_No, NM.Asset, NM.Exchange, NM.Type, NM.Currency';
--SET @SelectSQL = @SelectSQL + ' , NM.Trade_Date, NM.Value_Date, NM.Valuation_Date, NM.Maturity_Date, NM.Tenor, NM.Strike_Price_Percentage, (case when (NM.Type like '' ELN%'' or NM.Type like ''RELN%'') THEN NOP.Issue_Price Else NM.Customer_Price End) as Customer_Price, NM.Dealer_Price, (case when (NM.Type like '' ELN%'' or NM.Type like ''RELN%'') THEN NOP.Customer_Yield Else NM.Customer_Yield End) as Customer_Yield, NOP.Dealer_Cost_PA as Internal_Cost '
v_SelectSQL := v_SelectSQL || ' , NM.Trade_Date, NM.Value_Date, NM.Valuation_Date, NM.Maturity_Date, NM.Tenor, NM.Strike_Price_Percentage, (case when (NM.PriceList_YN = ''Y'') THEN NOP.Issue_Price Else NM.Customer_Price End) as Customer_Price, NM.Dealer_Price, (case when (NM.PriceList_YN = ''Y'') THEN NOP.Customer_Yield Else NM.Customer_Yield End) as Customer_Yield, NOP.Dealer_Cost_PA as Internal_Cost ';
v_SelectSQL := v_SelectSQL || ' , NM.Minimum_Issue_Size, NM.Maximum_Issue_Size, NM.Minimum_Tolerence_Amount, NM.Maximum_Tolerence_Amount, NM.Trigger_Amount_Warning, nvl(NM.PerUnit_Equivalent_Amount,1) as PerUnit_Equivalent_Amount, NM.Active_YN_Flag, NM.Verify_YN_Flag ';
v_SelectSQL := v_SelectSQL || ' , NM.Tranche_YN_Flag, NM.Launch_Date, NM.Open_Date, NM.Close_Date, NM.PreHedged_YN, NM.Created_By, NM.Created_At, NM.Verified_At, NM.Verified_By, NM.ISIN, NM.Issuer';
v_SelectSQL := v_SelectSQL || ' , NM.Product_Catagory as Product_Category, NM.Note_Issuer_Type as Issuer_Category, NM.Series_No as Series_No, NM.Minimum_Investment_Amount ';
--Added by Parikshit on 14-Jun-2011, to remove the unwinding amounts from the total issue size
--SET @SelectSQL = @SelectSQL + ' , NOP.LastTimeWhenProductModified,NOP.Nominal_Amount as Current_Issue_Size, NOP.Filled_Status, NM.Counterparty as Internal_Counterparty '
v_SelectSQL := v_SelectSQL || ' , NOP.LastTimeWhenProductModified,(NOP.Nominal_Amount - nvl(ND.Unwind_Amount,0) ) as Current_Issue_Size, NOP.Filled_Status, NM.Counterparty as Internal_Counterparty ';
--********************************************************END
v_SelectSQL := v_SelectSQL || ' ,T2.Confirmed_Amount, T2.Confirmed_Shares';
v_SelectSQL := v_SelectSQL || ' , T3.Live_Deals';
v_SelectSQL := v_SelectSQL || ' , BS.Net_Trade_Hedged, BS.Net_Trade_Outstanding, BS.Hedged_Nominal_BUY, BS.Hedged_Nominal_SELL, BS.Outstanding_Nominal_BUY, BS.Outstanding_Nominal_SELL ';
v_SelectSQL := v_SelectSQL || ' , ( case When UPPER(NM.PreHedged_YN) = ''Y'' Then ''Launched'' ';
v_SelectSQL := v_SelectSQL || ' When ((NM.Maturity_Date IS NOT NULL) AND to_date(NM.Maturity_Date) <= to_date(sysdate)) Then ''Matured''';
v_SelectSQL := v_SelectSQL || ' When (UPPER(NM.PreHedged_YN) = ''N'' AND NM.Launch_Date IS NOT NULL) Then ''Launched''';
--Ready to launch
v_SelectSQL := v_SelectSQL || ' When (UPPER(NM.PreHedged_YN) = ''N'' AND NM.Launch_Date IS NULL AND (T2.Confirmed_Amount >= NM.Minimum_Issue_Size) AND to_date(Close_Date) > to_date(sysdate) ) Then ''Ready To Launch''';
--Ready to launch
v_SelectSQL := v_SelectSQL || ' When (UPPER(NM.PreHedged_YN) = ''N'' AND NM.Launch_Date IS NULL AND (T2.Confirmed_Amount >= (NM.Minimum_Issue_Size - NM.Minimum_Tolerence_Amount)) AND to_date(Close_Date)= to_date(sysdate) ) Then ''Ready To Launch''';
v_SelectSQL := v_SelectSQL || ' When (UPPER(NM.PreHedged_YN) = ''N'' AND NM.Launch_Date IS NULL AND (T2.Confirmed_Amount >= (NM.Minimum_Issue_Size - NM.Minimum_Tolerence_Amount)) AND to_date(Close_Date)< to_date(sysdate) ) Then ''Ready To Launch''';
--Warning trigger reached
v_SelectSQL := v_SelectSQL || ' When (UPPER(NM.PreHedged_YN) = ''N'' AND NM.Launch_Date IS NOT NULL AND (T2.Confirmed_Amount >= NM.Trigger_Amount_Warning )) Then ''Warning Trigger Reached''';
v_SelectSQL := v_SelectSQL || ' Else ''Not Ready'' ';
v_SelectSQL := v_SelectSQL || ' End)Launch_Status';
v_SelectSQL := v_SelectSQL || ' , NI.Issuer_Code';
v_SelectSQL := v_SelectSQL || ' , (nvl(NOP.Nominal_Amount,0) - nvl(T2.Confirmed_Amount,0)) as Unconfirmed_Amount, NM.Upfront as Upfront, case when UPPER(NM.PreHedged_YN) = ''Y'' THEN 0 else (nvl(T2.Confirmed_Amount,0) - nvl(BS.Net_Trade_Hedged,0)) end as ReadyToHedge';
v_SelectSQL := v_SelectSQL || ' , NOP.Hard_Margin as Margin_Amount, NM.YearBasis as YearBasis, NM.Note_Product_Rating as Equity_Risk_Score, AD.Equity_Asset_Class ';
v_SelectSQL := v_SelectSQL || ' , NM.Note_Product_Rating as Product_Rating, NOP.PO_ID, AD.LotSize as Lot_Size, NM.Max_Orders_Per_Product as MAX_Orders, NOP.Order_Count as Current_Order_Count, nvl(NM.Denomination_Ccy,NM.Currency) as Denomination_Ccy, NM.Note_Scheme_Type as Underlying_Type, NM.Note_Asset_Class as Asset_Class, NULL as Product_Created_YN, NULL as Product_Created_ID, ( (case when NM.Note_Order_Type = '''' then N''Market'' else NM.Note_Order_Type end ) ) as Order_Type, NOP.Spot_Price, NM.Note_Price_Link, NOP.Strike_Price, NVL(NM.C_Fixing_Frequency,''Atmaturity'') as Fixing_Frequency, NM.Document_Uploaded_YN, NM.Document_Uploaded_At, NM.Document_Uploaded_By, NM.Document_File_Name, NM.Document_File_Extension, NM.Document_File_Path, NM.CutOff_Time, NM.Soft_Tenor, NM.NM_Sn_Code_All, NULL as Note_Price_Source, AD.LongName, NVL(NM.Pricelist_YN,''N'') as Pricelist_YN, AD.AlternateIdentifierAlias as Underlying, NM.Note_Issuer_Date_Offset, NM.Counterparty as Note_Counter_Party, NULL as
Note_Premium_PC ';
v_SelectSQL := v_SelectSQL || ' , NI.Issuer_Name, IP.Issuer_Id, IP.Broad_Cash, IP.Odd_Cash, IP.Account_Note, IP.Rounding, IP.Decimal_Truncate, IP.Misc1 as Recidual_YN, NM.Note_Issuer_Type, NM.Target_Coupon, C_Fixing_Frequency as C_Fixing_Frequency, NM.Callable_Frequency as Callable_Frequency, NM.Strike_Price_Percentage as C_Note_Strike_PC, NM.NM_Airbag_PC as Airbag_PC, C_Note_Barrier_PC as C_Note_Barrier_PC, TM.Template_Name, ''Product'' as Record_Type, NM.C_Settlement_Frequency, NM.Coupon_Frequency, NM.NM_Fixing_Source as Note_Fixing_Source, NM.Order_Entry_Type, (nvl(NM.Minimum_Issue_Size,0) - nvl(T2.Confirmed_Amount,0)) as Remaining_Launch_Amount, NM.C_Fixing_Start_Point, NM.C_Fixing_End_Point, NM.Order_Entry_Type, SC.Scheme_Alias, SC.Scheme_Name, CM.CM_ID, CM.CM_Name as Counterparty_Name, NM.NM_Other_Features as Other_Features, NM.Strike_Price_Percentage as Accrual_Strike, NM.NM_KnockIn as KnockIn, NM.NM_Airbag_Type, NM.NM_Put_strike as Put_Strike, NM.NM_Accrual_Strike,
NM.NM_Counterparty_Upfront, NM.Price_Updated_YN as Prices_Updated_YN, AD.Code as Asset_Name,NULL as KO_FREQ_TYPE, NM.Daily_Accumalation_Equities, NM.MaxNoAcc_days, NM.Guaranteed_Days, NM.Leverage_ratio, NM.NORM_IF, NM.NORM_PAIR, NM.NORM_FXRate ';
v_SelectSQL := v_SelectSQL || ' from ';
v_SelectSQL := v_SelectSQL || v_CommonDBName|| '.Note_Master NM ';
v_SelectSQL := v_SelectSQL || 'Left Outer Join ';
v_SelectSQL := v_SelectSQL || v_CommonDBName||'.Issuer_Master NI ';
v_SelectSQL := v_SelectSQL || ' On NM.Issuer = (case when ISNUMERIC(NM.Issuer) = 0 then cast (NI.Issuer_Name as nvarchar2(25)) else cast(NI.Issuer_Id as nvarchar2(25)) end )';
v_SelectSQL := v_SelectSQL || ' Left Outer Join ';
v_SelectSQL := v_SelectSQL || v_CommonDBName||'.Note_Order_Product NOP ';
v_SelectSQL := v_SelectSQL || ' On NOP.Note_Master_ID = NM.Note_Master_ID';
v_SelectSQL := v_SelectSQL || ' Left Outer Join ';
v_SelectSQL := v_SelectSQL || v_DefinitionDBName||'.AssetDef AD ';
v_SelectSQL := v_SelectSQL || ' On AD.Code = NM.Asset';
v_SelectSQL := v_SelectSQL || ' AND AD.TypeAsset = substr(NM.Note_Asset_Class,1,2) ';
v_SelectSQL := v_SelectSQL || ' Left Outer Join ';
v_SelectSQL := v_SelectSQL || v_CommonDBName||'.Issuer_Parameter IP ';
v_SelectSQL := v_SelectSQL || ' On NM.Issuer = (case when ISNUMERIC(NM.Issuer) = 0 then cast (IP.Issuer_Name as nvarchar2(25)) else cast(IP.Issuer_Id as nvarchar2(25)) end )';
v_SelectSQL := v_SelectSQL || ' Left Outer Join ';
v_SelectSQL := v_SelectSQL || v_CommonDBName||'.Template_Master TM ';
v_SelectSQL := v_SelectSQL || ' On TM.Template_Id = NM.Template_ID ';
v_SelectSQL := v_SelectSQL || ' Left Outer Join ';
v_SelectSQL := v_SelectSQL || v_CommonDBName||'.Scheme_Codes SC ';
v_SelectSQL := v_SelectSQL || ' On SC.Scheme_Alias = NM.Type';
v_SelectSQL := v_SelectSQL || ' Left Outer Join ';
v_SelectSQL := v_SelectSQL || v_CommonDBName||'.Counterparty_Master CM ';
v_SelectSQL := v_SelectSQL || ' On CM.CM_ID = NM.Counterparty';
v_SelectSQL := v_SelectSQL || ' Left Outer Join ';
v_SelectSQL := v_SelectSQL || ' ( ';
v_SelectSQL := v_SelectSQL || ' Select Note_master_ID, sum(Nominal_Amt) as Unwind_Amount from ';
v_SelectSQL := v_SelectSQL || v_CommonDBName||'.Note_Deals ';
v_SelectSQL := v_SelectSQL || ' where Prematurity_Date IS NOT NULL';
v_SelectSQL := v_SelectSQL || ' AND (UPPER(Deletion_Reason ) = ''PART REDEMPTION'' or UPPER(Deletion_Reason ) = ''FULL REDEMPTION'')';
v_SelectSQL := v_SelectSQL || ' Group by Note_master_ID ';
v_SelectSQL := v_SelectSQL || ' ) ND ';
v_SelectSQL := v_SelectSQL || ' On ND.Note_Master_ID = NM.Note_Master_ID';
if (v_Filter_FilledStatus = ' ' OR UPPER(v_Filter_FilledStatus) = 'ALL' ) then
v_SelectSQL := v_SelectSQL || ' ';
else
v_SelectSQL := v_SelectSQL || ' AND NOP.Filled_Status IN (' || v_Filter_FilledStatus || ')';
end if;
--AND NOP.Internal_Counterparty = 'DEFAULT''
if(SUBSTR(to_char(v_Filter_Internal_Counterparty),1,4000)= ' ') then
v_SelectSQL := v_SelectSQL || ' ';
else
v_SelectSQL := v_SelectSQL || ' AND NOP.Internal_Counterparty IN (' || v_Filter_Internal_Counterparty || ')';
end if;
--SET @SelectSQL = @SelectSQL + ' --Filter--'
v_SelectSQL := v_SelectSQL || ' LEFT OUTER JOIN ';
v_SelectSQL := v_SelectSQL || ' (';
v_SelectSQL := v_SelectSQL || ' select Note_Master_ID, sum(Nominal_Amount) As Confirmed_Amount, sum(No_Of_Shares) As Confirmed_Shares ';
v_SelectSQL := v_SelectSQL || ' from '||v_CommonDBName||'.Note_Order_RM ';
v_SelectSQL := v_SelectSQL || ' Where substr(UPPER(Order_Status_Flag),1,6) = ''YYYYYY'' AND substr(substr(UPPER(Order_Status_Flag),1,7),-1,1) = ''N'' ';
v_SelectSQL := v_SelectSQL || ' group by Note_Master_ID';
v_SelectSQL := v_SelectSQL || ' ) T2';
v_SelectSQL := v_SelectSQL || ' ON T2.Note_Master_ID = NM.Note_Master_ID';
v_SelectSQL := v_SelectSQL || ' LEFT OUTER JOIN';
v_SelectSQL := v_SelectSQL || ' (';
v_SelectSQL := v_SelectSQL || ' Select ND.Note_Master_ID, sum(ND.Nominal_Amt) As Live_Deals ';
v_SelectSQL := v_SelectSQL || ' from '||v_CommonDBName||'.Note_Deals ND ';
v_SelectSQL := v_SelectSQL || ' where ND.Active_YNFlag = ''Y'' ';
v_SelectSQL := v_SelectSQL || ' group by Note_Master_ID';
v_SelectSQL := v_SelectSQL || ' ) T3';
v_SelectSQL := v_SelectSQL || ' ON T3.Note_Master_ID = NM.Note_Master_ID';
v_SelectSQL := v_SelectSQL || ' LEFT OUTER JOIN';
v_SelectSQL := v_SelectSQL || ' (';
v_SelectSQL := v_SelectSQL || ' SELECT NH_Note_Master_ID,';
v_SelectSQL := v_SelectSQL || ' (CAST(SUM(Hedged_Nominal_Buy) AS BINARY_FLOAT) -CAST(SUM(Hedged_Nominal_Sell) AS BINARY_FLOAT)) Net_Trade_Hedged,';
v_SelectSQL := v_SelectSQL || ' (CAST(SUM(Outstanding_Nominal_BUY) AS BINARY_FLOAT) -CAST(SUM(Outstanding_Nominal_SELL) AS BINARY_FLOAT)) Net_Trade_Outstanding,';
v_SelectSQL := v_SelectSQL || ' SUM(Hedged_Nominal_BUY) AS Hedged_Nominal_BUY,';
v_SelectSQL := v_SelectSQL || ' SUM(Hedged_Nominal_SELL) AS Hedged_Nominal_SELL,';
v_SelectSQL := v_SelectSQL || ' SUM(Outstanding_Nominal_BUY) AS Outstanding_Nominal_BUY,';
v_SelectSQL := v_SelectSQL || ' SUM(Outstanding_Nominal_SELL) As Outstanding_Nominal_SELL';
v_SelectSQL := v_SelectSQL || ' From';
v_SelectSQL := v_SelectSQL || ' (';
v_SelectSQL := v_SelectSQL || ' SELECT NH_Note_Master_ID,';
v_SelectSQL := v_SelectSQL || ' SUM(NH_Hedged_Nominal) AS Hedged_Nominal_BUY, 0 AS Hedged_Nominal_SELL,';
v_SelectSQL := v_SelectSQL || ' SUM(NH_Outstanding_Nominal) AS Outstanding_Nominal_BUY, 0 AS Outstanding_Nominal_SELL';
v_SelectSQL := v_SelectSQL || ' FROM '||v_CommonDBName||'.Note_Hedge ';
v_SelectSQL := v_SelectSQL || ' WHERE NH_Direction = ''BUY'' ';
v_SelectSQL := v_SelectSQL || ' GROUP BY NH_Note_Master_ID';
v_SelectSQL := v_SelectSQL || ' Union';
v_SelectSQL := v_SelectSQL || ' SELECT NH_Note_Master_ID,';
v_SelectSQL := v_SelectSQL || ' 0 AS Hedged_Nominal_BUY, SUM(NH_Hedged_Nominal) AS Hedged_Nominal_SELL,';
v_SelectSQL := v_SelectSQL || ' 0 AS Outstanding_Nominal_BUY, SUM(NH_Outstanding_Nominal) AS Outstanding_Nominal_SELL';
v_SelectSQL := v_SelectSQL || ' FROM '||v_CommonDBName||'.Note_Hedge ';
v_SelectSQL := v_SelectSQL || ' WHERE NH_Direction = ''SELL'' ';
v_SelectSQL := v_SelectSQL || ' GROUP BY NH_Note_Master_ID';
v_SelectSQL := v_SelectSQL || ' ) ';
v_SelectSQL := v_SelectSQL || ' GROUP BY NH_Note_Master_ID';
v_SelectSQL := v_SelectSQL || ' ) BS';
v_SelectSQL := v_SelectSQL || ' ON BS.NH_Note_Master_ID = NM.Note_Master_ID';
v_SelectSQL := v_SelectSQL || ' Where NM.Verify_YN_Flag = ''Y'' ';
v_SelectSQL := v_SelectSQL || ' AND NM.Active_YN_Flag = ''' || SWV_Active_YN_Flag || '''';
if(SUBSTR(to_char(v_Filter_NoteType),1,4000) = ' ' OR UPPER(v_Filter_NoteType) = 'ALL' ) then
v_SelectSQL := v_SelectSQL || ' ';
else
v_SelectSQL := v_SelectSQL || ' AND NM.Type IN (' || v_Filter_NoteType || ')';
end if;
IF UPPER(v_Entity_ID) <> 'ALL' then
OPEN RestrictTermsheetVisibilityByC;
FETCH RestrictTermsheetVisibilityByC INTO v_Setting_Name,v_Default_Value,v_Config_Value;
WHILE RestrictTermsheetVisibilityByC%FOUND LOOP
--2) Convert comma separated ccy (CNY,HKD,USD) string to single quote ccy with comma separated Ccy ('CNY','HKD','USD') string
if (UPPER(v_Setting_Name) = 'RESTRICT_TERMSHEET_VISIBILITY_BY_CCY') then
if v_Config_Value is not null then
SELECT COUNT(Id_1) INTO SWV_fnc_SplitString_Id_var0 FROM TABLE(fnc_SplitString(v_Config_Value,',')) ;
IF (SWV_fnc_SplitString_Id_var0 > 0) then
--print 'Before Single quote separated ccy : ' + '''' + @Config_Value + ''''
v_Seq_Id := 0;
OPEN Get_RestrictCCY_List_Cursor;
FETCH Get_RestrictCCY_List_Cursor
INTO v_CCY_ID,v_CCY_Data;
WHILE Get_RestrictCCY_List_Cursor%FOUND LOOP
if v_Seq_Id = 0 then
v_CCY_List := '''' || v_CCY_Data || '''';
else
v_CCY_List := v_CCY_List || ',' || '''' || v_CCY_Data || '''';
end if;
v_Seq_Id := v_Seq_Id+1;
FETCH Get_RestrictCCY_List_Cursor INTO v_CCY_ID,v_CCY_Data;
END LOOP;
CLOSE Get_RestrictCCY_List_Cursor;
--print 'After Single quote ccy : ' + @CCY_List
v_SelectSQL := v_SelectSQL || ' AND nvl(NM.Denomination_Ccy,NM.Currency) NOT IN (' || v_CCY_List || ')';
end if;
end if;
end if;
--3) Convert comma separated template (ELN,BELN,BELN_B) string to single quote template code with comma separated template ('ELN','BELN','BELN_B') string
if (UPPER(v_Setting_Name) = 'RESTRICT_TERMSHEET_VISIBILITY_BY_SUBSCHEME') then
if v_Config_Value is not null then
SELECT COUNT(Id_1) INTO SWV_fnc_SplitString_Id_var1 FROM TABLE(fnc_SplitString(v_Config_Value,',')) ;
IF (SWV_fnc_SplitString_Id_var1 > 0) then
v_Seq_Id := 0;
OPEN GetRestrictTemplateListCursor;
FETCH GetRestrictTemplateListCursor
INTO v_CCY_ID,v_CCY_Data;
WHILE GetRestrictTemplateListCursor%FOUND
LOOP
if v_Seq_Id = 0 then
v_CCY_List := '''' || v_CCY_Data || '''';
else
v_CCY_List := v_CCY_List || ',' || '''' || v_CCY_Data || '''';
end if;
v_Seq_Id := v_Seq_Id+1;
FETCH GetRestrictTemplateListCursor INTO v_CCY_ID,v_CCY_Data;
END LOOP;
CLOSE GetRestrictTemplateListCursor;
--print 'After Single quote template code: ' + @CCY_List
v_SelectSQL := v_SelectSQL || ' AND TM.Template_Code NOT IN (' || v_CCY_List || ')';
end if;
end if;
end if;
FETCH RestrictTermsheetVisibilityByC INTO v_Setting_Name,v_Default_Value,v_Config_Value;
END LOOP;
CLOSE RestrictTermsheetVisibilityByC;
end if;
if (v_Filter_Exchange = ' ' OR UPPER(v_Filter_Exchange) = 'ALL') then
v_SelectSQL := v_SelectSQL || ' ';
else
v_SelectSQL := v_SelectSQL || ' AND NM.Exchange IN (' || v_Filter_Exchange || ')';
end if;
--SET @SelectSQL = @SelectSQL + ' --AND NM.Issuer = 4'
if (v_Filter_Issuer = ' ' OR UPPER(v_Filter_Issuer) = 'ALL') then
v_SelectSQL := v_SelectSQL || ' ';
else
v_SelectSQL := v_SelectSQL || ' AND NM.Issuer IN (' || v_Filter_Issuer || ')';
end if;
if v_Filter_Product_Category = ' ' then
v_SelectSQL := v_SelectSQL || ' ';
else
v_SelectSQL := v_SelectSQL || ' AND UPPER(NM.Note_Issuer_Type) IN (''' || v_Filter_Product_Category || ''')';
end if;
if UPPER(v_DateToFilter) = 'NA' then
v_SelectSQL := v_SelectSQL || ' ';
else
if UPPER(v_DateToFilter) = 'CLOSE_DATE' then
v_SelectSQL := v_SelectSQL || ' AND to_char( '|| v_DateToFilter || ') >= to_date(''' || v_Filter_ToDate || ''');
-- AND convert(smalldatetime,''' || v_Filter_ToDate || ''',106) ';
else
v_SelectSQL := v_SelectSQL || ' AND to_char(''' || v_DateToFilter || ''') BETWEEN to_date(''' || v_Filter_FromDate || ''') AND to_date(''' || v_Filter_ToDate || ''') ';
end if;
end if;
v_SelectSQL := v_SelectSQL || ' Order by NM.Product_Name';
SWV_VarStr := v_SelectSQL;
DBMS_OUTPUT.PUT_LINE(SWV_VarStr);
EXECUTE IMMEDIATE SWV_VarStr;
IF SQLCODE <> 0 then
GOTO ERROR_HANDLER;
end if;
IF SQL%rowcount > 0 then
COMMIT;
SWV_TRANCOUNT := SWV_TRANCOUNT -1;
end if; --Commit Transaction
v_ErrorNumber := SQLCODE;
RETURN;
<< ERROR_HANDLER >> v_ErrorNumber := SQLCODE;
ROLLBACK;
SWV_TRANCOUNT := 0; --Rollback Transaction
RETURN;
END;Please suggest something. Thanks
Edited by: BluShadow on 30-Nov-2011 11:00
added {noformat}{noformat} tags for formatting of code. Please read {message:id=9360002} to learn to do this yourself in future.Connecting to the database sample_adf_finiq_common.
Select NM.Note_Master_Id, NM.Product_Name, NM.Template_ID, NM.Template_Sr_No, NM.Asset, NM.Exchange, NM.Type, NM.Currency , NM.Trade_Date, NM.Value_Date, NM.Valuation_Date, NM.Maturity_Date, NM.Tenor, NM.Strike_Price_Percentage, (case when (NM.PriceList_YN = 'Y') THEN NOP.Issue_Price Else NM.Customer_Price End) as Customer_Price, NM.Dealer_Price, (case when (NM.PriceList_YN = 'Y') THEN NOP.Customer_Yield Else NM.Customer_Yield End) as Customer_Yield, NOP.Dealer_Cost_PA as Internal_Cost , NM.Minimum_Issue_Size, NM.Maximum_Issue_Size, NM.Minimum_Tolerence_Amount, NM.Maximum_Tolerence_Amount, NM.Trigger_Amount_Warning, nvl(NM.PerUnit_Equivalent_Amount,1) as PerUnit_Equivalent_Amount, NM.Active_YN_Flag, NM.Verify_YN_Flag , NM.Tranche_YN_Flag, NM.Launch_Date, NM.Open_Date, NM.Close_Date, NM.PreHedged_YN, NM.Created_By, NM.Created_At, NM.Verified_At, NM.Verified_By, NM.ISIN, NM.Issuer , NM.Product_Catagory as Product_Category, NM.Note_Issuer_Type as Issuer_Category, NM.Series_No as Series_No, NM.Minimum_Investment_Amount , NOP.LastTimeWhenProductModified,(NOP.Nominal_Amount - nvl(ND.Unwind_Amount,0) ) as Current_Issue_Size, NOP.Filled_Status, NM.Counterparty as Internal_Counterparty ,T2.Confirmed_Amount, T2.Confirmed_Shares , T3.Live_Deals , BS.Net_Trade_Hedged, BS.Net_Trade_Outstanding, BS.Hedged_Nominal_BUY, BS.Hedged_Nominal_SELL, BS.Outstanding_Nominal_BUY, BS.Outstanding_Nominal_SELL , ( case When UPPER(NM.PreHedged_YN) = 'Y' Then 'Launched' When ((NM.Maturity_Date IS NOT NULL) AND to_date(NM.Maturity_Date) <= to_date(sysdate)) Then 'Matured' When (UPPER(NM.PreHedged_YN) = 'N' AND NM.Launch_Date IS NOT NULL) Then 'Launched' When (UPPER(NM.PreHedged_YN) = 'N' AND NM.Launch_Date IS NULL AND (T2.Confirmed_Amount >= NM.Minimum_Issue_Size) AND to_date(Close_Date) > to_date(sysdate) ) Then 'Ready To Launch' When (UPPER(NM.PreHedged_YN) = 'N' AND NM.Launch_Date IS NULL AND (T2.Confirmed_Amount >= (NM.Minimum_Issue_Size - NM.Minimum_Tolerence_Amount)) AND to_date(Close_Date)= to_date(sysdate) ) Then 'Ready To Launch' When (UPPER(NM.PreHedged_YN) = 'N' AND NM.Launch_Date IS NULL AND (T2.Confirmed_Amount >= (NM.Minimum_Issue_Size - NM.Minimum_Tolerence_Amount)) AND to_date(Close_Date)< to_date(sysdate) ) Then 'Ready To Launch' When (UPPER(NM.PreHedged_YN) = 'N' AND NM.Launch_Date IS NOT NULL AND (T2.Confirmed_Amount >= NM.Trigger_Amount_Warning )) Then 'Warning Trigger Reached' Else 'Not Ready' End)Launch_Status , NI.Issuer_Code , (nvl(NOP.Nominal_Amount,0) - nvl(T2.Confirmed_Amount,0)) as Unconfirmed_Amount, NM.Upfront as Upfront, case when UPPER(NM.PreHedged_YN) = 'Y' THEN 0 else (nvl(T2.Confirmed_Amount,0) - nvl(BS.Net_Trade_Hedged,0)) end as ReadyToHedge , NOP.Hard_Margin as Margin_Amount, NM.YearBasis as YearBasis, NM.Note_Product_Rating as Equity_Risk_Score, AD.Equity_Asset_Class , NM.Note_Product_Rating as Product_Rating, NOP.PO_ID, AD.LotSize as Lot_Size, NM.Max_Orders_Per_Product as MAX_Orders, NOP.Order_Count as Current_Order_Count, nvl(NM.Denomination_Ccy,NM.Currency) as Denomination_Ccy, NM.Note_Scheme_Type as Underlying_Type, NM.Note_Asset_Class as Asset_Class, NULL as Product_Created_YN, NULL as Product_Created_ID, ( (case when NM.Note_Order_Type = '' then N'Market' else NM.Note_Order_Type end ) ) as Order_Type, NOP.Spot_Price, NM.Note_Price_Link, NOP.Strike_Price, NVL(NM.C_Fixing_Frequency,'Atmaturity') as Fixing_Frequency, NM.Document_Uploaded_YN, NM.Document_Uploaded_At, NM.Document_Uploaded_By, NM.Document_File_Name, NM.Document_File_Extension, NM.Document_File_Path, NM.CutOff_Time, NM.Soft_Tenor, NM.NM_Sn_Code_All, NULL as Note_Price_Source, AD.LongName, NVL(NM.Pricelist_YN,'N') as Pricelist_YN, AD.AlternateIdentifierAlias as Underlying, NM.Note_Issuer_Date_Offset, NM.Counterparty as Note_Counter_Party, NULL as
Note_Premium_PC , NI.Issuer_Name, IP.Issuer_Id, IP.Broad_Cash, IP.Odd_Cash, IP.Account_Note, IP.Rounding, IP.Decimal_Truncate, IP.Misc1 as Recidual_YN, NM.Note_Issuer_Type, NM.Target_Coupon, C_Fixing_Frequency as C_Fixing_Frequency, NM.Callable_Frequency as Callable_Frequency, NM.Strike_Price_Percentage as C_Note_Strike_PC, NM.NM_Airbag_PC as Airbag_PC, C_Note_Barrier_PC as C_Note_Barrier_PC, TM.Template_Name, 'Product' as Record_Type, NM.C_Settlement_Frequency, NM.Coupon_Frequency, NM.NM_Fixing_Source as Note_Fixing_Source, NM.Order_Entry_Type, (nvl(NM.Minimum_Issue_Size,0) - nvl(T2.Confirmed_Amount,0)) as Remaining_Launch_Amount, NM.C_Fixing_Start_Point, NM.C_Fixing_End_Point, NM.Order_Entry_Type, SC.Scheme_Alias, SC.Scheme_Name, CM.CM_ID, CM.CM_Name as Counterparty_Name, NM.NM_Other_Features as Other_Features, NM.Strike_Price_Percentage as Accrual_Strike, NM.NM_KnockIn as KnockIn, NM.NM_Airbag_Type, NM.NM_Put_strike as Put_Strike, NM.NM_Accrual_Strike,
NM.NM_Counterparty_Upfront, NM.Price_Updated_YN as Prices_Updated_YN, AD.Code as Asset_Name,NULL as KO_FREQ_TYPE, NM.Daily_Accumalation_Equities, NM.MaxNoAcc_days, NM.Guaranteed_Days, NM.Leverage_ratio, NM.NORM_IF, NM.NORM_PAIR, NM.NORM_FXRate from Sample_ADF_finiq_Common.Note_Master NM Left Outer Join Sample_ADF_finiq_Common.Issuer_Master NI On NM.Issuer = (case when ISNUMERIC(NM.Issuer) = 0 then cast (NI.Issuer_Name as nvarchar2(25)) else cast(NI.Issuer_Id as nvarchar2(25)) end ) Left Outer Join Sample_ADF_finiq_Common.Note_Order_Product NOP On NOP.Note_Master_ID = NM.Note_Master_ID Left Outer Join Sample_ADF_finiq_Common.AssetDef AD On AD.Code = NM.Asset AND AD.TypeAsset = substr(NM.Note_Asset_Class,1,2) Left Outer Join Sample_ADF_finiq_Common.Issuer_Parameter IP On NM.Issuer = (case when ISNUMERIC(NM.Issuer) = 0 then cast (IP.Issuer_Name as nvarchar2(25)) else cast(IP.Issuer_Id as nvarchar2(25)) end ) Left Outer Join Sample_ADF_finiq_Common.Template_Master TM On TM.Template_Id = NM.Template_ID Left Outer Join Sample_ADF_finiq_Common.Scheme_Codes SC On SC.Scheme_Alias = NM.Type Left Outer Join Sample_ADF_finiq_Common.Counterparty_Master CM On CM.CM_ID = NM.Counterparty Left Outer Join ( Select Note_master_ID, sum(Nominal_Amt) as Unwind_Amount from Sample_ADF_finiq_Common.Note_Deals where Prematurity_Date IS NOT NULL AND (UPPER(Deletion_Reason ) = 'PART REDEMPTION' or UPPER(Deletion_Reason ) = 'FULL REDEMPTION') Group by Note_master_ID ) ND On ND.Note_Master_ID = NM.Note_Master_ID AND NOP.Internal_Counterparty IN (1) LEFT OUTER JOIN ( select Note_Master_ID, sum(Nominal_Amount) As Confirmed_Amount, sum(No_Of_Shares) As Confirmed_Shares from Sample_ADF_finiq_Common.Note_Order_RM Where substr(UPPER(Order_Status_Flag),1,6) = 'YYYYYY' AND substr(substr(UPPER(Order_Status_Flag),1,7),-1,1) = 'N' group by Note_Master_ID ) T2 ON T2.Note_Master_ID = NM.Note_Master_ID LEFT OUTER JOIN ( Select ND.Note_Master_ID, sum(ND.Nominal_Amt) As Live_Deals from Sample_ADF_finiq_Common.Note_Deals ND where ND.Active_YNFlag = 'Y' group by Note_Master_ID ) T3 ON T3.Note_Master_ID = NM.Note_Master_ID LEFT OUTER JOIN ( SELECT NH_Note_Master_ID, (CAST(SUM(Hedged_Nominal_Buy) AS BINARY_FLOAT) -CAST(SUM(Hedged_Nominal_Sell) AS BINARY_FLOAT)) Net_Trade_Hedged, (CAST(SUM(Outstanding_Nominal_BUY) AS BINARY_FLOAT) -CAST(SUM(Outstanding_Nominal_SELL) AS BINARY_FLOAT)) Net_Trade_Outstanding, SUM(Hedged_Nominal_BUY) AS Hedged_Nominal_BUY, SUM(Hedged_Nominal_SELL) AS Hedged_Nominal_SELL, SUM(Outstanding_Nominal_BUY) AS Outstanding_Nominal_BUY, SUM(Outstanding_Nominal_SELL) As Outstanding_Nominal_SELL From ( SELECT NH_Note_Master_ID, SUM(NH_Hedged_Nominal) AS Hedged_Nominal_BUY, 0 AS Hedged_Nominal_SELL, SUM(NH_Outstanding_Nominal) AS Outstanding_Nominal_BUY, 0 AS Outstanding_Nominal_SELL FROM Sample_ADF_finiq_Common.Note_Hedge WHERE NH_Direction = 'BUY' GROUP BY NH_Note_Master_ID Union SELECT NH_Note_Master_ID, 0 AS Hedged_Nominal_BUY, SUM(NH_Hedged_Nominal) AS Hedged_Nominal_SELL, 0 AS Outstanding_Nominal_BUY, SUM(NH_Outstanding_Nominal) AS Outstanding_Nominal_SELL FROM Sample_ADF_finiq_Common.Note_Hedge WHERE NH_Direction = 'SELL' GROUP BY NH_Note_Master_ID ) GROUP BY NH_Note_Master_ID ) BS ON BS.NH_Note_Master_ID = NM.Note_Master_ID Where NM.Verify_YN_Flag = 'Y' AND NM.Active_YN_Flag = 'Y' AND UPPER(NM.Note_Issuer_Type) IN ('Internal') AND to_char('16-oct-11') BETWEEN to_date('15-oct-11') AND to_date('17-oct-11') Order by NM.Product_Name
V_ERRORNUMBER = 0
Process exited.
Disconnecting from the database sample_adf_finiq_common.
here v_errornumber=0 is the output when i run it in oracle sql developer. -
Need help in tuning a procedure
DECLARE
CURSOR Cur_sub_rp IS
SELECT A.SUB_ACCOUNT, B.PH_basic_srv,B.PH_Salesman,A.SUB_SSN
FROM STG_SUB_MASTER_MONTH_HISTORY A, STG_PHN_MASTER_MONTH_HISTORY
B
WHERE A.SUB_ACCOUNT = B.PH_ACCOUNT (+)
AND A.MONTH_ID = B.MONTH_ID ;
TYPE t_values_tab IS TABLE OF cur_sub_rp%rowtype ;
values_tab t_values_tab := t_values_tab() ;
BEGIN
OPEN Cur_sub_rp ;
LOOP
FETCH Cur_sub_rp BULK COLLECT INTO Values_tab
LIMIT 1000;
EXIT WHEN Cur_sub_rp%NOTFOUND ;
END LOOP ;
CLOSE Cur_sub_rp;
FORALL i IN VALUES_TAB.first..values_tab.last
INSERT INTO SUB_PHN_1 VALUES VALUES_TAB(i);
commit;
END;
The tables used here has 9 million records each.
The total process takes around 19 minutes.
Need your help in optimizing the process.i have tried using
Create table as SELECT A.SUB_ACCOUNT, B.PH_basic_srv,B.PH_Salesman,A.SUB_SSN
FROM STG_SUB_MASTER_MONTH_HISTORY A, STG_PHN_MASTER_MONTH_HISTORY
B
WHERE A.SUB_ACCOUNT = B.PH_ACCOUNT (+)
AND A.MONTH_ID = B.MONTH_ID (+);But still taking long time(apprx 15 min).
so used this...
help me in tuning the query in either of this.
DECLARE
CURSOR Cur_sub_rp IS
SELECT A.SUB_ACCOUNT, B.PH_basic_srv,B.PH_Salesman,A.SUB_SSN
FROM STG_SUB_MASTER_MONTH_HISTORY A, STG_PHN_MASTER_MONTH_HISTORY
B
WHERE A.SUB_ACCOUNT = B.PH_ACCOUNT (+)
AND A.MONTH_ID = B.MONTH_ID (+);
TYPE t_values_tab IS TABLE OF cur_sub_rp%rowtype ;
values_tab t_values_tab := t_values_tab() ;
BEGIN
OPEN Cur_sub_rp ;
LOOP
FETCH Cur_sub_rp BULK COLLECT INTO Values_tab
LIMIT 1000;
EXIT WHEN Cur_sub_rp%NOTFOUND ;
END LOOP ;
CLOSE Cur_sub_rp;
FORALL i IN VALUES_TAB.first..values_tab.last
INSERT INTO SUB_PHN_1 VALUES VALUES_TAB(i);
commit;
END;Message was edited by:
Vakeel
Message was edited by:
Vakeel -
Tuning a procedure and using dbms_job.submit proc that call's functions
Hi
I have Procedure that have 3 curosrs which are nested one below with in each other
and it looks as below
it's structure will look some thing look like this
declare
empno_fetch number;
CURSOR deu_process IS
SELECT empno
FROM emp
WHERE flg_process = 'N'
AND ROWNUM <= 5000
ORDER BY empno;
CURSOR dup_all IS --c1 fetch around 400000 records
(select empno
from emp
where empno>l_empno
order by empno
where rownum<=empno_fetch;
CURSOR rules IS --c2
SELECT rule_id, rule_score, name_Of_func
FROM rule;
begin
l_count := 1;
OPEN dedupe_rule_attr;
LOOP
BEGIN
Here one loop is used for fetching 5000 records at time and
Here deu_process cursor is opened ,assume it fetches one record
Here another cursor dup_all is used for fetching the records and assume it fetched 400000 then
Here another cursor is opened name where it fetches 10 rows
Here logic is if first row then
call's stored function which has following functionalty
it compares fields such as address of outer most cursor i.e deu_process with all the address of the other rows i.e 400000 rows and return a number
if second row then
call's another stored function which has
compares other fields such as first name,last name
if third then other field
so on ....
up to 10
and then finally ends
so if i comment all the rules loop then it takes only one min to execute .If it validaes all of them if takes 14 minutes to execute .so there is problem in that 10 procedures to execute
So i found an approach to run all the rules simultaneously using dbms_job .But i face a problem that i can't uderstand how to send the input and out put parameter's to calling procedure.And these parameter's must be passed by variable from called procedure to calling procedure
Please suggest me what is the syntax of dbms_job with input and output parameters with variable's that must be passed as formal parameter's
Regarding DBMS_JOB.SUBMIT I am getting following error
Declare
x number:=1;
b number;
jobnumber number;
BEGIN
DBMS_JOB.SUBMIT(JOB => jobnumber,
WHAT => 'vamsi_proc1('||x||');',
NEXT_DATE => (sysdate+1/(86400)),
INTERVAL => null);
--dbms_output.put_line('value of b is '||b);
COMMIT;
END;
Declare
ERROR at line 1:
ORA-06550: line 1, column 107:
PLS-00103: Encountered the symbol ")" when expecting one of the following:
( - + case mod new not null others <an identifier>
<a double-quoted delimited-identifier> <a bind variable> avg
count current exists max min prior sql stddev sum variance
execute forall merge time timestamp interval date
<a string literal with character set specification>
<a number> <a single-quoted SQL string> pipe
The symbol "null" was substituted for ")" to continue.
ORA-06512: at "SYS.DBMS_JOB", line 79
ORA-06512: at "SYS.DBMS_JOB", line 136
ORA-06512: at line 5
create or replace procedure vamsi_proc1(v in out number) as
x number(4);
begin
--a:=1;
insert into emp_vamsi(select 677,ENAME,SAL,DEPTNO,MANAGER from emp where empno=v);
commit;
--a:=2;
--x:=a;
end;
using dbms_job.submit proc that call's functions which returns out and in parameters to calling procedure environment .I can't get this with out using data base table's.
If you have any method for this Plese suggest
And also please suggest me weather using job's is a good idea ,If not than suggest me what ever will the other approach.
Thank's and Regard's
vamsi krishnaHi <br>
I have looked at all sql trace file ,<br>
I found that there is no problem in sql statemens all of them are using proper <br>indexes execpt the folllowing statement<br>
<br>
SELECT nvl(COUNT(ref_appln_no),0)<br>
FROM ci_cust_dedupe_mast<br>
WHERE flg_mnt_status='A'<br>
<br>
This statement executes only once for 1*3,77000*10 times <br>
The function that i had sent previously executes more than 4000000*20 times .<br>
I think all it takes is only for iterations that are caused<br>
<br>
I am also sending sql trace for reference
<br>
TKPROF: Release 9.2.0.4.0 - Production on Mon Aug 14 17:30:50 2006 <br>
<br>
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. <br>
<br>
Trace file: afhuat_ora_2204.trc <br>
Sort options: default <br>
<br>
******************************************************************************** <br>
count = number of times OCI procedure was executed <br>
cpu = cpu time in seconds executing <br>
elapsed = elapsed time in seconds executing <br>
disk = number of physical reads of buffers from disk <br>
query = number of buffers gotten for consistent read <br>
current = number of buffers gotten in current mode (usually for update) <br>
rows = number of rows processed by the fetch or execute call <br>
******************************************************************************** <br>
<br>
alter session set sql_trace=true <br>
<br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 0 0.00 0.00 0 0 0 0 <br>
Execute 1 0.00 0.00 0 0 0 0 <br>
Fetch 0 0.00 0.00 0 0 0 0 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 1 0.00 0.00 0 0 0 0 <br>
<br>
Misses in library cache during parse: 0 <br>
Misses in library cache during execute: 1 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: 61 <br>
******************************************************************************** <br>
<br>
declare <br>
x varchar2(100); <br>
y varchar2(100); <br>
ap number; <br>
begin <br>
x:=to_char(sysdate,'dd-mon-rrrr hh:mi:ss'); <br>
ap:=ap_ci_dedupe_proc; <br>
y:=to_char(sysdate,'dd-mon-rrrr hh:mi:ss'); <br>
dbms_output.put_line(x||' '||ap); <br>
dbms_output.put_line(y||' '||ap); <br>
end; <br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 1 0.00 0.00 0 0 0 0 <br>
Execute 1 0.00 820.23 0 0 0 1 <br>
Fetch 0 0.00 0.00 0 0 0 0 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 2 0.00 820.23 0 0 0 1 <br>
<br>
Misses in library cache during parse: 0 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: 61 <br>
******************************************************************************** <br>
<br>
select user# <br>
from <br>
sys.user$ where name = 'OUTLN' <br>
<br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 1 0.00 0.00 0 0 0 0 <br>
Execute 1 0.00 0.00 0 0 0 0 <br>
Fetch 1 0.00 0.00 0 2 0 1 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 3 0.00 0.00 0 2 0 1 <br>
<br>
Misses in library cache during parse: 0 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: SYS (recursive depth: 2) <br>
<br>
Rows Row Source Operation <br>
------- --------------------------------------------------- <br>
1 TABLE ACCESS BY INDEX ROWID USER$ (cr=2 r=0 w=0 time=31 us) <br>
1 INDEX UNIQUE SCAN I_USER1 (cr=1 r=0 w=0 time=18 us)(object id 44) <br>
<br>
******************************************************************************** <br>
<br>
SELECT * <br>
FROM ci_dedupe_rule_attr <br>
ORDER BY cod_rule_attr_id <br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 1 0.00 0.06 0 0 0 0 <br>
Execute 1 0.00 0.00 0 0 0 0 <br>
Fetch 21 0.00 0.01 1 3 0 20 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 23 0.00 0.07 1 3 0 20 <br>
<br>
Misses in library cache during parse: 0 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: 61 (recursive depth: 1) <br>
******************************************************************************** <br>
<br>
SELECT COUNT(1) <br>
FROM ci_cust_dedupe_mast <br>
WHERE flg_process = 'N' <br>
AND <br>
AND <br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 1 0.00 0.00 0 0 0 0 <br>
Execute 1 0.00 0.00 0 0 0 0 <br>
Fetch 1 0.00 0.00 0 22 0 1 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 3 0.00 0.00 0 22 0 1 <br>
<br>
Misses in library cache during parse: 0 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: 61 (recursive depth: 1) <br>
******************************************************************************** <br>
<br>
SELECT nvl(COUNT(ref_appln_no),0) <br>
FROM ci_cust_dedupe_mast <br>
WHERE flg_mnt_status='A' <br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 1 0.00 0.00 0 0 0 0 <br>
Execute 1 0.00 0.00 0 0 0 0 <br>
Fetch 1 1.68 3.03 18867 21183 0 1 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 3 1.68 3.03 18867 21183 0 1 <br>
<br>
Misses in library cache during parse: 0 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: 61 (recursive depth: 1) <br>
******************************************************************************** <br>
<br>
SELECT ref_appln_no <br>
FROM ci_cust_dedupe_mast <br>
WHERE flg_process = 'N' <br>
AND <br>
AND <br>
AND <br>
ORDER BY ref_appln_no <br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 1 0.00 0.00 0 0 0 0 <br>
Execute 2 0.00 0.00 0 0 0 0 <br>
Fetch 3 0.00 0.09 18 43 0 1 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 6 0.00 0.09 18 43 0 1 <br>
<br>
Misses in library cache during parse: 0 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: 61 (recursive depth: 1) <br>
******************************************************************************** <br>
<br>
SELECT <br>
FROM <br>
WHERE <br>
AND <br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 1 0.00 0.00 0 0 0 0 <br>
Execute 377709 8.71 7.64 0 0 0 0 <br>
Fetch 377709 18.18 60.19 19802 1510836 0 377709 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 755419 26.90 67.84 19802 1510836 0 377709 <br>
<br>
Misses in library cache during parse: 0 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: 61 (recursive depth: 1) <br>
******************************************************************************** <br>
<br>
SELECT NVL(MAX(cod_serial_no),0) + 1 <br>
FROM ci_dedupe_details_mast <br>
WHERE ref_appln_no = :b1 <br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 1 0.00 0.00 0 0 0 0 <br>
Execute 1 0.00 0.00 0 0 0 0 <br>
Fetch 1 0.00 0.01 2 2 0 1 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 3 0.00 0.01 2 2 0 1 <br>
<br>
Misses in library cache during parse: 0 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: 61 (recursive depth: 1) <br>
******************************************************************************** <br>
<br>
SELECT COUNT(1) <br>
FROM ci_dedupe_details_mast <br>
WHERE ref_appln_no = :b1 <br>
AND <br>
AND flg_mnt_status = 'A' <br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 1 0.00 0.00 0 0 0 0 <br>
Execute 1 0.00 0.00 0 0 0 0 <br>
Fetch 1 0.00 0.00 0 3 0 1 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 3 0.00 0.00 0 3 0 1 <br>
<br>
Misses in library cache during parse: 0 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: 61 (recursive depth: 1) <br>
******************************************************************************** <br>
<br>
SELECT ref_appln_no FROM <br>
( <br>
SELECT ref_appln_no <br>
FROM ci_cust_dedupe_mast <br>
WHERE <br>
AND <br>
ORDER BY ref_appln_no <br>
) <br>
WHERE ROWNUM <= :b2 <br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 1 0.00 0.00 0 0 0 0 <br>
Execute 77 0.01 0.00 0 0 0 0 <br>
Fetch 377786 10.21 12.33 908 377865 0 377709 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 377864 10.23 12.33 908 377865 0 377709 <br>
<br>
Misses in library cache during parse: 0 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: 61 (recursive depth: 1) <br>
******************************************************************************** <br>
<br>
SELECT cod_rule_id, cod_rule_score, nam_rule_func <br>
FROM ci_dedupe_rule_defn <br>
WHERE flg_valid = 'Y' <br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 1 0.00 0.00 0 0 0 0 <br>
Execute 377708 5.50 4.03 0 0 0 0 <br>
Fetch 4154788 62.79 54.04 16 4532496 0 3777080 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 4532497 68.29 58.07 16 4532496 0 3777080 <br>
<br>
Misses in library cache during parse: 0 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: 61 (recursive depth: 1) <br>
******************************************************************************** <br>
<br>
select con#,obj#,rcon#,enabled,nvl(defer,0) <br>
from <br>
cdef$ where robj#=:1 <br>
<br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 2 0.00 0.00 0 0 0 0 <br>
Execute 2 0.00 0.00 0 0 0 0 <br>
Fetch 2 0.00 0.01 1 2 0 0 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 6 0.00 0.01 1 2 0 0 <br>
<br>
Misses in library cache during parse: 0 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: SYS (recursive depth: 2) <br>
******************************************************************************** <br>
<br>
select con#,type#,condlength,intcols,robj#,rcon#,match#,refact,nvl(enabled,0), <br>
rowid,cols,nvl(defer,0),mtime,nvl(spare1,0) <br>
from <br>
cdef$ where obj#=:1 <br>
<br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 2 0.00 0.00 0 0 0 0 <br>
Execute 2 0.00 0.00 0 0 0 0 <br>
Fetch 2 0.00 0.01 2 4 0 0 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 6 0.00 0.01 2 4 0 0 <br>
<br>
Misses in library cache during parse: 0 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: SYS (recursive depth: 2) <br>
******************************************************************************** <br>
<br>
select u.name,o.name, t.update$, t.insert$, t.delete$, t.enabled <br>
from <br>
obj$ o,user$ u,trigger$ t where t.baseobject=:1 and t.obj#=o.obj# and <br>
o.owner#=u.user# order by o.obj# <br>
<br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 3 0.00 0.00 0 0 0 0 <br>
Execute 3 0.00 0.00 0 0 0 0 <br>
Fetch 4 0.00 0.05 6 9 0 1 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 10 0.00 0.05 6 9 0 1 <br>
<br>
Misses in library cache during parse: 1 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: SYS (recursive depth: 2) <br>
<br>
Rows Row Source Operation <br>
------- --------------------------------------------------- <br>
0 SORT ORDER BY (cr=1 r=1 w=0 time=4772 us) <br>
0 NESTED LOOPS (cr=1 r=1 w=0 time=4747 us) <br>
0 NESTED LOOPS (cr=1 r=1 w=0 time=4744 us) <br>
0 TABLE ACCESS BY INDEX ROWID TRIGGER$ (cr=1 r=1 w=0 time=4740 us) <br>
0 INDEX RANGE SCAN I_TRIGGER1 (cr=1 r=1 w=0 time=4736 us)(object id 130) <br>
0 TABLE ACCESS BY INDEX ROWID OBJ$ (cr=0 r=0 w=0 time=0 us) <br>
0 INDEX UNIQUE SCAN I_OBJ1 (cr=0 r=0 w=0 time=0 us)(object id 36) <br>
0 TABLE ACCESS CLUSTER USER$ (cr=0 r=0 w=0 time=0 us) <br>
0 INDEX UNIQUE SCAN I_USER# (cr=0 r=0 w=0 time=0 us)(object id 11) <br>
<br>
******************************************************************************** <br>
<br>
select o.owner#,o.name,o.namespace,o.remoteowner,o.linkname,o.subname, <br>
o.dataobj#,o.flags <br>
from <br>
obj$ o where o.obj#=:1 <br>
<br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 2 0.00 0.00 0 0 0 0 <br>
Execute 3 0.00 0.00 0 0 0 0 <br>
Fetch 3 0.00 0.02 5 9 0 3 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 8 0.00 0.02 5 9 0 3 <br>
<br>
Misses in library cache during parse: 0 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: SYS (recursive depth: 3) <br>
******************************************************************************** <br>
<br>
select col#, grantee#, privilege#,max(mod(nvl(option$,0),2)) <br>
from <br>
objauth$ where obj#=:1 and col# is not null group by privilege#, col#, <br>
grantee# order by col#, grantee# <br>
<br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 3 0.00 0.00 0 0 0 0 <br>
Execute 3 0.00 0.00 0 0 0 0 <br>
Fetch 3 0.00 0.01 2 6 0 0 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 9 0.00 0.02 2 6 0 0 <br>
<br>
Misses in library cache during parse: 1 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: SYS (recursive depth: 2) <br>
******************************************************************************** <br>
<br>
INSERT INTO ci_dedupe_details_mast <br>
VALUES <br>
( <br>
:b6, <br>
:b5, <br>
:b4, <br>
:b3, <br>
'Y', <br>
'N', <br>
'', <br>
0, <br>
SYSDATE, <br>
'A', <br>
' ', <br>
:b2, <br>
'SYSTEM', <br>
:b1, <br>
1 <br>
) <br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 1 0.00 0.01 3 3 0 0 <br>
Execute 1 0.00 0.01 4 1 6 1 <br>
Fetch 0 0.00 0.00 0 0 0 0 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 2 0.00 0.02 7 4 6 1 <br>
<br>
Misses in library cache during parse: 1 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: 61 (recursive depth: 1) <br>
******************************************************************************** <br>
<br>
select obj#,type#,ctime,mtime,stime,status,dataobj#,flags,oid$, spare1, <br>
spare2 <br>
from <br>
obj$ where owner#=:1 and name=:2 and namespace=:3 and remoteowner is null <br>
and linkname is null and subname is null <br>
<br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 1 0.00 0.00 0 0 0 0 <br>
Execute 1 0.00 0.00 0 0 0 0 <br>
Fetch 1 0.00 0.01 2 3 0 1 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 3 0.00 0.01 2 3 0 1 <br>
<br>
Misses in library cache during parse: 0 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: SYS (recursive depth: 2) <br>
******************************************************************************** <br>
<br>
select audit$,options <br>
from <br>
procedure$ where obj#=:1 <br>
<br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 1 0.00 0.00 0 0 0 0 <br>
Execute 1 0.00 0.00 0 0 0 0 <br>
Fetch 1 0.00 0.01 3 3 0 1 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 3 0.00 0.01 3 3 0 1 <br>
<br>
Misses in library cache during parse: 0 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: SYS (recursive depth: 2) <br>
<br>
Rows Row Source Operation <br>
------- --------------------------------------------------- <br>
1 TABLE ACCESS BY INDEX ROWID PROCEDURE$ (cr=3 r=3 w=0 time=14110 us) <br>
1 INDEX UNIQUE SCAN I_PROCEDURE1 (cr=2 r=2 w=0 time=13871 us)(object id 115) <br>
<br>
******************************************************************************** <br>
<br>
select owner#,name,namespace,remoteowner,linkname,p_timestamp,p_obj#, <br>
d_owner#, nvl(property,0),subname <br>
from <br>
dependency$,obj$ where d_obj#=:1 and p_obj#=obj#(+) order by order# <br>
<br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 1 0.00 0.00 0 0 0 0 <br>
Execute 1 0.00 0.00 0 0 0 0 <br>
Fetch 4 0.00 0.07 8 12 0 3 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 6 0.00 0.07 8 12 0 3 <br>
<br>
Misses in library cache during parse: 0 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: SYS (recursive depth: 2) <br>
<br>
Rows Row Source Operation <br>
------- --------------------------------------------------- <br>
3 SORT ORDER BY (cr=12 r=8 w=0 time=72867 us) <br>
3 NESTED LOOPS OUTER (cr=12 r=8 w=0 time=72813 us) <br>
3 TABLE ACCESS BY INDEX ROWID DEPENDENCY$ (cr=4 r=4 w=0 time=41297 us) <br>
3 INDEX RANGE SCAN I_DEPENDENCY1 (cr=3 r=3 w=0 time=25897 us)(object id 127) <br>
3 TABLE ACCESS BY INDEX ROWID OBJ$ (cr=8 r=4 w=0 time=31484 us) <br>
3 INDEX UNIQUE SCAN I_OBJ1 (cr=5 r=2 w=0 time=14872 us)(object id 36) <br>
<br>
******************************************************************************** <br>
<br>
select order#,columns,types <br>
from <br>
access$ where d_obj#=:1 <br>
<br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 1 0.00 0.00 0 0 0 0 <br>
Execute 1 0.00 0.00 0 0 0 0 <br>
Fetch 2 0.00 0.02 3 4 0 1 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 4 0.00 0.02 3 4 0 1 <br>
<br>
Misses in library cache during parse: 0 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: SYS (recursive depth: 2) <br>
<br>
Rows Row Source Operation <br>
------- --------------------------------------------------- <br>
1 TABLE ACCESS BY INDEX ROWID ACCESS$ (cr=4 r=3 w=0 time=27026 us) <br>
1 INDEX RANGE SCAN I_ACCESS1 (cr=3 r=2 w=0 time=21717 us)(object id 129) <br>
<br>
******************************************************************************** <br>
<br>
select /*+ index(idl_sb4$ i_idl_sb41) +*/ piece#,length,piece <br>
from <br>
idl_sb4$ where obj#=:1 and part=:2 and version=:3 order by piece# <br>
<br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 2 0.00 0.00 0 0 0 0 <br>
Execute 2 0.00 0.00 0 0 0 0 <br>
Fetch 3 0.00 0.02 3 7 0 1 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 7 0.00 0.02 3 7 0 1 <br>
<br>
Misses in library cache during parse: 0 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: SYS (recursive depth: 2) <br>
<br>
Rows Row Source Operation <br>
------- --------------------------------------------------- <br>
0 TABLE ACCESS BY INDEX ROWID IDL_SB4$ (cr=2 r=2 w=0 time=19830 us) <br>
0 INDEX RANGE SCAN I_IDL_SB41 (cr=2 r=2 w=0 time=19826 us)(object id 123) <br>
<br>
******************************************************************************** <br>
<br>
select /*+ index(idl_ub1$ i_idl_ub11) +*/ piece#,length,piece <br>
from <br>
idl_ub1$ where obj#=:1 and part=:2 and version=:3 order by piece# <br>
<br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 2 0.00 0.00 0 0 0 0 <br>
Execute 2 0.00 0.00 0 0 0 0 <br>
Fetch 3 0.00 0.03 3 9 0 2 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 7 0.00 0.03 3 9 0 2 <br>
<br>
Misses in library cache during parse: 0 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: SYS (recursive depth: 2) <br>
<br>
Rows Row Source Operation <br>
------- --------------------------------------------------- <br>
0 TABLE ACCESS BY INDEX ROWID IDL_UB1$ (cr=2 r=2 w=0 time=21757 us) <br>
0 INDEX RANGE SCAN I_IDL_UB11 (cr=2 r=2 w=0 time=21753 us)(object id 120) <br>
<br>
******************************************************************************** <br>
<br>
select /*+ index(idl_char$ i_idl_char1) +*/ piece#,length,piece <br>
from <br>
idl_char$ where obj#=:1 and part=:2 and version=:3 order by piece# <br>
<br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 2 0.00 0.00 0 0 0 0 <br>
Execute 2 0.00 0.00 0 0 0 0 <br>
Fetch 2 0.00 0.01 2 4 0 0 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 6 0.00 0.01 2 4 0 0 <br>
<br>
Misses in library cache during parse: 0 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: SYS (recursive depth: 2) <br>
<br>
Rows Row Source Operation <br>
------- --------------------------------------------------- <br>
0 TABLE ACCESS BY INDEX ROWID IDL_CHAR$ (cr=2 r=2 w=0 time=19465 us) <br>
0 INDEX RANGE SCAN I_IDL_CHAR1 (cr=2 r=2 w=0 time=19461 us)(object id 121) <br>
<br>
******************************************************************************** <br>
<br>
select /*+ index(idl_ub2$ i_idl_ub21) +*/ piece#,length,piece <br>
from <br>
idl_ub2$ where obj#=:1 and part=:2 and version=:3 order by piece# <br>
<br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 2 0.00 0.00 0 0 0 0 <br>
Execute 2 0.00 0.00 0 0 0 0 <br>
Fetch 2 0.00 0.01 2 4 0 0 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 6 0.00 0.01 2 4 0 0 <br>
<br>
Misses in library cache during parse: 0 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: SYS (recursive depth: 2) <br>
<br>
Rows Row Source Operation <br>
------- --------------------------------------------------- <br>
0 TABLE ACCESS BY INDEX ROWID IDL_UB2$ (cr=2 r=2 w=0 time=15070 us) <br>
0 INDEX RANGE SCAN I_IDL_UB21 (cr=2 r=2 w=0 time=15066 us)(object id 122) <br>
<br>
******************************************************************************** <br>
<br>
select baseobject,type#,update$,insert$,delete$,refnewname,refoldname, <br>
whenclause,definition,enabled,property,sys_evts,nttrigcol,nttrigatt, <br>
refprtname,rowid <br>
from <br>
trigger$ where obj# =:1 <br>
<br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 1 0.00 0.00 0 0 0 0 <br>
Execute 1 0.00 0.00 0 0 0 0 <br>
Fetch 1 0.00 0.00 1 2 0 1 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 3 0.00 0.00 1 2 0 1 <br>
<br>
Misses in library cache during parse: 1 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: SYS (recursive depth: 2) <br>
<br>
Rows Row Source Operation <br>
------- --------------------------------------------------- <br>
1 TABLE ACCESS BY INDEX ROWID TRIGGER$ (cr=2 r=1 w=0 time=9352 us) <br>
1 INDEX UNIQUE SCAN I_TRIGGER2 (cr=1 r=1 w=0 time=9340 us)(object id 131) <br>
<br>
******************************************************************************** <br>
<br>
select owner# <br>
from <br>
obj$ o where obj# = :1 <br>
<br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 1 0.00 0.00 0 0 0 0 <br>
Execute 1 0.00 0.00 0 0 0 0 <br>
Fetch 1 0.00 0.00 0 3 0 1 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 3 0.00 0.00 0 3 0 1 <br>
<br>
Misses in library cache during parse: 1 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: SYS (recursive depth: 2) <br>
<br>
Rows Row Source Operation <br>
------- --------------------------------------------------- <br>
1 TABLE ACCESS BY INDEX ROWID OBJ$ (cr=3 r=0 w=0 time=15 us) <br>
1 INDEX UNIQUE SCAN I_OBJ1 (cr=2 r=0 w=0 time=7 us)(object id 36) <br>
<br>
******************************************************************************** <br>
<br>
select tc.type#,tc.intcol#,tc.position#,c.type#, c.length,c.scale, <br>
c.precision#,c.charsetid,c.charsetform <br>
from <br>
triggercol$ tc,col$ c ,trigger$ tr where tc.obj#=:1 and c.obj#=:2 and <br>
tc.intcol#=c.intcol# and tr.obj# = tc.obj# and (bitand(tr.property,32) != <br>
32 or bitand(tc.type#,20) = 20) union select type#,intcol#,position#,69,0,0, <br>
0,0,0 from triggercol$ where obj#=:3 and intcol#=1001 union select tc.type#, <br>
tc.intcol#,tc.position#,121,0,0,0,0,0 from triggercol$ tc,trigger$ tr where <br>
tr.obj# = tc.obj# and bitand(tr.property,32) = 32 and tc.obj# = :4 and <br>
bitand(tc.type#,20) != 20 <br>
<br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 1 0.00 0.00 0 0 0 0 <br>
Execute 1 0.00 0.00 0 0 0 0 <br>
Fetch 34 0.00 0.05 8 236 0 33 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 36 0.00 0.05 8 236 0 33 <br>
<br>
Misses in library cache during parse: 1 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: SYS (recursive depth: 2) <br>
<br>
Rows Row Source Operation <br>
------- --------------------------------------------------- <br>
33 SORT UNIQUE (cr=236 r=8 w=0 time=54877 us) <br>
33 UNION-ALL (cr=236 r=8 w=0 time=54606 us) <br>
33 NESTED LOOPS (cr=197 r=8 w=0 time=53779 us) <br>
33 NESTED LOOPS (cr=162 r=8 w=0 time=53053 us) <br>
77 TABLE ACCESS CLUSTER COL$ (cr=83 r=6 w=0 time=40045 us) <br>
1 INDEX UNIQUE SCAN I_OBJ# (cr=2 r=2 w=0 time=13764 us)(object id 3) <br>
33 INDEX RANGE SCAN I_TRIGGERCOL2 (cr=79 r=2 w=0 time=12523 us)(object id 133) <br>
33 TABLE ACCESS BY INDEX ROWID TRIGGER$ (cr=35 r=0 w=0 time=466 us) <br>
33 INDEX UNIQUE SCAN I_TRIGGER2 (cr=2 r=0 w=0 time=152 us)(object id 131) <br>
0 INDEX RANGE SCAN I_TRIGGERCOL2 (cr=2 r=0 w=0 time=5 us)(object id 133) <br>
0 NESTED LOOPS (cr=37 r=0 w=0 time=574 us) <br>
33 INDEX RANGE SCAN I_TRIGGERCOL2 (cr=2 r=0 w=0 time=81 us)(object id 133) <br>
0 TABLE ACCESS BY INDEX ROWID TRIGGER$ (cr=35 r=0 w=0 time=350 us) <br>
33 INDEX UNIQUE SCAN I_TRIGGER2 (cr=2 r=0 w=0 time=139 us)(object id 131) <br>
<br>
******************************************************************************** <br>
<br>
select grantee#,privilege#,nvl(col#,0),max(mod(nvl(option$,0),2)) <br>
from <br>
objauth$ where obj#=:1 group by grantee#,privilege#,nvl(col#,0) order by <br>
grantee# <br>
<br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 3 0.00 0.00 0 0 0 0 <br>
Execute 3 0.00 0.00 0 0 0 0 <br>
Fetch 3 0.00 0.00 0 6 0 0 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 9 0.00 0.00 0 6 0 0 <br>
<br>
Misses in library cache during parse: 1 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: SYS (recursive depth: 2) <br>
******************************************************************************** <br>
<br>
UPDATE <br>
SET <br>
WHERE ref_appln_no = :b1 <br>
AND flg_mnt_status = 'A' <br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 1 0.00 0.00 0 0 0 0 <br>
Execute 1 0.00 0.16 9 8 17 1 <br>
Fetch 0 0.00 0.00 0 0 0 0 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 2 0.00 0.16 9 8 17 1 <br>
<br>
Misses in library cache during parse: 1 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: 61 (recursive depth: 1) <br>
******************************************************************************** <br>
<br>
select type#,blocks,extents,minexts,maxexts,extsize,extpct,user#,iniexts, <br>
NVL(lists,65535),NVL(groups,65535),cachehint,hwmincr, NVL(spare1,0) <br>
from <br>
seg$ where ts#=:1 and file#=:2 and block#=:3 <br>
<br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 3 0.00 0.00 0 0 0 0 <br>
Execute 3 0.00 0.00 0 0 0 0 <br>
Fetch 3 0.00 0.01 3 9 0 3 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 9 0.00 0.01 3 9 0 3 <br>
<br>
Misses in library cache during parse: 0 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: SYS (recursive depth: 2) <br>
<br>
Rows Row Source Operation <br>
------- --------------------------------------------------- <br>
1 TABLE ACCESS CLUSTER SEG$ (cr=3 r=3 w=0 time=17332 us) <br>
1 INDEX UNIQUE SCAN I_FILE#_BLOCK# (cr=2 r=2 w=0 time=10258 us)(object id 9) <br>
<br>
******************************************************************************** <br>
<br>
INSERT INTO ci_dedupe_details <br>
VALUES <br>
( <br>
:b31, <br>
:b32, <br>
:b31, <br>
:b30, <br>
:b29, <br>
:b28, <br>
:b27, <br>
:b26, <br>
:b25, <br>
:b24, <br>
:b23, <br>
:b22, <br>
:b21, <br>
:b20, <br>
:b19, <br>
:b18, <br>
:b17, <br>
:b16, <br>
:b15, <br>
:b14, <br>
:b13, <br>
:b12, <br>
:b11, <br>
:b10, <br>
:b9, <br>
:b8, <br>
:b7, <br>
:b6, <br>
:b5, <br>
:b4, <br>
:b3, <br>
:b2, <br>
:b1, <br>
'N', <br>
0, <br>
'E' ) <br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 1 0.00 0.00 0 0 0 0 <br>
Execute 1 0.01 0.03 4 1 5 1 <br>
Fetch 0 0.00 0.00 0 0 0 0 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 2 0.01 0.03 4 1 5 1 <br>
<br>
Misses in library cache during parse: 1 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: 61 (recursive depth: 1) <br>
******************************************************************************** <br>
<br>
select /*+ rule */ bucket_cnt, row_cnt, cache_cnt, null_cnt, timestamp#, <br>
sample_size, minimum, maximum, distcnt, lowval, hival, density, col#, <br>
spare1, spare2, avgcln <br>
from <br>
hist_head$ where obj#=:1 and intcol#=:2 <br>
<br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 1 0.00 0.00 0 0 0 0 <br>
Execute 36 0.00 0.00 0 0 0 0 <br>
Fetch 36 0.00 0.02 3 108 0 36 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 73 0.00 0.02 3 108 0 36 <br>
<br>
Misses in library cache during parse: 1 <br>
Optimizer goal: RULE <br>
Parsing user id: SYS (recursive depth: 2) <br>
******************************************************************************** <br>
<br>
COMMIT <br>
<br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 2 0.00 0.00 0 0 0 0 <br>
Execute 2 0.00 0.01 0 0 1 0 <br>
Fetch 0 0.00 0.00 0 0 0 0 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 4 0.00 0.01 0 0 1 0 <br>
<br>
Misses in library cache during parse: 1 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: 61 (recursive depth: 1) <br>
******************************************************************************** <br>
<br>
BEGIN DBMS_OUTPUT.GET_LINES(:LINES, :NUMLINES); END; <br>
<br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 1 0.00 0.00 0 0 0 0 <br>
Execute 1 0.00 0.00 0 0 0 1 <br>
Fetch 0 0.00 0.00 0 0 0 0 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 2 0.00 0.00 0 0 0 1 <br>
<br>
Misses in library cache during parse: 1 <br>
Optimizer goal: CHOOSE <br>
Parsing user id: 61 <br>
<br>
<br>
<br>
******************************************************************************** <br>
<br>
OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS <br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 2 0.00 0.00 0 0 0 0 <br>
Execute 3 0.00 820.23 0 0 0 2 <br>
Fetch 0 0.00 0.00 0 0 0 0 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 5 0.00 820.23 0 0 0 2 <br>
<br>
Misses in library cache during parse: 1 <br>
Misses in library cache during execute: 1 <br>
<br>
<br>
OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS <br>
<br>
call count cpu elapsed disk query current rows <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
Parse 49 0.00 0.10 3 3 0 0 <br>
Execute 755577 14.25 11.90 17 10 29 3 <br>
Fetch 4910422 92.89 130.18 39671 6442895 0 4532611 <br>
------- ------ -------- ---------- ---------- ---------- ---------- ---------- <br>
total 5666048 107.14 142.19 39691 6442908 29 4532614 <br>
<br>
Misses in library cache during parse: 11 <br>
<br>
17 user SQL statements in session. <br>
35 internal SQL statements in session. <br>
52 SQL statements in session. <br>
******************************************************************************** <br>
Trace file: afhuat_ora_2204.trc <br>
Trace file compatibility: 9.00.01 <br>
Sort options: default <br>
<br>
1 session in tracefile. <br>
17 user SQL statements in trace file. <br>
35 internal SQL statements in trace file. <br>
52 SQL statements in trace file. <br>
36 unique SQL statements in trace file. <br>
5666466 lines in trace file. <br>
Regards<br>
vamsi krishna<br> -
JCA Error while calling Stored Procedure containing cursors in BPEL/OSB
Hi,
I created JCA DBAdapter in Jdeveloper for calling remote stored procedure which contains cursors as OUT parameters.
I'm getting below exception when i try to call the database via BPEL/OSB.the same remote procedure call is working on Invoking with WLI .
Kindly sugggest !!!
The invocation resulted in an error: I*nvoke JCA outbound service failed with connection error, exception: com.bea.wli.sb.transports.jca.JCATransportException: oracle.tip.adapter.sa.api.JCABindingException: oracle.tip.adapter.sa.impl.fw.ext.org.collaxa.thirdparty.apache.wsif.WSIFException: servicebus:/WSDL/ServiceBus/BusinessServices/IsdnSiebelConn [ IsdnSiebelConn_ptt::IsdnSiebelConn(InputParameters,OutputParameters) ] - WSIF JCA Execute of operation 'IsdnSiebelConn' failed due to: Get object error.*
Error retrieving the value of a parameter R_NON_CNF_ATTR_CURSOR.
An error occurred when retrieving the value of parameter R_NON_CNF_ATTR_CURSOR after invoking the SIEBEL.ISDN_OBT_INS_DET.OBTAINASSETDETAILS API. Cause: java.sql.SQLException: Cursor is closed.
*; nested exception is:*
BINDING.JCA-11810
Get object error.
Error retrieving the value of a parameter R_NON_CNF_ATTR_CURSOR.
An error occurred when retrieving the value of parameter R_NON_CNF_ATTR_CURSOR after invoking the SIEBEL.ISDN_OBT_INS_DET.OBTAINASSETDETAILS API. Cause: java.sql.SQLException: Cursor is closed.
Check to ensure that the parameter has been correctly registered as a valid IN/OUT or OUT parameter of the API. This exception is considered retriable, likely due to a communication failure. To classify it as non-retriable instead add property nonRetriableErrorCodes with value "0" to your deployment descriptor (i.e. weblogic-ra.xml). To auto retry a retriable fault set these composite.xml properties for this invoke: jca.retry.interval, jca.retry.count, and jca.retry.backoff. All properties are integers.
com.bea.wli.sb.transports.jca.JCATransportException: oracle.tip.adapter.sa.api.JCABindingException: oracle.tip.adapter.sa.impl.fw.ext.org.collaxa.thirdparty.apache.wsif.WSIFException: servicebus:/WSDL/ServiceBus/BusinessServices/IsdnSiebelConn [ IsdnSiebelConn_ptt::IsdnSiebelConn(InputParameters,OutputParameters) ] - WSIF JCA Execute of operation 'IsdnSiebelConn' failed due to: Get object error.
Error retrieving the value of a parameter R_NON_CNF_ATTR_CURSOR.
An error occurred when retrieving the value of parameter R_NON_CNF_ATTR_CURSOR after invoking the SIEBEL.ISDN_OBT_INS_DET.OBTAINASSETDETAILS API. Cause: java.sql.SQLException: Cursor is closed.
; nested exception is:
BINDING.JCA-11810
Get object error.
Error retrieving the value of a parameter R_NON_CNF_ATTR_CURSOR.
An error occurred when retrieving the value of parameter R_NON_CNF_ATTR_CURSOR after invoking the SIEBEL.ISDN_OBT_INS_DET.OBTAINASSETDETAILS API. Cause: java.sql.SQLException: Cursor is closed.
Check to ensure that the parameter has been correctly registered as a valid IN/OUT or OUT parameter of the API. This exception is considered retriable, likely due to a communication failure. To classify it as non-retriable instead add property nonRetriableErrorCodes with value "0" to your deployment descriptor (i.e. weblogic-ra.xml). To auto retry a retriable fault set these composite.xml properties for this invoke: jca.retry.interval, jca.retry.count, and jca.retry.backoff. All properties are integers.
at com.bea.wli.sb.transports.jca.binding.JCATransportOutboundOperationBindingServiceImpl.invoke(JCATransportOutboundOperationBindingServiceImpl.java:153)
at com.bea.wli.sb.transports.jca.JCATransportEndpoint.sendRequestResponse(JCATransportEndpoint.java:209)
at com.bea.wli.sb.transports.jca.JCATransportEndpoint.send(JCATransportEndpoint.java:170)
at com.bea.wli.sb.transports.jca.JCATransportProvider.sendMessageAsync(JCATransportProvider.java:571)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.bea.wli.sb.transports.Util$1.invoke(Util.java:83)
at $Proxy127.sendMessageAsync(Unknown Source)
at com.bea.wli.sb.transports.LoadBalanceFailoverListener.sendMessageAsync(LoadBalanceFailoverListener.java:148)
at com.bea.wli.sb.transports.LoadBalanceFailoverListener.sendMessageToServiceAsync(LoadBalanceFailoverListener.java:603)
at com.bea.wli.sb.transports.LoadBalanceFailoverListener.sendMessageToService(LoadBalanceFailoverListener.java:538)
at com.bea.wli.sb.transports.TransportManagerImpl.sendMessageToService(TransportManagerImpl.java:558)
at com.bea.wli.sb.transports.TransportManagerImpl.sendMessageAsync(TransportManagerImpl.java:426)
at com.bea.wli.sb.test.service.ServiceMessageSender.send0(ServiceMessageSender.java:377)
at com.bea.wli.sb.test.service.ServiceMessageSender.access$000(ServiceMessageSender.java:76)
at com.bea.wli.sb.test.service.ServiceMessageSender$1.run(ServiceMessageSender.java:134)
at com.bea.wli.sb.test.service.ServiceMessageSender$1.run(ServiceMessageSender.java:132)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
at com.bea.wli.sb.security.WLSSecurityContextService.runAs(WLSSecurityContextService.java:55)
at com.bea.wli.sb.test.service.ServiceMessageSender.send(ServiceMessageSender.java:137)
at com.bea.wli.sb.test.service.ServiceProcessor.invoke(ServiceProcessor.java:454)
at com.bea.wli.sb.test.TestServiceImpl.invoke(TestServiceImpl.java:172)
at com.bea.wli.sb.test.client.ejb.TestServiceEJBBean.invoke(TestServiceEJBBean.java:167)
at com.bea.wli.sb.test.client.ejb.TestService_sqr59p_EOImpl.invoke(TestService_sqr59p_EOImpl.java:353)
at com.bea.wli.sb.test.client.ejb.TestService_sqr59p_EOImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:174)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:345)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:259)
at com.bea.wli.sb.test.client.ejb.TestService_sqr59p_EOImpl_1033_WLStub.invoke(Unknown Source)
at com.bea.alsb.console.test.TestServiceClient.invoke(TestServiceClient.java:174)
at com.bea.alsb.console.test.actions.DefaultRequestAction.invoke(DefaultRequestAction.java:117)
at com.bea.alsb.console.test.actions.DefaultRequestAction.execute(DefaultRequestAction.java:70)
at com.bea.alsb.console.test.actions.ServiceRequestAction.execute(ServiceRequestAction.java:143)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.access$201(PageFlowRequestProcessor.java:97)
at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor$ActionRunner.execute(PageFlowRequestProcessor.java:2044)
at org.apache.beehive.netui.pageflow.interceptor.action.internal.ActionInterceptors.wrapAction(ActionInterceptors.java:91)
at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processActionPerform(PageFlowRequestProcessor.java:2116)
at com.bea.alsb.console.common.base.SBConsoleRequestProcessor.processActionPerform(SBConsoleRequestProcessor.java:91)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processInternal(PageFlowRequestProcessor.java:556)
at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.process(PageFlowRequestProcessor.java:853)
at com.bea.alsb.console.common.base.SBConsoleRequestProcessor.process(SBConsoleRequestProcessor.java:191)
at org.apache.beehive.netui.pageflow.AutoRegisterActionServlet.process(AutoRegisterActionServlet.java:631)
at org.apache.beehive.netui.pageflow.PageFlowActionServlet.process(PageFlowActionServlet.java:158)
at com.bea.console.internal.ConsoleActionServlet.process(ConsoleActionServlet.java:256)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at com.bea.console.internal.ConsoleActionServlet.doGet(ConsoleActionServlet.java:133)
at com.bea.alsb.console.common.base.SBConsoleActionServlet.doGet(SBConsoleActionServlet.java:49)
at org.apache.beehive.netui.pageflow.PageFlowUtils.strutsLookup(PageFlowUtils.java:1199)
at org.apache.beehive.netui.pageflow.PageFlowUtils.strutsLookup(PageFlowUtils.java:1129)
at com.bea.portlet.adapter.scopedcontent.ScopedContentCommonSupport.executeAction(ScopedContentCommonSupport.java:687)
at com.bea.portlet.adapter.scopedcontent.ScopedContentCommonSupport.processActionInternal(ScopedContentCommonSupport.java:142)
at com.bea.portlet.adapter.scopedcontent.StrutsStubImpl.processAction(StrutsStubImpl.java:76)
at com.bea.portlet.adapter.NetuiActionHandler.raiseScopedAction(NetuiActionHandler.java:111)
at com.bea.netuix.servlets.controls.content.NetuiContent.raiseScopedAction(NetuiContent.java:181)
at com.bea.netuix.servlets.controls.content.NetuiContent.raiseScopedAction(NetuiContent.java:167)
at com.bea.netuix.servlets.controls.content.NetuiContent.handlePostbackData(NetuiContent.java:225)
at com.bea.netuix.nf.ControlLifecycle$2.visit(ControlLifecycle.java:180)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:324)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)
at com.bea.netuix.nf.ControlTreeWalker.walkRecursive(ControlTreeWalker.java:334)
at com.bea.netuix.nf.ControlTreeWalker.walk(ControlTreeWalker.java:130)
at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:395)
at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:361)
at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:352)
at com.bea.netuix.nf.Lifecycle.runInbound(Lifecycle.java:184)
at com.bea.netuix.nf.Lifecycle.run(Lifecycle.java:159)
at com.bea.netuix.servlets.manager.UIServlet.runLifecycle(UIServlet.java:388)
at com.bea.netuix.servlets.manager.UIServlet.doPost(UIServlet.java:258)
at com.bea.netuix.servlets.manager.UIServlet.service(UIServlet.java:199)
at com.bea.netuix.servlets.manager.SingleFileServlet.service(SingleFileServlet.java:251)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.AsyncInitServlet.service(AsyncInitServlet.java:130)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:330)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.doIt(WebAppServletContext.java:3684)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3650)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2268)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2174)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1446)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)You need to open all the cursors in the PLSQL ie., cursors should be initialized in your PLSQL package. JCA DB Adapter tries to open the cursor without checking whether its there or not..If you cant change the PLSQL package, raise a SR with Oracle for a patch.This would be considered as Enhancement Request.
Regards
Sesha -
To call db2 stored procedure having parameters in java application
Hi,
I've created db2 stored procedure which is running perfectly on db2 server after giving a CALL to it. But when I tried to call this same stored procedure in java application, its reflecting with following error......
com.ibm.db2.jcc.b.SqlException: [jcc][10100][10910][3.50.152] java.sql.CallableStatement.executeQuery() was called but no result set was returned.
Use java.sql.CallableStatement.executeUpdate() for non-queries. ERRORCODE=-4476, SQLSTATE=null
at com.ibm.db2.jcc.b.wc.a(wc.java:55)
at com.ibm.db2.jcc.b.wc.a(wc.java:102)
at com.ibm.db2.jcc.b.tk.b(tk.java:575)
at com.ibm.db2.jcc.b.vk.yb(vk.java:136)
at com.ibm.db2.jcc.b.vk.executeQuery(vk.java:114)
at SPApplication.main(SPApplication.java:31)
Here is the code.......
import java.sql.*; public class SPApplication { public static Connection con; public static CallableStatement proc_stmt; public static ResultSet rs; /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub try { Class.forName("DB2 DRIVER CLASS"); System.out.println("Class loaded....."); con = DriverManager.getConnection("jdbc:db2://localhost:PORTNO/" + " DatabaseName", "username", "password"); System.out.println("Connection established....."); proc_stmt = con.prepareCall("call procedure_name(?)"); //IN Parameter proc_stmt.setInt(1, 5); System.out.println("Called procedure....."); rs = proc_stmt.executeQuery(); /******** THIS IS LINE NO. 31 *********/ while (rs.next()) { // Fetching rows one by one over here } proc_stmt.close(); rs.close(); con.close(); } catch (ClassNotFoundException cnfe) { cnfe.printStackTrace(); } catch (SQLException sqle) { sqle.printStackTrace(); } finally { /* try { proc_stmt.close(); rs.close(); con.close(); } catch (SQLException sqle) { sqle.printStackTrace(); } */ } } }
Please correct me, if I am wrong at any point in my application..
I would really appreciate for resolving my problem.
Thanks,
Manasi N.Hi jschell ,
Firstly, I tried out with execute() and getMoreResults() to check if the statement is returning result set. - Its returning "null" only.
Secondly, I tried with following one by one :
1. Find a new jdbc driver
2. Write a different stored procedure.I am using DB2 Express edition - DB2 v9.7.0.0
I have the required jar files - i)db2jcc.jar ii) db2jcc_license_cu.jar
From these I found the available jdbc drivers as -
i) com.ibm.db2.jcc.DB2Driver
ii) COM.ibm.db2os390.sqlj.jdbc.DB2SQLJDriver
iii) com.ibm.db2.jcc.uw.DB2StoredProcDriver
I tried out my code by using each of these drivers, but still returning result set as null.
Moreover, I changed my stored procedure which has cursor returning result set. In this case also, result set is null.
Code snippet for this SP is -
30 Class.forName("com.ibm.db2.jcc.uw.DB2StoredProcDriver");
31 System.out.println("Class loaded....");
32 con = DriverManager.getConnection
33 ("jdbc:db2://localhost:portno/dbName", "user", "password");
34 System.out.println("Connection established....");
35
36 proc_stmt = con.prepareCall("call javaSP()");
37
38 System.out.println("Called stored procedure....");
39
40 proc_stmt.execute();
41 //proc_stmt.executeUpdate();
42 //rs = proc_stmt.getResultSet();
43
44 System.out.println("Query executed....");
45
46 if ((proc_stmt.getMoreResults() == false) &&
47 (proc_stmt.getUpdateCount() == -1)) {
48 System.out.println("No more result sets");
49 }o/p is (for every mentioned above jdbc driver) :-
Class loaded....
Connection established....
Called stored procedure....
Query executed....
No more result sets..
The o/p is always "No more result sets"
What else can be tried out to retrieve the result set from stored procedure from Java application? And the most important, these same stored procedures are returning result sets on db2 server after calling them.
Thank you,
Manasi.N
Edited by: Manasi.N on Apr 14, 2010 12:27 AM
Edited by: Manasi.N on Apr 14, 2010 12:28 AM -
Error while executing procedure having IN and OUT parameters
Hi,
I will be really gratified if someone can please help me in solving with the following problem.
I have one procedure given below
create or replace procedure abcd1april (
nd_in IN varchar2,
sal_in IN number,
success_out OUT number,
error_code_out OUT number,
error_msg_out OUT varchar2
AS
old_sal number;
cursor H7 is select SERV_ACC_LINK_CODE_N from pair_bkup where PAIRE_STATUS in (3,4) and nd=nd_in;
BEGIN
old_sal:=0;
open H7;
fetch H7 into old_sal;
close H7;
if old_sal=0
then
success_out:=0;
error_code_out:=01;
error_msg_out:='Check this error';
else
update pair_bkup set SERV_ACC_LINK_CODE_N=sal_in where nd=nd_in and SERV_ACC_LINK_CODE_N=old_sal;
success_out:=1;
error_code_out:=00;
error_msg_out:='NO ERROR IS THERE';
end if;
EXCEPTION
WHEN OTHERS
THEN
success_out:=0;
error_code_out:=SQLCODE;
--error_msg_out:=SQLERRM;
END;
Now when i try to execute this script it throws an error given below:-
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at "TELMATEST.ABCD1APRIL", line 39
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
Now i am executing this procedure by following script:-
DECLARE
nd_in_n VARCHAR2(10);
sal_in_n NUMBER;
success_out_n NUMBER;
error_code_out_n NUMBER;
error_message_out_n VARCHAR2(10);
BEGIN
nd_in_n := '';
sal_in_n:= 0;
success_out_n := 0;
error_code_out_n:= '';
error_message_out_n := '';
abcd1april('02022',3,success_out_n,error_code_out_n,error_message_out_n);
insert into errormsgs values(&error_code_v,'error_message_v');
END ;
Now please help me in above case.
Regards
Gursimran SinghGursimran,
The error message tells you what you need to know -
ORA-06502: PL/SQL: numeric or value error: character string buffer too small.You're calling the procedure and supplying
error_message_out_n VARCHAR2(10);In each case, the message 'Check this error', 'NO ERROR IS THERE' or SQLERRM is longer than 10 characters - therefore the error.
Try it with
error_message_out_n VARCHAR2(1000);Cheers,
Bryan.
Maybe you are looking for
-
After moving to spain from UK I can't get my phone to activate with my Spanish sim card
I currently live in Spain after moving from UK 3 months ago. On first arriving in Spain i bought an orange PAYG sim card inserted it into my Blackberry and all worked fine. I Recently changed from Blackberry to iphone5 whilst back in UK, on returnin
-
Printing line items in next line smartforms
how to print line item description in next line... suppose i have line item description as "this is description of line item" then i need to print as "this is" "description of line item" in two lines...... so that no trunkation takes plac
-
Configuring sender jdbc adapter
Hi all, I have a requirement in which i have to select certain data from Oracle table and send it to an IDOC via SAP XI. Problem is the select can happen from several tables. For example: SELECT col1,col2,col3 FROM <tablename> The <tablename> has to
-
Trash not supported? What does that mean...?
Trash not supported? What does that mean...?
-
Usage of MDM's material master relevant XI Content and Business Content
Dear all, In MDM's material-relevant XI content, there's a message interface "MDMMatmasIn". But in the demo system this interface is not used to write material master data to file. The IDoc type MATMAS.MATMAS05 is used instead. No mapping is used. Ma