PL/SQL:- Invalid Parameter binding

While calling a pl/sql function returning table type is shows error:
Invalid parameter binding
Parameter name: ""

The problem is coming from .NET and most probably for NULL values.
SQL> set serverout on
SQL> create TYPE TEMP_TABLE AS OBJECT (
  2  COLUMN1 VARCHAR2(128),
  3  COLUMN2 VARCHAR2(32),
  4  COLUMN3 VARCHAR2(128));
  5  /
Type created.
SQL> create TYPE TEMP_TABLE_REC AS TABLE OF TEMP_TABLE;
  2  /
Type created.
SQL> create function SP_TEMP RETURN TEMP_TABLE_REC AS
  2 
  3  v_process_inputs TEMP_TABLE_REC :=TEMP_TABLE_REC();
  4 
  5  CURSOR CUR_EQUIP IS
  6  SELECT 'b' FROM dual
  7  UNION
  8  SELECT 'f' FROM dual;
  9 
10  REC_EQUIP CUR_EQUIP%ROWTYPE;
11 
12  BEGIN
13 
14  OPEN CUR_EQUIP;
15  LOOP
16  FETCH CUR_EQUIP INTO REC_EQUIP;
17  EXIT WHEN CUR_EQUIP%NOTFOUND;
18  v_process_inputs.EXTEND;
19 
20  v_process_inputs(1):=TEMP_TABLE('a','b','c');
21 
22  END LOOP;
23  CLOSE CUR_EQUIP;
24 
25  RETURN v_process_inputs;
26  END SP_TEMP;
27  /
Function created.
SQL> declare
  2     result temp_table_rec;
  3  begin
  4    -- Call the function
  5    result := sp_temp;
  6    FOR i in 1..RESULT.COUNT LOOP
  7     dbms_output.put_line(RESULT(i).COLUMN1||'--'||RESULT(i).COLUMN2||'--'||RESULT(i).COLUMN3);
  8    END LOOP;
  9  end;
10  /
a--b--c
PL/SQL procedure successfully completed.Note the last null values ----.

Similar Messages

  • [Oracle JDBC Driver]Invalid parameter binding(s).

    Hi there
    I am using the OracleCachedRowSet, and it works fine until I tries to update a resultset with a null value. When I call rs.acceptChanges(connection); it results in the following exception.
    Please help if anyone has found a workaround to this problem.
    java.sql.SQLException: [BEA][Oracle JDBC Driver]Invalid parameter binding(s).
    at weblogic.jdbc.base.BaseExceptions.createException(Unknown Source)
    at weblogic.jdbc.base.BaseExceptions.getException(Unknown Source)
    at weblogic.jdbc.base.BaseParameters.getParameter(Unknown Source)
    at weblogic.jdbc.base.BasePreparedStatement.setObjectInternal(Unknown Source)
    at weblogic.jdbc.base.BasePreparedStatement.setObject(Unknown Source)
    at weblogic.jdbc.wrapper.PreparedStatement.setObject(PreparedStatement.java:268)
    at oracle.jdbc.rowset.OracleCachedRowSetWriter.updateRow(OracleCachedRowSetWriter.java:429)
    at oracle.jdbc.rowset.OracleCachedRowSetWriter.writeData(OracleCachedRowSetWriter.java:534)
    at oracle.jdbc.rowset.OracleCachedRowSet.acceptChanges(OracleCachedRowSet.java:2926)
    at eurostat.Items.updateRS(Items.java:192)
    at eurostat.DBConnectionBean.updateRS(DBConnectionBean.java:94)
    at jsp_servlet.__mainpage._jspService(MainPage.jsp:248)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
    at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1006)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
    at com.bea.wlw.netui.pageflow.PageFlowJspFilter.doFilter(PageFlowJspFilter.java:246)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6724)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3764)
    at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2644)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)

    Hi Avi
    Thanks for the suggestion, but I don't thint that is the problem. In other forums I have found people describing the same problem(both with Oracle and Sun's implementation of CachedRowSet). See this link for an example http://bugs.mysql.com/bug.php?id=9831. So I figured that those other people needed to have a solution to the problem, but I can't find it.
    /Thomas

  • Help with Invalid Parameter Binding issue

    let me prefix this with the fact that I'm about as ignorant as can be when it comes to oracle so speak slowly and hopefully I'll catch the low hanging fruit.
    I've inherited a project that someone else wrote and I'm trying to make the code base work, but I am getting 2 error messages and don't really know where to start to fix it.
    My project is using ActiveReports (yea I hate it too) to call a function into a 10g database. It is returning an error saying Invalid Identifier. When I try to run the function in visual studio I get an invalid parameter binding error message and it says parameter name "" (empty quotes, so who knows).
    here's what I have:
    the type definition:
    TYPE type_A AS OBJECT (date_a VARCHAR2(25), start_date VARCHAR2(25), end_date VARCHAR2(25), items_total INT, items_with_x INT, items_without_x INT, items_with_x_percent DECIMAL(7,6), items_without_x_percent DECIMAL(7,6))
    the type table:
    TYPE type_A_table AS TABLE OF type_A
    the function that is erroring:
    <em>FUNCTION func_A (start_date_str IN VARCHAR2, end_date_str IN VARCHAR2) RETURN type_A_table PIPELINED
    IS
    PRAGMA AUTONOMOUS_TRANSACTION;
        start_date_filter TIMESTAMP := TO_DATE(start_date_str,'MM/dd/yyyy HH:MI:ss AM');
        end_date_filter TIMESTAMP := TO_DATE(end_date_str,'MM/dd/yyyy HH:MI:ss AM');
        items_total INT;
        items_with_x INT;
        items_without_x INT;
        items_with_x_percent DECIMAL(7,6);
        items_without_x_percent DECIMAL(7,6);
        temp type_A;
    BEGIN
        SELECT COUNT(*) INTO items_total FROM atable WHERE (create_date BETWEEN start_date_filter AND end_date_filter);
        SELECT COUNT(*) INTO items_with_x FROM atable WHERE conditionx=1 AND (create_date BETWEEN start_date_filter AND end_date_filter);
        SELECT COUNT(*) INTO items_without_x FROM atable WHERE conditionx=0 AND (create_date BETWEEN start_date_filter AND end_date_filter);
        items_with_x_percent := 0.00;
        items_without_x_percent := 0.00;
        IF items_total > 0 THEN
            items_with_x_percent := (items_with_x*1.00)/(items_total*1.00);
            items_without_x_percent := (items_without_x*1.00)/(items_total*1.00);
        END IF;
        temp := type_A(
            TO_CHAR(CURRENT_DATE,'MM/dd/yyyy HH:MI:ss AM'),
            start_date_str,
            end_date_str,
            items_total,
            items_with_x,
            items_without_x,
            items_with_x_percent,
            items_without_x_percent
        PIPE ROW(temp);
        RETURN;
    END;</em>
    I've changed some of the details here from the original so there may be some syntax errors but hopefully you get the gist of the situation.
    any help would be appreciated.
    Thanks

    activereports is a report generator for .net
    as for why it's written the way it is, I have no idea. Like I said, I didn't write it, I'm only trying to get it to work. There is far too much of it (and I'm far under-skilled) to go back and re-write everything the way it should be.
    this function is pretty simple, it takes a start & end date as a string as parameters to the function. it converts those to timestamps and query's an existing table with data for the number of times condition X is true or false with in that date range. This is what the report being generated reports on.
    This one was short and simple which is why I posted it. Others are far more complex and do loop, but for the sake of simplicity I posted this one. I get the same error with all the rest and I figure if I can get one working, the rest probably suffer from the same issue so fixing the rest should be fairly straight forward.
    as for priv's the user is granted all priv's (that are available when you create a new user in 10g XE's web admin interface), and it won't let me grant/remove priv's from the visual studio addin for myself.

  • Invalid Parameter Bindings

    Hi there!
    I'm writing a Stock Take (Inventory Control) system. I need to create some temporary rows from one table into another in order to do some calculations.
    I'm trying to add rows to a STOCK_TmpQOH table. I get the values from a STOCK_TmpQOH table and then just add a few columns' values. In VB it would have been easy... Insert into using a Select... but now... in JSC one need to read the NEXT ID each time... so I cant just use the normal autonumber... anyways...
    ...basically I have rows in Table X.... I need to copy it to Table Y and add a few columns...
    HERE's the ERROR:
    Cannot add new Stock Takejava.sql.SQLException: [sunm][SQLServer JDBC Driver]Invalid parameter binding(s).
    HEREs my CODE:
    ~~~~~~~~~~
    public String cmdNext_action() {
    //        // bind trip detail fields
    //        // GET DATA
    //        java.sql.Date date = (java.sql.Date) tripDataProvider.getValue("TRIP.DEPDATE");
    //        dateCal.setValue(date);
    //        // SAVE DATA
    //        java.util.Date uDate = (java.util.Date) dateCal.getValue();
    //        if ( uDate != null ) {
    //            java.sql.Date date = new java.sql.Date( uDate.getTime() );
    //            tripDataProvider.setValue("TRIP.DEPDATE", date);
            //Convert to the correct format IN STRING!
            Date myDate = calSDate.getSelectedDate();
            Format formatter;
            formatter = new SimpleDateFormat("dd/MM/yyyy");
            String sDate = formatter.format(myDate);
            String sReturn;
            if (stock_stakeDataProvider.canAppendRow()) {
                try {
                    //Set the NEXT step...
                    int iStep = getSessionBean1().getSTakeStep().intValue();
                    iStep++;
                    Integer x = Integer.valueOf(iStep);
                    getSessionBean1().setSTakeStep(x);
                    //ADD THE NEW STAKE
                    //=================
                    RowKey rowkey = stock_stakeDataProvider.appendRow();
                    stock_stakeDataProvider.setCursorRow(rowkey);
                    stock_stakeDataProvider.setValue("STakeID", rowkey, getApplicationBean1().getNextSTakeID());
                    stock_stakeDataProvider.setValue("LocID", rowkey, getSessionBean1().getLocID());
                    stock_stakeDataProvider.setValue("SDate", rowkey, sDate);
                    stock_stakeDataProvider.setValue("Status", rowkey, new Integer(1));
                    stock_stakeDataProvider.setValue("Step", rowkey, getSessionBean1().getSTakeStep());
                    //Set the NEXT STakeID in memory
                    //  must happen BEFORE update - else its TOO large
                    getSessionBean1().setSTakeID((Integer) getApplicationBean1().getNextSTakeID());
                    stock_stakeDataProvider.commitChanges();
                    //ADD TMP QOH for STAKE
                    //=====================
                    //Default value for new QOH = 0
                    Double dQOH = new Double(0.00);
                    //Double dQOHold;
                    if (stock_qohDataProvider.getRowCount() > 0) {
                        stock_qohDataProvider.cursorFirst();
                        do {
    //                        System.out.println(">> " + stock_qohDataProvider.getValue("StockID"));
                            //For each Stock in QOH for this Location
                            //  add a TMP QOH record
                            if (stock_tmpqohDataProvider.canAppendRow()) {
                                try {
                                    RowKey rowkey2 = stock_tmpqohDataProvider.appendRow();
                                    stock_tmpqohDataProvider.setCursorRow(rowkey2);
                                    stock_tmpqohDataProvider.setValue("TempID", rowkey2, getApplicationBean1().getNextTempID());
                                    stock_tmpqohDataProvider.setValue("STakeID", rowkey2, getSessionBean1().getSTakeID());
                                    stock_tmpqohDataProvider.setValue("StockID", rowkey2, stock_qohDataProvider.getValue("StockID"));
                                    //Double dQOHold = Double.valueOf(rs.getString("QOH"));
                                    stock_tmpqohDataProvider.setValue("QOH_Old", rowkey2, (Double) stock_qohDataProvider.getValue("QOH"));
                                    stock_tmpqohDataProvider.setValue("QOH", rowkey2, dQOH);
                                    stock_tmpqohDataProvider.setValue("SDate", rowkey2, sDate);
                                    stock_tmpqohDataProvider.commitChanges();
                                } catch (Exception ex) {
                                    log("Cannot add Temp Stock Take", ex);
                                    error("Cannot add Temp Stock Take" + ex.getMessage());
                                    sReturn = "stake1";
                        } while (stock_qohDataProvider.cursorNext());
                    info("New Stock Take added");
                    sReturn = "stake2";
                } catch (Exception ex) {
                    log("Cannot add new Stock Take", ex);
                    error("Cannot add new Stock Take" + ex.getMessage());
                    sReturn = "qoh";
            } else {
                log("Cannot add New Stock Take");
                error("Cannot add New Stock Take");
                sReturn = "qoh";
            return sReturn; //sReturn
        }Thanks SO much for the help!

    Hi,
    there is an Oracle style using ":varname" but this wont work with Server. When you created the ADF BC project, did you make sure that the project uses SQL92 as its flavor and not Oracle ?
    Frank

  • Report failed to parse SQL query:ORA-01745: invalid host/bind variable name

    Hi,
    We are currently upgrading from v2.2.0.00.32 to v4.0.0.00.46.
    I have copied the applications onto our test server along with the various database objects and data etc.
    When I am running a report in v4, it is failing with the following error: "failed to parse SQL query: ORA-01745: invalid host/bind variable name".
    When I copy the SQL that builds the report into TOAD (on out test server) it runs OK so really cant see why it would fail in APEX. It works fine when I run the query in our APEX v2 and in TOAD in our live server.
    The query is as follows:
    SELECT
    aea.ALTERATION_ID
    ,aea.ALTERATION_ID "ALTERATION_ID_DISPLAY"
    ,aea.assembly_name "Revised BOM"
    ,assembly.description "Revised BOM Description"
    ,assembly.INVENTORY_ITEM_STATUS_CODE "Revised BOM Status"
    ,aea.BEFORE_CHANGE_QTY
    ,flv.MEANING "Alteration Type"
    ,aea.component_name "Part No"
    ,component.description "Part No Description"
    ,component.INVENTORY_ITEM_STATUS_CODE "Part No Status"
    ,aea.AFTER_CHANGE_QTY
    ,TO_CHAR(aea.last_update_date,'DD-MM-YYYY HH24:MI:SS')"Last Update Date"
    ,aea.LAST_UPDATE_BY
    ,aea.COMMENTS
    ,aea.ORACLE_CHANGE_NOTICE
    ,AEA.SELECTION_CRITERIA
    FROM XXMEL_APEX_ECO_ALTERATIONS aea
    , fnd_lookup_values flv
    , (SELECT INVENTORY_ITEM_STATUS_CODE
    ,segment1
    ,description
    FROM mtl_system_items_b
    WHERE 1=1
    AND organization_id = 26) component
    , (SELECT INVENTORY_ITEM_STATUS_CODE
    ,segment1
    ,description
    FROM mtl_system_items_b
    WHERE 1=1
    AND organization_id = 26) assembly
    WHERE 1=1
    AND aea.COMPONENT_NAME = component.segment1 (+)
    AND aea.assembly_NAME = assembly.segment1 (+)
    AND flv.lookup_code = aea.acd_type
    AND aea.eco = :P13_ECO
    AND flv.lookup_type = 'ECG_ACTION'
    AND modify_flag = 'Y'
    ANy help would be great,
    Thanks
    Chris
    Edited by: Cashy on 22-Nov-2010 04:13
    Edited by: Cashy on 22-Nov-2010 04:14

    For some reason, the updatable fields (this is a updateable report) where not connecting to the database properly. Whn I changed them to a report columns and removed the database field reference, the report rendered

  • How to pass parameter [bind variable or substitution variable] to a view?

    How can I pass a parameter [bind variable or substitution variable] to a view in Oracle?
    Some will tell me that this is not necessary, that I can only pass the parameter when I query the view, but I found some case where this cause performance issue. In long view where I use subquery factoring [WITH], it's necessary to pass the parameter many time through different subqueries and not only to the resulting view.
    In other database (SQL Server, Access), we can pass parameters through query. I can't find how to do that in Oracle. Can some one tell me what is the approach suggest by Oracle on that subject?
    Thank you in advance,
    MB
    What I can do:
    CREATE VIEW "HR"."EMP_NAME" ("FIRST_NAME", "LAST_NAME")
    AS
    SELECT FIRST_NAME, LAST_NAME FROM EMPLOYEES;
    What I want to do:
    CREATE VIEW "HR"."EMP_NAME" ("FIRST_NAME", "LAST_NAME")(prmEMP_ID)
    AS
    SELECT FIRST_NAME, LAST_NAME FROM EMPLOYEES WHERE EMPLOYEE_ID IN (:prmEMP_ID);

    Blais wrote:
    How can I pass a parameter [bind variable or substitution variable] to a view in Oracle?
    Some will tell me that this is not necessary, that I can only pass the parameter when I query the view, but I found some case where this cause performance issue. In long view where I use subquery factoring [WITH], it's necessary to pass the parameter many time through different subqueries and not only to the resulting view.Yes, there can be performance issues. Views are a form of dynamic SQL and it is hard to predict how they will perform later.
    You can't pass parameters to a view. They are not functions. The mechanism to put the values in is what you mentioned, passing the parameter when you query the view.
    In other database (SQL Server, Access), we can pass parameters through query. I can't find how to do that in Oracle. Can some one tell me what is the approach suggest by Oracle on that subject? This functionality is not supported.
    What I can do:
    CREATE VIEW "HR"."EMP_NAME" ("FIRST_NAME", "LAST_NAME")
    AS
    SELECT FIRST_NAME, LAST_NAME FROM EMPLOYEES;
    What I want to do:
    CREATE VIEW "HR"."EMP_NAME" ("FIRST_NAME", "LAST_NAME")(prmEMP_ID)
    AS
    SELECT FIRST_NAME, LAST_NAME FROM EMPLOYEES WHERE EMPLOYEE_ID IN (:prmEMP_ID);Include the bind value when you use the view in a SELECT. The value will be applied to the view at run-time, somthing like
    CREATE  VIEW "HR"."EMP_NAME_VW" ("FIRST_NAME", "LAST_NAME","EMPLOYEE_ID")(prmEMP_ID)
    AS  SELECT FIRST_NAME, LAST_NAME FROM EMPLOYEES;
    select *
      from emp_name_vw
      WHERE EMPLOYEE_ID IN (:prmEMP_ID);To use EMPLOYEE_ID I added it to your list of columns in the view so it can be referenced in the WHERE clause. If you don't want to see that value don't select it from the view.

  • Utl_http does not give a very helpful error message: Invalid Parameter

    I'm writing PL/SQL to consume a web service on another server. In trying to execute this snippet of code, I receive this error:
    ORA-28783: Invalid parameter
    ORA-06512: at "SYS.UTL_HTTP", line 1023
    ORA-06512: at line 29
    Line 29 is the utl_http.begin_request statement shown below.
    I'm baffled as to what the error message might point to and I'm looking from any insight others may have. The message is so generic as to be useless and I can't find any examples of others receiving this particular error when executing begin_request.
    Please note that this is an SSL/HTTPS connection. If I remove the "S" and just use HTTP, I receive an appropriate message from the web server. (A tiny web page telling me I should be using the https version and not the http version.) I can also go to, for example, Google or CNN's web sites and pull back data but those are not SSL connections. It is the SSL part that isn't working.
    This isn't a SOAP error since I never get a chance to create my SOAP message and place it in the request.
    I've tried changing the POST to GET and the HTTP version to 1.0 just to see if the error message changes and it does not.
    My wallet file is in place on the database server, placed in an accessible folder by
    the DBAs. This code can see the wallet, I believe, because if I change the wallet
    path to something non-existent, I receive a different error. I imported the web site certificate for the site I'm connecting to and placed that in the wallet. I've been able to cause "certificate chain" errors with empty wallets, so I think the certificate is correct.
    I used SOAP-UI (www.soapui.org) and was quickly able to connect to the web server and begin having a "SOAP conversation", so I know the web services I'm connecting to are working. It is something in the database itself that is preventing this from executing - the wallet, a setting in the database, something like that. But what?
    =======================================================
    utl_http.set_response_error_check(enable=>true);
    utl_http.set_detailed_excp_support(enable => TRUE);
    utl_http.set_follow_redirect(5);
    utl_http.set_wallet('file:/...', '*******');
    --**** SET THE URL FOR THIS REQUEST *******
    http_req:= utl_http.begin_request(
    'https://....' --location of web services I want to use
    , 'POST'
    , utl_http.HTTP_VERSION_1_1
    =======================================================

    You seemrd to have ruled out most potential problems I could think of.
    The error message just states that there is something wrong with the parameters that you use. Only point I can currently think of is a problem with the returned value.
    How did you declare you http_req variable? Does it use the utl_http.req type?

  • VO Substitution : JBO-25006 : Invalid parameter value passed for source

    Hello All,
    I want to add 2 new fields (attribute columns) to an existing VO for which I am trying to use VO substitution. I have followed these steps.
    1.     Downloaded all the class files from server to local machine
    2.     Opened an OA project and extended the VO by changing sql query to add 2 attribute columns
    3.     Added 2 transient VO attributes to map them to the added fields in sql query
    4.     Create a BC4J substitution and imported jpx file using jpximporter
    While opening the page which consisted the original VO that I extended (creditRequestsVO), I am getting below error. Appreciate if anyone can throw any light on this.
    Exception Details.
    oracle.apps.fnd.framework.OAException: oracle.jbo.InvalidParamException: JBO-25006: Invalid parameter value creditRequestsVO for source passed to method ViewLinkImpl.setSource. Explanation: view def mismatch
    at oracle.apps.fnd.framework.webui.OAPageErrorHandler.prepareException(OAPageErrorHandler.java:1247)
    at oracle.apps.fnd.framework.webui.OAPageErrorHandler.processErrors(OAPageErrorHandler.java:1435)
    at oracle.apps.fnd.framework.webui.OAPageBean.processRequest(OAPageBean.java:2542)
    at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1892)
    at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:536)
    at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:424)
    at OA.jspService(_OA.java:212)
    at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:59)
    at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:379)
    at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:594)
    at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:518)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)
    at oracle.apps.jtf.base.session.ReleaseResFilter.doFilter(ReleaseResFilter.java:26)
    at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15)
    at oracle.apps.fnd.security.AppsServletFilter.doFilter(AppsServletFilter.java:318)
    at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:621)
    at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
    at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871)
    at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453)
    at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:313)
    at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:199)
    at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
    at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
    at java.lang.Thread.run(Thread.java:619)
    ## Detail 0 ##
    oracle.apps.fnd.framework.OAException: oracle.jbo.InvalidParamException: JBO-25006: Invalid parameter value creditRequestsVO for source passed to method ViewLinkImpl.setSource. Explanation: view def mismatch
    at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:896)
    at oracle.apps.fnd.framework.webui.OAPageErrorHandler.prepareException(OAPageErrorHandler.java:1169)
    at oracle.apps.fnd.framework.webui.OAPageErrorHandler.processErrors(OAPageErrorHandler.java:1435)
    at oracle.apps.fnd.framework.webui.OAPageBean.processRequest(OAPageBean.java:2542)
    at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1892)
    at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:536)
    at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:424)
    at OA.jspService(_OA.java:212)
    at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:59)
    at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:379)
    at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:594)
    at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:518)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)
    at oracle.apps.jtf.base.session.ReleaseResFilter.doFilter(ReleaseResFilter.java:26)
    at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15)
    at oracle.apps.fnd.security.AppsServletFilter.doFilter(AppsServletFilter.java:318)
    at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:621)
    at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
    at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871)
    at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453)
    at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:313)
    at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:199)
    at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
    at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
    at java.lang.Thread.run(Thread.java:619)
    oracle.apps.fnd.framework.OAException: oracle.jbo.InvalidParamException: JBO-25006: Invalid parameter value creditRequestsVO for source passed to method ViewLinkImpl.setSource. Explanation: view def mismatch
    at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:896)
    at oracle.apps.fnd.framework.webui.OAPageErrorHandler.prepareException(OAPageErrorHandler.java:1169)
    at oracle.apps.fnd.framework.webui.OAPageErrorHandler.processErrors(OAPageErrorHandler.java:1435)
    at oracle.apps.fnd.framework.webui.OAPageBean.processRequest(OAPageBean.java:2542)
    at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1892)
    at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:536)
    at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:424)
    at OA.jspService(_OA.java:212)
    at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:59)
    at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:379)
    at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:594)
    at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:518)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)
    at oracle.apps.jtf.base.session.ReleaseResFilter.doFilter(ReleaseResFilter.java:26)
    at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15)
    at oracle.apps.fnd.security.AppsServletFilter.doFilter(AppsServletFilter.java:318)
    at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:621)
    at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
    at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871)
    at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453)
    at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:313)
    at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:199)
    at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
    at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
    at java.lang.Thread.run(Thread.java:619)
    Edited by: Bhavesh J Shah on Feb 22, 2010 1:58 AM

    Hi Rama,
    Parameter being passted to LeadHeaderDetailsVO is not right. Check the parameter values that are being passed,wether there are right or not
    Thanks
    Sandeep

  • [OCI] Parameter Binding, repeated Statements with differing values

    Hello
    I am working on an application written in C which sends about 50 different SQL Statements to an Oracle Database using OCI. These Statements are executed repeatedly with different values.
    In order to improve performance I would like to know what possibilities I have.
    Whats the benefit of the following "techniques" ?
    - Parameter Binding
    - Statement Caching
    What else could I look into?
    with friendly greetings.

    It doesn't take zero-time of course, and it does level-off after a while, but array-bind/define or pre-fetching can make a significant impact on performance:
    truncated table: 0.907 / 0.918
    insert_point_stru_1stmt_1commit: x100,000: 0.141 / 0.144Above I truncate the table to get repeatable numbers; deleting all rows from a previous run leaves a large free list (I guess...), and performance of this little contrived benchmark degrades non-negligeably otherwise. This is a single array-bind insert statement.
    fetched 100,000 rows. (0 errors)
    select_first_n_points: x100,000@0: 7.594 / 7.608
    fetched 100,000 rows. (0 errors)
    select_first_n_points: x100,000@1: 4.000 / 4.004
    fetched 100,000 rows. (0 errors)
    select_first_n_points: x100,000@10: 0.906 / 0.910
    fetched 100,000 rows. (0 errors)
    select_first_n_points: x100,000@100: 0.297 / 0.288
    fetched 100,000 rows. (0 errors)
    select_first_n_points: x100,000@1,000: 0.204 / 0.204
    fetched 100,000 rows. (0 errors)
    select_first_n_points: x100,000@10,000: 0.265 / 0.268
    fetched 100,000 rows. (0 errors)Above I do a regular "scalar" define, but turn pre-fetching on (default is one row, but I tested with pre-fetching completly off too). @N means pre-fetch N rows.
    select_points_array: x100,000@10: 0.969 / 0.967
    fetched 100,000 rows. (0 errors)
    select_points_array: x100,000@100: 0.250 / 0.251
    fetched 100,000 rows. (0 errors)
    select_points_array: x100,000@1,000: 0.156 / 0.167
    fetched 100,000 rows. (0 errors)
    select_points_array: x100,000@10,000: 0.156 / 0.157
    fetched 100,000 rows. (0 errors)Above I use array-defines instead of pre-fetch.
    select_points_struct: x100,000@10: 0.938 / 0.935
    fetched 100,000 rows. (0 errors)
    select_points_struct: x100,000@100: 0.219 / 0.217
    fetched 100,000 rows. (0 errors)
    select_points_struct: x100,000@1,000: 0.140 / 0.140
    fetched 100,000 rows. (0 errors)
    select_points_struct: x100,000@1,000: 0.140 / 0.140Above I use array-of-struct defines instead of pre-fetch or array-bind. Performance is just a little better, probably because of better memory "locality" with structures.
    The table is simple:
    create table point_tab(
    id number,
    x binary_float,
    y binary_float,
    z binary_float
    So each row is 22 + 4 + 4 + 4 = 34 bytes. There are no constraints or indexes of course to make it as fast as possible (this is 11g on XP win32, server and client on the same machine, single user, IPC protocol, so it doesn't get much better than this, and is not realistic of true client-server multi-user conditions).
    There aren't enough data point to confirm or not your prediction that the advantage of array-bind level-off at the packet size threshold, but what you write makes sense to me.
    So I went back and tried more sizes. 8K divided by 34 bytes is 240 rows, so I selected 250 rows as the "middle", and bracketed it with 2 upper and lower values which "double" up or down the number of rows:
    truncated table: 0.953 / 0.960
    insert_point_stru_1stmt_1commit: x100,000: 0.219 / 0.220
    fetched 100,000 rows. (0 errors)
    select_first_n_points: x100,000@67: 0.329 / 0.320
    fetched 100,000 rows. (0 errors)
    select_first_n_points: x100,000@125: 0.297 / 0.296
    fetched 100,000 rows. (0 errors)
    select_first_n_points: x100,000@250: 0.250 / 0.237
    fetched 100,000 rows. (0 errors)
    select_first_n_points: x100,000@500: 0.218 / 0.210
    fetched 100,000 rows. (0 errors)
    select_first_n_points: x100,000@1,000: 0.187 / 0.195
    fetched 99,964 rows. (0 errors)
    select_points_array: x99,964@67: 0.297 / 0.294
    fetched 100,000 rows. (0 errors)
    select_points_array: x100,000@125: 0.235 / 0.236
    fetched 100,000 rows. (0 errors)
    select_points_array: x100,000@250: 0.203 / 0.206
    fetched 100,000 rows. (0 errors)
    select_points_array: x100,000@500: 0.188 / 0.179
    fetched 100,000 rows. (0 errors)
    select_points_array: x100,000@1,000: 0.156 / 0.165
    fetched 99,964 rows. (0 errors)
    select_points_struct: x99,964@67: 0.250 / 0.254
    fetched 100,000 rows. (0 errors)
    select_points_struct: x100,000@125: 0.203 / 0.207
    fetched 100,000 rows. (0 errors)
    select_points_struct: x100,000@250: 0.172 / 0.168
    fetched 100,000 rows. (0 errors)
    select_points_struct: x100,000@500: 0.157 / 0.152
    fetched 100,000 rows. (0 errors)
    select_points_struct: x100,000@1,000: 0.125 / 0.129As you can see, it still gets faster at 1,000, which is about 32K. I don't know the packet size of course, but 32K sounds big for a packet.
    truncated table: 2.937 / 2.945
    insert_point_stru_1stmt_1commit: x100,000: 0.328 / 0.324
    fetched 100,000 rows. (0 errors)
    select_first_n_points: x100,000@1,000: 0.250 / 0.250
    fetched 100,000 rows. (0 errors)
    select_first_n_points: x100,000@2,000: 0.266 / 0.262
    fetched 100,000 rows. (0 errors)
    select_first_n_points: x100,000@3,000: 0.250 / 0.254
    fetched 100,000 rows. (0 errors)
    select_first_n_points: x100,000@4,000: 0.266 / 0.273
    fetched 100,000 rows. (0 errors)
    select_first_n_points: x100,000@5,000: 0.281 / 0.278
    fetched 100,000 rows. (0 errors)
    select_points_array: x100,000@1,000: 0.172 / 0.165
    fetched 100,000 rows. (0 errors)
    select_points_array: x100,000@2,000: 0.157 / 0.159
    fetched 99,000 rows. (0 errors)
    select_points_array: x99,000@3,000: 0.156 / 0.157
    fetched 100,000 rows. (0 errors)
    select_points_array: x100,000@4,000: 0.141 / 0.155
    fetched 100,000 rows. (0 errors)
    select_points_array: x100,000@5,000: 0.157 / 0.164
    fetched 100,000 rows. (0 errors)
    select_points_struct: x100,000@1,000: 0.125 / 0.129
    fetched 100,000 rows. (0 errors)
    select_points_struct: x100,000@2,000: 0.125 / 0.123
    fetched 99,000 rows. (0 errors)
    select_points_struct: x99,000@3,000: 0.125 / 0.120
    fetched 100,000 rows. (0 errors)
    select_points_struct: x100,000@4,000: 0.125 / 0.121
    fetched 100,000 rows. (0 errors)
    select_points_struct: x100,000@5,000: 0.125 / 0.122Above 32K, there doesn't seem to be much benefit (at least in this config. My colleague on linux64 is consistently faster in benchmarks, even connecting to the same servers, when we have the same exact machine). So 32K may indeed be a threshold of sort.
    In all, I hope I've shown there is value in array-binds (or defines), or even simple pre-fetching (but the latter helps in selects only). I don't think one can very often take advantage of it, and I have no clue how it compares to direct-path calls, but value there is still IMHO. --DD                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Named parameter binding

    ODP.Net document said :
    The position of an OracleParameter added into the
    OracleParameterCollection is the binding position in the SQL statement.Position is 0-based and is used only for positional binding.
    If named binding is
    used, the position of an OracleParameter in the
    OracleParameterCollection is ignored.
    Then,how can I use named parameter binding ?

    Look up the BindByName property of the Oracle Command. It defaults to false (bind params by position). Set it to true for bind by name.

  • Name Parameter Binding

    Is there any sample code showing how to do named parameter binding using ODBC? I have stored procedures with 100+ parameters and default values assigned to most of the parameters and I want to be able to only bind to the variables that I need to pass. I have it working with MS SQL but with oracle it in not binding to the correct parameter
    Thanks

    I am tring to do Named "Parameter Binding", I am using using straight ODBC from vc++ with the latest driver 9205. I have also tried the DataDirect drivers and using ADO from VB6.
    The same code has worked fine with SQL Server but with oracle it always ingores the SQL_DESC_NAME setting in the SQLSetDescField statement and sets the first two parameters, not the 2nd and 3rd param.
    Thanks,
    Bill
    -- The Stored Procedure
    CREATE OR REPLACE PROCEDURE testme (param1 varchar2 :='Default1' , param2 varchar2 := 'Default2', param3 varchar2 := 'Default3') AS
    BEGIN
    INSERT INTO param_test(param_1, param_2, param_3, col_id) VALUES (param1, param2, param3, test_seq.nextval);
    END;
    C++ Source code
    // Prepare the procedure invocation statement.
    retcode = SQLPrepare(hstmt, (SQLCHAR*)"{call testme(?, ?)}", SQL_NTS);
    if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
    // Populate record 1 of ipd.
    strcpy((char*)szQuote, "test2");
    SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_VARCHAR, 30, 0, szQuote, 0, &cbValue);
    // Get ipd handle and set the SQL_DESC_NAMED and SQL_DESC_UNNAMED fields
    // for record #1.
    //retcode = SQLAllocHandle(SQL_HANDLE_DESC, hdbc, &hIpd);
    retcode = SQLGetStmtAttr(hstmt, SQL_ATTR_IMP_PARAM_DESC, &hIpd1, 0, 0);
    retcode = SQLSetDescField(hIpd1, 1, SQL_DESC_NAME, "param2", SQL_NTS);
    retcode = SQLSetDescField(hIpd1, 1, SQL_DESC_UNNAMED, SQL_NAMED, 0);
    // Populate record 1 of ipd.
    strcpy((char*)szQuote2, "test3");
    SQLBindParameter(hstmt, 2, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_VARCHAR, 30, 0, szQuote2, 0, &cbValue);
    // Get ipd handle and set the SQL_DESC_NAMED and SQL_DESC_UNNAMED fields
    // for record #2.
    //retcode = SQLAllocHandle(SQL_HANDLE_DESC, hdbc, &hIpd);
    retcode = SQLGetStmtAttr(hstmt, SQL_ATTR_IMP_PARAM_DESC, &hIpd2, 0, 0);
    retcode = SQLSetDescField(hIpd2, 2, SQL_DESC_NAME, "param3", SQL_NTS);
    retcode = SQLSetDescField(hIpd2, 2, SQL_DESC_UNNAMED, SQL_NAMED, 0);
    // Assuming that szQuote has been appropriately initialized,
    // execute.
    retcode = SQLExecute(hstmt);
    if (!SQL_SUCCEEDED(retcode))
    ExplainErrors(hstmt);
    }

  • Dynamic SQL and Bulk Bind... Interesting Problem !!!

    Hi Forum !!
    I've got a very interesting problem involving Dynamic SQL and Bulk Bind. I really Hope you guys have some suggestions for me...
    Table A contains a column named TX_FORMULA. There are many strings holding expressions like '.3 * 2 + 1.5' or '(3.4 + 2) / .3', all well formed numeric formulas. I want to calculate each formula, finding the number obtained as a result of each calculation.
    I wrote something like this:
    DECLARE
    TYPE T_FormulasNum IS TABLE OF A.TX_FORMULA%TYPE
    INDEX BY BINARY_INTEGER;
    TYPE T_MontoIndicador IS TABLE OF A.MT_NUMBER%TYPE
    INDEX BY BINARY_INTEGER;
    V_FormulasNum T_FormulasNum;
    V_MontoIndicador T_MontoIndicador;
    BEGIN
    SELECT DISTINCT CD_INDICADOR,
    TX_FORMULA_NUMERICA
    BULK COLLECT INTO V_CodIndicador, V_FormulasNum
    FROM A;
    FORALL i IN V_FormulasNum.FIRST..V_FormulasNum.LAST
    EXECUTE IMMEDIATE
    'BEGIN
    :1 := TO_NUMBER(:2);
    END;'
    USING V_FormulasNum(i) RETURNING INTO V_MontoIndicador;
    END;
    But I'm getting the following messages:
    ORA-06550: line 22, column 43:
    PLS-00597: expression 'V_MONTOINDICADOR' in the INTO list is of wrong type
    ORA-06550: line 18, column 5:
    PL/SQL: Statement ignored
    ORA-06550: line 18, column 5:
    PLS-00435: DML statement without BULK In-BIND cannot be used inside FORALL
    Any Idea to solve this problem ?
    Thanks in Advance !!

    Hallo,
    many many errors...
    1. You can use FORALL only in DML operators, in your case you must use simple FOR LOOP.
    2. You can use bind variables only in DML- Statements. In other statements you have to use literals (hard parsing).
    3. RETURNING INTO - Clause in appropriate , use instead of OUT variable.
    4. Remark: FOR I IN FIRST..LAST is not fully correct: if you haven't results, you get EXCEPTION NO_DATA_FOUND. Use Instead of 1..tab.count
    This code works.
    DECLARE
    TYPE T_FormulasNum IS TABLE OF VARCHAR2(255)
    INDEX BY BINARY_INTEGER;
    TYPE T_MontoIndicador IS TABLE OF NUMBER
    INDEX BY BINARY_INTEGER;
    V_FormulasNum T_FormulasNum;
    V_MontoIndicador T_MontoIndicador;
    BEGIN
    SELECT DISTINCT CD_INDICATOR,
    TX_FORMULA_NUMERICA
    BULK COLLECT INTO V_MontoIndicador, V_FormulasNum
    FROM A;
    FOR i IN 1..V_FormulasNum.count
    LOOP
    EXECUTE IMMEDIATE
    'BEGIN
    :v_motto := TO_NUMBER('||v_formulasnum(i)||');
    END;'
    USING OUT V_MontoIndicador(i);
    dbms_output.put_line(v_montoindicador(i));
    END LOOP;
    END;You have to read more about bulk- binding and dynamic sql.
    HTH
    Regards
    Dmytro
    Test table
    a
    (cd_indicator number,
    tx_formula_numerica VARCHAR2(255))
    CD_INDICATOR TX_FORMULA_NUMERICA
    2 (5+5)*2
    1 2*3*4
    Message was edited by:
    Dmytro Dekhtyaryuk

  • SQL query with Bind variable with slower execution plan

    I have a 'normal' sql select-insert statement (not using bind variable) and it yields the following execution plan:-
    Execution Plan
    0 INSERT STATEMENT Optimizer=CHOOSE (Cost=7 Card=1 Bytes=148)
    1 0 HASH JOIN (Cost=7 Card=1 Bytes=148)
    2 1 TABLE ACCESS (BY INDEX ROWID) OF 'TABLEA' (Cost=4 Card=1 Bytes=100)
    3 2 INDEX (RANGE SCAN) OF 'TABLEA_IDX_2' (NON-UNIQUE) (Cost=3 Card=1)
    4 1 INDEX (FAST FULL SCAN) OF 'TABLEB_IDX_003' (NON-UNIQUE)
    (Cost=2 Card=135 Bytes=6480)
    Statistics
    0 recursive calls
    18 db block gets
    15558 consistent gets
    47 physical reads
    9896 redo size
    423 bytes sent via SQL*Net to client
    1095 bytes received via SQL*Net from client
    3 SQL*Net roundtrips to/from client
    1 sorts (memory)
    0 sorts (disk)
    55 rows processed
    I have the same query but instead running using bind variable (I test it with both oracle form and SQL*plus), it takes considerably longer with a different execution plan:-
    Execution Plan
    0 INSERT STATEMENT Optimizer=CHOOSE (Cost=407 Card=1 Bytes=148)
    1 0 TABLE ACCESS (BY INDEX ROWID) OF 'TABLEA' (Cost=3 Card=1 Bytes=100)
    2 1 NESTED LOOPS (Cost=407 Card=1 Bytes=148)
    3 2 INDEX (FAST FULL SCAN) OF TABLEB_IDX_003' (NON-UNIQUE) (Cost=2 Card=135 Bytes=6480)
    4 2 INDEX (RANGE SCAN) OF 'TABLEA_IDX_2' (NON-UNIQUE) (Cost=2 Card=1)
    Statistics
    0 recursive calls
    12 db block gets
    3003199 consistent gets
    54 physical reads
    9448 redo size
    423 bytes sent via SQL*Net to client
    1258 bytes received via SQL*Net from client
    3 SQL*Net roundtrips to/from client
    1 sorts (memory)
    0 sorts (disk)
    55 rows processed
    TABLEA has around 3million record while TABLEB has 300 records. Is there anyway I can improve the speed of the sql query with bind variable? I have DBA Access to the database
    Regards
    Ivan

    Many thanks for your reply.
    I have run the statistic already for the both tableA and tableB as well all the indexes associated with both table (using dbms_stats, I am on 9i db ) but not the indexed columns.
    for table I use:-
    begin
    dbms_stats.gather_table_stats(ownname=> 'IVAN', tabname=> 'TABLEA', partname=> NULL);
    end;
    for index I use:-
    begin
    dbms_stats.gather_index_stats(ownname=> 'IVAN', indname=> 'TABLEB_IDX_003', partname=> NULL);
    end;
    Is it possible to show me a sample of how to collect statisc for INDEX columns stats?
    regards
    Ivan

  • Invalid parameter value Error while Extending PoReqDistributionsVO

    Hi,
    My Requirement is to restrict user from enetring certain values in a field in iProcurement Page based on some condition. The attribute on which I have to place the validation is CodeCombinationId and the VO name is PoReqDistributionsVO. So, I extended the VO and generated the VORowImpl class for the extended VO. Please note that I have extended the VO just to override the setter method for the CodeCombinationId in the VORowImpl. I did not change any other thing on the VO. Once I deploy the code, I am getting the following error for the first time:
    ## Detail 0 ##
    oracle.jbo.InvalidParamException: JBO-25006: Invalid parameter value PoReqDistributionsVO for source passed to method ViewLinkImpl.setSource. Explanation: view def mismatch
    And then if I try to open the page again, it gives me multiple distribution lines. (Say for example I have only one distribution line for the requistion line and my distribution table PO_REQ_DISTRIBUTIONS_ALL has total 20 records, then all the 20 records are getting displayed in the front end.)
    So, clearly after I extended the VO, the viewlink is not able to identify the viewlink.
    I went through the following thread:
    oracle.jbo.InvalidParamException: JBO-25006: Invalid parameter value
    As suggested in the therad, I thought of copying all the view link related methods from the original VO files. But, I could not get any Viewlink related information in any of the three seeded files PoReqDistributionsVO.xml, PoReqDistributionsVOImpl.class and PoReqDistributionsVORowImpl.class. But I can find one View Link oracle.apps.icx.por.req.server.ReqLineToDistributionsVL in teh server which is linking PoRequisitionLinesVO to PoReqDistributionsVO.
    Could anyone suggest me what I need to do to resolve the issue.
    Edited by: 892480 on Oct 20, 2011 8:13 AM

    Hi Gurus,
    Any suggestion on the above issue?

  • Invalid parameter SECONDARY_RECORD-PSKEY Error in Personal Data Screen

    Hi All,
    We are using EHP6. The Personal Data  iview is throwing an error while trying Edit something.
    I am able to add a new register  but getting the following dump while trying to Edit/Save
    This apply for all the employees.
    This apply for all the employees.
    I looked through SAP Note-1815863 - Dump in Class CL_HRPA_INFOTYPE_CONTAINER Method. However all the tables mentioned in that Note seemed to be configured properly.
    Any help will be appreciated.
    Short Dump
    Error while processing your query
    What has happened?
    The URL call sap/bc/webdynpro/sap/HRESS_A_PERSINFO was terminated because of an error.
    Note
    The following error occurred in system DEV : Invalid parameter SECONDARY_RECORD-PSKEY , value 1008119301067 9999123120130621000
    The error occurred on application server HRE_05 and in work process. 8
    The termination type was: RABAX_STATE
    The ABAP call stack was:
    Method: IF_HRPA_INFTY_CONTAINER_DATA~MODIFY_SECONDARY_RECORD of program CL_HRPA_INFOTYPE_CONTAINER====CP
    I have checked:
    Report RPUPAV00.
    Subtype config, inconsistent data.
    I updated table V_T582V & V_T582W.
    I maintained tcode-GENIL_MODEL_BROWSER.
    I also have checked the following:
    sap > bc> webdynpro > HRESS_A_PERSINFO   ----check this once activate or not ...right click and check is it activated or not
    I also have run the report RPUFIXDS for that personal number, , however the issue follow.
    The error not occur when I delete the register for the the following  V_T582V & V_T582W, however the fields for the infotype secondary not appear in the dynpro of the infotype 0002.
    Thanks
    Regards

    There could be several possible causes
    Usually this error occurs if a secondary infotype functionality has been delivered via SP or SNOTE for infotype 0002 but the PERNR you are using does not have secondary infotype record
    Tables V_T582V & V_T582W determine if a secondary infotype will be used - if you remove entries here this will deactivate the secondary infotype useage - this might be one way to resolve the issue - but perhaps you wish to use the secondary infotype - in some cases it might be required- for example ESS might expects a secondary infotype and throw an error if there is an issue
    If you wish to use the secondary infotype you need the delivered entries in V_T582V & V_T582W and you need to run RPUPAV00 for any PERNR that has a 0002 record existing prior to the new secondary infotype being introduced to ensure they have a secondary infotype record key that matches the primary infotype key

Maybe you are looking for

  • Can someone help with this Actionscript 2.0 URL link problem

    Hi I've created a button that when clicked needs to jump to a frame, play the animation and then load a web page from the net. I've got the first bit alright with on(release) { gotoAndPlay(81); But what Actionscript 2 do I need to put in to jump to a

  • Need help......with Girder

     Hi , I'm trying to get going with girder but there's something missing. I've downloaded and installed the msi remote file and as I use PowerDVD I installed a PowerDVD file from girder site/exported groups.When I try to use the MSI remote controller

  • AS3 XML adds custom namespace declarations

    What I am doing is uncompressing .xlsx file and reading its contents. Then add some rows to sheets and then compress all the files in .xlsx format. The problem is with sharedStrings.xml (probably with other files too). Some xml tags look like this: <

  • DB13 - Scheduled Update Statistics not run - Error

    Hello gurus, I´m faccing with an error in DB13, I scheduled Update statistics every day but it did not run due an error. I think this may resulted because an authorization problem. In /usr/sap is with this permissions: drwxr-xr-x  15 orad01 dba   409

  • Cannot play Real Audio stream in my N82

    Hi there, i have this Real Audio link: rtsp://stream2.rbb-online.de/encoder/radioeins-live.ra It plays fine on my desktop computer. But, when I use the URL in the web browser on my N82, Realplayer opens, tries to establish a connection and thats it..