In passing the huge parameter to oracle procedure have a performance hit?

I have a script attached, in which I am trying process/XML parsing in a table (STAGE_TBL) in the XMLTYPE column and insert the data analyzed in another table (PROCESSED_DATA_TBL). The XML file can be huge up to 2MB, which translates into approximately 2000 + lines of analyzed data. The issue I see is when I pass an XML object to a procedure (STAGE_TBL_PROCESS) to analyze its takes about 10 seconds per XML, but rather than from XML if I directly pick up table in the procedure (STAGE_TBL_PROCESS) passing the ID to be about 0.15 seconds. According to the document while params are passed by reference, so why is this variation of performance?

Details of database Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64-bit version of PL/SQL Production 11.2.0.3.0 - Production "CORE 11.2.0.3.0 Production" TNS for Linux: Version 11.2.0.3.0 - Production NLSRTL Version 11.2.0.3.0 - Production

Note: I could not perform SQL_TRACE or DBMS_STATS as I don't have access to them.

/*
This one is taking .15 seconds to process an XML with about 2000 rp_sendRow elements
*/

DECLARE
 
CURSOR NewStage IS
  
SELECT *
  
FROM STAGE_TBL
  
WHERE  status = 'N'
  
ORDER BY PUT_TIME ASC;
  SUBTYPE rt_NewStage
IS NewStage % rowtype;

  ROW_COUNT INTEGER
:= 0;   -- Return value from calling the procedure
  READ_COUNT INTEGER
:= 0;   -- Number of rows read from the stage table
  INSERT_COUNT_TOTAL INTEGER
:= 0;   -- Number of Inserts Inven records
  ERROR_COUNT INTEGER
:= 0;   -- Number of Inven inserts that did inserted more then 1 row in Inven
  PROCESS_STATUS STATUS
.MmsStatus;
  STATUS_DESCRIPTION STATUS
.MmsStatusReason;
  ERRMSG VARCHAR2
(500);

PROCEDURE STAGE_TBL_PROCESS (IDDATA IN RAW, PROCESS_STATUS OUT VARCHAR2, STATUS_DESCRIPTION OUT VARCHAR2, ROW_COUNT OUT NUMBER) AS
/*
  This procedure is to parse the XML from STAGE_TBL and populate the data from XML to PROCESSED_DATA_TBL table

  IN PARAMS
  ----------
  IDDATA - ID from STAGE_TBL
  xData - XMLType field from XML_DOCUMENT of STAGE_TBL

  OUT PARAMS
  -----------
  PROCESS_STATUS - The STATUS of parsing and populating PROCESSED_DATA_TBL
  STATUS_DESCRIPTION - The description of the STATUS of parsing and populating PROCESSED_DATA_TBL
  ROW_COUNT - Number of rows inserted into PROCESSED_DATA_TBL
*/

BEGIN
  
INSERT ALL INTO PROCESSED_DATA_TBL 
  
(PD_ID, 
  STORE
, 
  SALES_NBR
, 
  UNIT_COST
, 
  ST_FLAG
, 
  ST_DATE
, 
  ST
, 
  START_QTY
, 
  START_VALUE
, 
  START_ON_ORDER
, 
  HAND
, 
  ORDERED
, 
  COMMITED
, 
  SALES
, 
  RECEIVE
, 
  VALUED
, 
  ID_1
, 
  ID_2
, 
  ID_3
, 
  UNIT_PRICE
, 
  EFFECTIVE_DATE
, 
  STATUS
, 
  STATUS_DATE
, 
  STATUS_REASON
) 
  
VALUES (IDDATA 
  
,store 
  
,SalesNo 
  
,UnitCost 
  
,StWac 
  
,StDt 
  
,St 
  
,StartQty 
  
,StartValue 
  
,StartOnOrder 
  
,Hand 
  
,Ordered 
  
,COMMITED 
  
,Sales 
  
,Rec 
  
,Valued 
  
,Id1 
  
,Id2 
  
,Id3 
  
,UnitPrice 
  
,to_Date(EffectiveDate||' '||EffectiveTime, 'YYYY-MM-DD HH24:MI:SS') 
  
,'N'  
  
,SYSDATE 
  
,'XML PROCESS INSERT')  
  
WITH T AS
  
( SELECT STG.XML_DOCUMENT FROM STAGE_TBL STG WHERE STG.ID = IDDATA)  
-- This is to parse and fetch the data from XML 
  
SELECT E.* FROM T, XMLTABLE('rp_send/rp_sendRow' PASSING T.XML_DOCUMENT COLUMNS
  store VARCHAR
(20) PATH 'store'  
  
,SalesNo VARCHAR(20) PATH 'sales' 
  
,UnitCost NUMBER PATH 'cost' 
  
,StWac VARCHAR(20) PATH 'flag' 
  
,StDt DATE PATH 'st-dt' 
  
,St NUMBER PATH 'st' 
  
,StartQty NUMBER PATH 'qty' 
  
,StartValue NUMBER PATH 'value' 
  
,StartOnOrder NUMBER PATH 'start-on-order' 
  
,Hand NUMBER PATH 'hand' 
  
,Ordered NUMBER PATH 'order' 
  
,Commited NUMBER PATH 'commit' 
  
,Sales NUMBER PATH 'sales' 
  
,Rec NUMBER PATH 'rec' 
  
,Valued NUMBER PATH 'val' 
  
,Id1 VARCHAR(30) PATH 'id-1' 
  
,Id2 VARCHAR(30) PATH 'id-2' 
  
,Id3 VARCHAR(30) PATH 'id-3' 
  
,UnitPrice NUMBER PATH 'unit-pr' 
  
,EffectiveDate VARCHAR(30) PATH 'eff-dt' 
  
,EffectiveTime VARCHAR(30) PATH 'eff-tm' 
  
) E;  
  ROW_COUNT 
:= SQL%ROWCOUNT;  -- Not the # of all the rows inserted.
  PROCESS_STATUS 
:= STATUS.PROCESSED;
  
IF ROW_COUNT < 1 THEN   -- The insert failed Row Count = 0 No exception thrown
  PROCESS_STATUS 
:= STATUS.ERROR;
  STATUS_DESCRIPTION 
:= 'ERROR Did not insert into Pos Inventory. Reason Unknown';
  
END IF;
  EXCEPTION
  
WHEN OTHERS THEN
  ROW_COUNT 
:= 0;
  PROCESS_STATUS 
:= STATUS.ERROR;
  STATUS_DESCRIPTION 
:= 'SqlCode:' || SQLCODE || ' SqlErrMsg:' || SQLERRM;
END;


BEGIN
  DBMS_OUTPUT
.enable(NULL);
 
FOR A_NewStage IN NewStage
  LOOP
  READ_COUNT
:= READ_COUNT + 1;
  STAGE_TBL_PROCESS
(A_NewStage.ID, PROCESS_STATUS, STATUS_DESCRIPTION, ROW_COUNT);
  INSERT_COUNT_TOTAL
:= INSERT_COUNT_TOTAL + ROW_COUNT;
  
IF(ROW_COUNT <= 0 OR PROCESS_STATUS = STATUS.ERROR) THEN
  ERROR_COUNT
:= ERROR_COUNT + 1;
  
UPDATE STAGE_TBL
  
SET status  = PROCESS_STATUS,
  status_DATE 
= SYSDATE,
  status_DESCRIPTION 
= STATUS_DESCRIPTION
  
WHERE ID  = A_NewStage.ID;
  
ELSE
  
UPDATE STAGE_TBL
  
SET status  = PROCESS_STATUS,
  status_DATE 
= SYSDATE,
  status_DESCRIPTION 
= STATUS_DESCRIPTION,
  SHRED_DT 
= SYSDATE
  
WHERE ID  = A_NewStage.ID;
  
END IF;
  
COMMIT;
 
END LOOP;
 
COMMIT;
 
IF ERROR_COUNT > 0 THEN
  ERRMSG
:= '** ERROR: ' || ERROR_COUNT || ' Stage records did not insert in to the Processed table correctly';
  RAISE_APPLICATION_ERROR
(-20001,ErrMsg); 
 
END IF;
  EXCEPTION
  
WHEN OTHERS THEN
  RAISE
;
END ;

/*
This one is taking 10 seconds to process an XML with about 2000 rp_sendRow elements
*/

DECLARE
 
CURSOR NewStage IS
  
SELECT *
  
FROM STAGE_TBL
  
WHERE  status = 'N'
  
ORDER BY PUT_TIME ASC;
  SUBTYPE rt_NewStage
IS NewStage % rowtype;

  ROW_COUNT INTEGER
:= 0;   -- Return value from calling the procedure
  READ_COUNT INTEGER
:= 0;   -- Number of rows read from the stage table
  INSERT_COUNT_TOTAL INTEGER
:= 0;   -- Number of Inserts Inven records
  ERROR_COUNT INTEGER
:= 0;   -- Number of Inven inserts that did inserted more then 1 row in Inven
  PROCESS_STATUS STATUS
.MmsStatus;
  STATUS_DESCRIPTION STATUS
.MmsStatusReason;
  ERRMSG VARCHAR2
(500);

PROCEDURE STAGE_TBL_PROCESS (IDDATA IN RAW, xData IN STAGE_TBL.XML_DOCUMENT%TYPE, PROCESS_STATUS OUT VARCHAR2, STATUS_DESCRIPTION OUT VARCHAR2, ROW_COUNT OUT NUMBER) AS
/*
  This procedure is to parse the XML from STAGE_TBL and populate the data from XML to PROCESSED_DATA_TBL table

  IN PARAMS
  ----------
  IDDATA - ID from STAGE_TBL
  xData - XMLType field from XML_DOCUMENT of STAGE_TBL

  OUT PARAMS
  -----------
  PROCESS_STATUS - The STATUS of parsing and populating PROCESSED_DATA_TBL
  STATUS_DESCRIPTION - The description of the STATUS of parsing and populating PROCESSED_DATA_TBL
  ROW_COUNT - Number of rows inserted into PROCESSED_DATA_TBL
*/

BEGIN
  
INSERT ALL INTO PROCESSED_DATA_TBL 
  
(PD_ID, 
  STORE
, 
  SALES_NBR
, 
  UNIT_COST
, 
  ST_FLAG
, 
  ST_DATE
, 
  ST
, 
  START_QTY
, 
  START_VALUE
, 
  START_ON_ORDER
, 
  HAND
, 
  ORDERED
, 
  COMMITED
, 
  SALES
, 
  RECEIVE
, 
  VALUED
, 
  ID_1
, 
  ID_2
, 
  ID_3
, 
  UNIT_PRICE
, 
  EFFECTIVE_DATE
, 
  STATUS
, 
  STATUS_DATE
, 
  STATUS_REASON
) 
  
VALUES (IDDATA 
  
,store 
  
,SalesNo 
  
,UnitCost 
  
,StWac 
  
,StDt 
  
,St 
  
,StartQty 
  
,StartValue 
  
,StartOnOrder 
  
,Hand 
  
,Ordered 
  
,COMMITED 
  
,Sales 
  
,Rec 
  
,Valued 
  
,Id1 
  
,Id2 
  
,Id3 
  
,UnitPrice 
  
,to_Date(EffectiveDate||' '||EffectiveTime, 'YYYY-MM-DD HH24:MI:SS') 
  
,'N'  
  
,SYSDATE 
  
,'XML PROCESS INSERT')  
-- This is to parse and fetch the data from XML 
  
SELECT E.* FROM XMLTABLE('rp_send/rp_sendRow' PASSING xDATA COLUMNS
  store VARCHAR
(20) PATH 'store'  
  
,SalesNo VARCHAR(20) PATH 'sales' 
  
,UnitCost NUMBER PATH 'cost' 
  
,StWac VARCHAR(20) PATH 'flag' 
  
,StDt DATE PATH 'st-dt' 
  
,St NUMBER PATH 'st' 
  
,StartQty NUMBER PATH 'qty' 
  
,StartValue NUMBER PATH 'value' 
  
,StartOnOrder NUMBER PATH 'start-on-order' 
  
,Hand NUMBER PATH 'hand' 
  
,Ordered NUMBER PATH 'order' 
  
,Commited NUMBER PATH 'commit' 
  
,Sales NUMBER PATH 'sales' 
  
,Rec NUMBER PATH 'rec' 
  
,Valued NUMBER PATH 'val' 
  
,Id1 VARCHAR(30) PATH 'id-1' 
  
,Id2 VARCHAR(30) PATH 'id-2' 
  
,Id3 VARCHAR(30) PATH 'id-3' 
  
,UnitPrice NUMBER PATH 'unit-pr' 
  
,EffectiveDate VARCHAR(30) PATH 'eff-dt' 
  
,EffectiveTime VARCHAR(30) PATH 'eff-tm' 
  
) E;  
  ROW_COUNT 
:= SQL%ROWCOUNT;  -- Not the # of all the rows inserted.
  PROCESS_STATUS 
:= STATUS.PROCESSED;
  
IF ROW_COUNT < 1 THEN   -- The insert failed Row Count = 0 No exception thrown
  PROCESS_STATUS 
:= STATUS.ERROR;
  STATUS_DESCRIPTION 
:= 'ERROR Did not insert into Pos Inventory. Reason Unknown';
  
END IF;
  EXCEPTION
  
WHEN OTHERS THEN
  ROW_COUNT 
:= 0;
  PROCESS_STATUS 
:= STATUS.ERROR;
  STATUS_DESCRIPTION 
:= 'SqlCode:' || SQLCODE || ' SqlErrMsg:' || SQLERRM;
END;


BEGIN
  DBMS_OUTPUT
.enable(NULL);
 
FOR A_NewStage IN NewStage
  LOOP
  READ_COUNT
:= READ_COUNT + 1;
  STAGE_TBL_PROCESS
(A_NewStage.ID, A_NewStage.XML_DOCUMENT, PROCESS_STATUS, STATUS_DESCRIPTION, ROW_COUNT);
  INSERT_COUNT_TOTAL
:= INSERT_COUNT_TOTAL + ROW_COUNT;
  
IF(ROW_COUNT <= 0 OR PROCESS_STATUS = STATUS.ERROR) THEN
  ERROR_COUNT
:= ERROR_COUNT + 1;
  
UPDATE STAGE_TBL
  
SET status  = PROCESS_STATUS,
  status_DATE 
= SYSDATE,
  status_DESCRIPTION 
= STATUS_DESCRIPTION
  
WHERE ID  = A_NewStage.ID;
  
ELSE
  
UPDATE STAGE_TBL
  
SET status  = PROCESS_STATUS,
  status_DATE 
= SYSDATE,
  status_DESCRIPTION 
= STATUS_DESCRIPTION,
  SHRED_DT 
= SYSDATE
  
WHERE ID  = A_NewStage.ID;
  
END IF;
  
COMMIT;
 
END LOOP;
 
COMMIT;
 
IF ERROR_COUNT > 0 THEN
  ERRMSG
:= '** ERROR: ' || ERROR_COUNT || ' Stage records did not insert in to the Processed table correctly';
  RAISE_APPLICATION_ERROR
(-20001,ErrMsg); 
 
END IF;
  EXCEPTION
  
WHEN OTHERS THEN
  RAISE
;
END ;

My
XML with just one rp_sendRow element, it can go upto 2000 rp_sendRow elements
<?xml version = \"1.0\" encoding = \"UTF-8\"?> 
<rp_send xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"> 
  
<rp_sendRow> 
  
<store>0123</store> 
  
<sales>022399190</sales> 
  
<cost>0.01</cost> 
  
<flag>true</flag> 
  
<st-dt>2013-04-19</st-dt> 
  
<st>146.51</st> 
  
<qty>13.0</qty> 
  
<value>0.0</value> 
  
<start-on-order>0.0</start-on-order> 
  
<hand>0.0</hand> 
  
<order>0.0</order> 
  
<commit>0.0</commit> 
  
<sales>0.0</sales> 
  
<rec>0.0</rec> 
  
<val>0.0</val> 
  
<id-1/> 
  
<id-2/> 
  
<id-3/> 
  
<unit-pr>13.0</unit-pr> 
  
<eff-dt>2015-06-16</eff-dt> 
  
<eff-tm>09:12:21</eff-tm> 
  
</rp_sendRow> 
</rp_send> 

The issue I see is when I pass an XML object to a procedure (STAGE_TBL_PROCESS) to analyze its takes about 10 seconds per XML, but rather than from XML if I directly pick up table in the procedure (STAGE_TBL_PROCESS) passing the ID to be about 0.15 seconds.

In version 11.1, Oracle introduced a new model of storage for the data type XMLType called XML binary.

Binary XML become the default in 11.2.0.2, to disparage the old storage based on CLOB.

Binary XML is a format optimized after analysis for the storage and treatment of the XQuery.

When an XQuery expression is evaluated (through for example XMLTABLE) on an XMLType column stored as binary XML, Oracle can use an ongoing evaluation of XPath that surpasses the query even crushed a transitional XMLType of several order of magnitude.

You can see that in the action plan of the explain command:

SQL> SELECT E.*
  2  FROM stage_tbl t
  3     , XMLTABLE('rp_send/rp_sendRow' PASSING t.xml_document
  4         COLUMNS store VARCHAR(20) PATH 'store'
  5               , SalesNo VARCHAR(20) PATH 'sales'
  6               , UnitCost NUMBER PATH 'cost'
  7         ) E ;

Execution Plan
----------------------------------------------------------
Plan hash value: 1134903869

--------------------------------------------------------------------------------
| Id  | Operation          | Name      | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT   |           |     1 |  2008 |    32   (0)| 00:00:01 |
|   1 |  NESTED LOOPS      |           |     1 |  2008 |    32   (0)| 00:00:01 |
|   2 |   TABLE ACCESS FULL| STAGE_TBL |     1 |  2002 |     3   (0)| 00:00:01 |
|   3 |   XPATH EVALUATION |           |       |       |            |          |
--------------------------------------------------------------------------------

When the query is executed on a passenger XMLType (for example, a parameter, or a PL/SQL variable), Oracle cannot run the binary model and use a functional assessment based on memory of the XML DOM-like representation.

You can see that in the plan to explain it by spoting a 'COLLECTION ITERATOR PICKLER FETCH' operation.

So what explains the difference (in your version) between treatment from a column of XMLType (stored in binary XML format) or a variable or a parameter.

From 11.2.0.4 and beyond, things have changed a bit with Oracle, introducing a new transitional level of optimization on XMLType.

The plan of the explain command will show a "XMLTABLE ASSESSMENT' in this case.

Tags: Database

Similar Questions

  • Timestamp in passing as a parameter in a procedure

    Hi all
    I want to pass the timestamp as a parameter to a procedure... When I try to run it and to give time as parameters, it is throwing error date format picture ends before converting the entire input string... I'm not able to spend sysdate and systimestamp.


    Start

    Package.PROC_1 (sysdate, sysdate);

    end;

    for example:

    create or replace proc_1 (T_DATE timestamp, v_date2 timestamp) as

    Start

    Select * from emp where to_date(emp_date,'dd-mon-yyyy') between to_date(v_date,'dd-mon-yyyy') and to_Date (v_date2, 'dd-mon-yyyy');

    end proc_1;


    Here emp_date is timestamp.

    Hello

    You don't need to convert it to to_date as all data you transmit and comparing the column are of the same type (timestamp). So you can just put your condition
    emp_date between T_DATE and v_date2

    see you soon

    VT

  • passing the value of Vo to procedure

    Hi am in jdeveloper 11.1.1.9.0 how can I pass the viewobject value to procedure

    
    
    

    I suppose you're confused on the way to the vo attribute, use below code

    
     public void performNewPwd(String pwd){
                HashMap map = new HashMap();
                ViewObject svo = this.findViewObject("ViewObject");
                svo.executeQuery();
                Row row = svo.first();  
    
                String val=(String)row.getAttribute("Attribute");// get the vo attribute type cast to required data type, in this case I am showing string   
    
                callPerformPwdLogon("package.procedure(?)",new Object[] { pwd,val });  
    
    }
    
  • Pass the connection parameter to connected in portal Builder page

    Hi all

    WebCenter Portal Builder:

    I created the navigation link and connection that link to the page. I just want the parameter to link to this page.

    Please help me.

    Kind regards

    Maury

    See the discussion in passing the parameter through links page (navigation)

  • Pass the value to an ODI procedure

    Hello
    I need to pass the value of a variable ODI ODI procedure.
    Let me tell you what I did:
    (1) first make an ODI procedure and passing the name of the variable of ODI that I spend in the options of the procedures such as #V_Test.
    (2) now, I did the screenplay for this procedure.
    (3) next I used the scenario of the procedure in other ODI package and also added that the variables I have to spend in the procedures.
    (4) but now when I'm passing the values of the variables in this package, procedures is not accept the values.

    Please suggest.

    Thank you

    Select the scenario, and then go to the Properties tab. You will get an additional variable that you want to pass.
    Provide your value of the variable y

  • Passing the Querystring parameter as well as CBC field

    Is Hi possible to pass a string to query on the server when you ask a MP4 file?

    I am building a facebook application where the video files are stored mp4 on facebooks CDN network, however I have noticed that a video to play properly, requires that a string parameter of request sent with the request.  Here is the link for the mp4 with the query string:

    http://video.AK.fbcdn.NET/CFS-AK-snc4/69913/836/451856279639_63474.MP4?Oh=4be5616652f40bde 3c2930c7ce7772c6 & oe = 4D55F60B & __gda__ = 1297479179_1121a29bd1b378f4861aa6efc4c03c54

    If you click on it, you see it load correctly in the browser.

    However if you remove the query string and have it so that it looks like this:

    http://video.AK.fbcdn.NET/CFS-AK-snc4/69913/836/451856279639_63474.MP4

    And try to run in the browser, you will see that he will not play.

    I guess that the query string is a kind of authentication code required by facebook to verify the user.  That's fine, because I just want to send with the request of mp4 because the user has already been authenticated by my application.

    I tried to define the scope of the CBC in SMP with and without the query string and it won't play it.  I'm assuming THAT SMP is stripping the querystring parameter.  How to make it so that it leaves intact querystring and along sends to the servers of facebook as well?  What classes in the SMP or OSMF can I change?

    Here, any help would be appreciated thanks.

    It should work out of the box - just urlencode the url in the embed code.

    Please try to paste your url into the Configurator for Flash Media Playback page

    http://www.OSMF.org/Configurator/FMP/#

    or SMP configuration page. You can use the demo to

    http://OSMF.org/dev/1.5gm/Setup.html

    Does that help?

  • Passing the params in mysql stored procedure

    Makes no mistake, but when I hard code the values in the stored procedure, I get results, I leave as params - if not.
    Something must be a miss with how I said, but I can't understand that:

    Can anyone help? details below:

    : the stored procedure:

    Create procedure keyword_getBySource (in sourceRecordName varchar (20), in sourceRecordId varchar (50))
    Start
    Select
    tblkeyword.*
    Of
    tblkeyword,
    tblrecordlink
    where
    tblrecordlink.sourceRecordName = @sourceRecordName
    and
    tblrecordlink.sourceRecordId = @sourceRecordId
    and
    tblrecordlink.linkRecordName = 'keyword'
    and
    tblkeyword.keywordId = tblrecordlink.linkRecordId
    ;
    end

    : cfm:

    "< cfstoredproc procedure ="keyword_getBySource"datasource =" "username =" "password =" ">
    < cfprocparam type = 'in' cfsqltype = "CF_SQL_VARCHAR" dbvarname = "sourceRecordName" value = "Log" / >
    < cfprocparam type = 'in' cfsqltype = "CF_SQL_VARCHAR" dbvarname = "sourceRecordId" value = "0d8a6d3e-cf1e - 19(d) 5-2b9fc8ee1de01ad0" / >
    < name cfprocresult = resultset "getBySource" = "1" / >
    < / cfstoredproc >

    @... seems mysql does not use these to designate the params in a stored procedure

    Take them out - it works.

  • How to call another page and pass the page parameter to another page?

    Hi friends,

    I've finished a page based on the payment date, he turns the payroll, summarized in the table region. Now, I have to address in detail (submit) button, when click on the details button I want to open the new page, this page based on a few VO. This vo I spend 2 parameters, we're Person_id, and the second is pay date until we are on the front page.
    How to achieve this where I can write code, I am new to the OPS. could you please explain in detail and process?
    Thank you and best regards.
    Jocelyne.

    RAMU

    The value of your hashmap returns null. Let intrepret your code below

    String newValue = params.get("pid").toString();
                               null.toString(); will always throw null pointer exception
    

    Robichaud, I suggest you to always put some SOPS for debugging purposes. It is useful to locate the problem.

    Kind regards
    GYAN

  • Unable to connect to oracle DB using VBA and you are prompted with the error:-the client components and Oracle network have not been found. These components are supplied by Oracle Corporation and are part of the Oracle Version 7.3.3 or installation of the

    Hello

    It would be helpful to me if someone can give me instructions on setting the version of driver or oracle client required to connect to the the Oracle DB using excel VBA

    My config: -.

    Windows - 8-64 bit

    Excel 2013-32 bit

    The components of the client / I should install, and how to solve the question below...

    I tried the VBA code... but you are prompted with the error message above

    Void Oracle()

    Con Dim As ADODB. Connection

    Dim rs As ADODB. Recordset

    Dim query As String

    The con value = New ADODB. Connection

    Set rs = New ADODB. Recordset

    strCon = "Driver = {Microsoft ODBC for Oracle}"; "." & _

    "CONNECTSTRING = (DESCRIPTION ="& _.

    "(ADDRESS =(PROTOCOL=TCP)"& _

    "(HOST = HostNumber)(PORT=PortNumber))" & _

    "(CONNECT_DATA = (SID = SIDNumber))); UID = username; pwd = password; »

    con. Open (strcon)

    If err. <>Number 0 then

    MsgBox ("Oracle error:" & vbCrLf & err.) Description)

    On the other

    MsgBox ("Oracle DB Connection successful.")

    End If

    End Sub

    I'll replace it with the values of host origin...

    Thanks for the suggestion you till u gave...

    complete solution is in the link below...

    https://itkbs.WordPress.com/2014/07/28/how-to-install-ODBC-driver-for-Oracle-in-Windows-7/

  • Must pass the new parameter to page popup LOV

    Hi all

    I try to pass additional parameters of base page-to-page Popup LOV. In my basic page, I also have 5 columns and 3 rows.

    My requirement is based on the refrence to the selected line in the popup LOV page, I have to do a validation.

    I tried the logic of value form, but it did not work.

    I tried with getCurrentRow(). But he was always returns the reference of the top row.

    Help, please... It is urgent...

    If you want to get the value in the window of LOV, you must join a controller with the LOV window.

    In this controller, to help

    Dictionary passiveCriteriaItems = pageContext.getLovCriteriaItems)

    You can get the value mapped from basic page.

    Sushant-

  • How to pass the dynamic parameter to a function of database in OBIEE

    Hello

    I have a requirement like this. I need to create a report in OBIEE which stood in the discoverer. Now in the Scout report there is a calculated item in the worksheet based on the pkg.functions database. The user setting which gives the runtime parameters are then passed to the discoverer calculated elements dynamically. But I am not able to do this in OBIEE answers.

    Can someone tell me step by step how I can able to transmit the values of user setting selected in the level of response OBIEE.

    The example:

    GET_COMM_VALUE_PTD ('cost AFE & commitment'. ID of the AFE,: ' name at that time (AFE) ', 'cost of the AFE & commitment '. Salt of data, 'cost of the AFE & commitment '. The org ID)

    GET_COMM_VALUE_PTD - database function
    ('Cost AFE & commitment'. ID of the AFE,: ' name at that time (AFE) ', 'cost of the AFE & commitment '. Salt of data, 'cost of the AFE & commitment '. org Id - settings...: "period Name (AFE)" is the dynamic setting of the execution by the user.


    Help, please.

    Thank you

    Titas

    Hello

    Please see this link.

    http://satyaobieesolutions.blogspot.in/2012/08/database-evaluate-function-database.html

    This can be help you.

    Thank you
    Satya

  • pass the Boolean parameter?

    I need to pass a Boolean (true/false) for a full load, so I can shrink down tons of codes.

    But it's not working.

    How should the code look like?

    function myLoad() {}

    load codes

    var pass: Boolean = new Boolean (true);

    myLoader.contentLoaderInfo.addEventListener (Event.COMPLETE, function(e:Event) {loadComplete (e, col)});

    }

    function loadComplete(e:Event,_pass:Boolean):void {}

    If (pass = true) {}

    trace ("doing something");

    } ElseIf (pass = false) {}

    trace ("do something else");

    }

    }

    I don't know about the passage of the arguments by the listeners, but as far as contingency go, '=' is not what you want to use... "is" is for comparison.  And if you test the Boolean values you do not need to write the comparison...

    {if (Pass)}

    } else {}

    }

    And as I said, I know not for the passage of the arguments through designations of listener function, so if you've had success before, then very well.  I was led to believe that it's more complicated a case to solve.  Without knowing how, while it might involve more lines of code, I would use the conditional test to assign the listener rather than deciding which code to use the function loadComplete.  So I would like to use one of the two headphones and one of two complete functions through the...

  • What is the use_sigio parameter in oracle 11g R2

    Hi all

    Can someone let me know what is the use_sigio setting and how it will effect of database and operating system.

    Thank you

    A quick search on Google you would have found the answer: Ixora answers - e/s asynchronous and parallel query inter-node on AIX

  • Command button action is bean method. How to pass the ID parameter or reference?

    JDEV11gR1PS1/ADF

    The action of the button order is bean method, as follows:
     <af:commandMenuItem id="gbl_cmi_1" action="#{tbBean.action1}"/> 
    Bean code is something like
    public String action1() throws IOException {
    ...
    if (id.equals.("gbl_cmi_1"))...
    }
    Therefore, I would like to be able to know what the CommandButton ID, to be used in the assessment, etc..

    The reason is that several commandButtons are actually built dynamically as well and the action can be a redirect to URL. Therefore, I use the id to find what URL to redirect to.

    Ideas?


    Thank you.

    To do this, you have to use set listener(af:setPropertyListener) property to set an attribute in your bean or you use an action instead of the action listener (here you can get the source of the event).

    Timo

  • Is there a way to remove the very old SR Oracle, we have created 4-5 years ago?

    We changed several DBA, and have a whole bunch of old SR in our account.

    I want to remove most of these old SRs unrelevent.

    I couldn't find a button to do it.

    Can someone tell me if it is still possible to do?

    Thank you

    Uncheck the "Include" button closed

Maybe you are looking for