OracleException "ORA-01008: not all variables ' what SQL text contains both '-'and':'

We have stumbled into what seems to be a similar bug as @user4111944 and Alex Keh - Product Manager-Oracle in ManagedDataAccess - bug in the drive when you use '-'and':' SQL text .


We use Oracle.ManagedDataAccess v. 12.1.2400 (last NuGet package) and get an OracleException with the message


ORA-01008: not all variables


When we try to run the following code:


var l_connectionString = "a connection string.

var l_commandText = "UPDATE table_test SET col_description = '-test', col_time =: param WHERE col_id = 42 ';

using (IDbConnection l_connection = new Oracle.ManagedDataAccess.Client.OracleConnection(l_connectionString))

{

l_connection. Open();

var l_command is l_connection. CreateCommand();

l_command.CommandText = l_commandText;

var l_parameter is l_command. CreateParameter();

l_parameter. ParameterName = "param";

l_parameter. Value = DateTime.Now;

l_command. Parameters.Add (l_parameter);

l_command. ExecuteNonQuery());

}

The code runs perfectly if the omission of the '-' OR the side of a parameter value assignment (i.e. omitting ', col_time =: param').

The stack for the OracleException trace is as follows:

at OracleInternal.ServiceObjects.OracleCommandImpl.VerifyExecution (OracleConnectionImpl connectionImpl, Int32 & cursorId, bThrowArrayBindRelatedErrors Boolean, OracleException & exceptionForArrayBindDML, Boolean hasMoreRowsInDB, Boolean bFirstIterationDone)

at OracleInternal.ServiceObjects.OracleCommandImpl.VerifyExecution (OracleConnectionImpl connectionImpl, Int32 & cursorId, bThrowArrayBindRelatedErrors Boolean, OracleException & exceptionForArrayBindDML, Boolean bFirstIterationDone)

at OracleInternal.ServiceObjects.OracleCommandImpl.ExecuteNonQuery (String queryString, OracleParameterCollection paramColl, CommandType commandType, OracleConnectionImpl connectionImpl, longFetchSize of Int32, Int64 clientInitialLOBFS, OracleDependencyImpl orclDependencyImpl, Int64 [] scnFromExecution, OracleParameterCollection & bindByPositionParamColl, Boolean bBindParamPresent, OracleException & exceptionForArrayBindDML, Boolean isFromEF)

at Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteNonQuery)

UPDATE 1:

Now, I have tested with older versions of Oracle.ManagedDataAccess.dll thus:

  • ODAC 12 c Release 4 (12.1.0.2.4 - released October 5, 2015) -fails with ORA-01008: not all variables
  • ODAC Release 3 (12.1.0.2.1 - published December 23, 2014) 12 c - fails with ORA-01008: not all variables
  • ODAC 12 c Release 2 (12.1.0.1.2 - released on December 20, 2013) - successful!

Therefore, changes in driver management Oracle introduced between December 20, 2013 and December 23, 2014 has caused this problem.

UPDATE 2:

I dug some more in the question and after decompilation December 2013 and December 2014 versions, I found the piece interesting next to the code in the implementation of the ExecuteNonQuery()) method in the inner class OracleInternal.ServiceObjects.OracleCommandImpl. The code in red was added in the version of December 2014:

...

else if (commandType! = CommandType.TableDirect)

{

OracleCommandImpl.TrimCommentsFromSQL (ref str);

this.m_sqlStatementType = OracleCommandImpl.GetSqlStatementType (str);

this.m_bHasReturningClause = OracleCommandImpl.HasReturningClause (str, this.m_sqlStatementType);

}

...

Take OracleCommandImpl.TrimCommentsFromSQL () method for a test ride easily reveal its weaknesses. It does not take into account the sequence '-' may appear in a quoted string, treating them as a comment and deletes the rest of the line...

Could you please address this issue?

Best regards

Bernt

Yes, the cause seems exactly the same thing as Bug 22308527. Once fix us this bug, please fix your problem as well.

Tags: Database

Similar Questions

  • Houston-27122: SQL error in the preparation of the statement in OAF(java.sql.SQLException: ORA-01008: not all variables bound)

    Hi friends,

    I've extended CO where I added dynamic VO where condition, it start error.

    Code added to the controller:

    SerializableAttribute public class Custom_HomePageCO extends HomePageCO

    {

    public Custom_HomePageCO()

    {

    }

    ' Public Sub processRequest (pageContext OAPageContext, OAWebBean webBean)

    {

    super.processRequest (pageContext, webBean);

    System.out.println ("NewClase");

    OAApplicationModule am = pageContext.getApplicationModule (webBean);

    System.out.println (AM);

    OAApplicationModule am1 = (OAApplicationModule) am.findApplicationModule ("TrackExpenseReportsAM");

    System.out.println (AM1);

    OAViewObject vo = (OAViewObject) am1.findViewObject ("TrackExpenseReportsVO");

    System.out.println (VO);

    vo.setWhereClause ("REPORT_SUBMITTED_DATE is not null");

    vo.executeQuery ();

    }

    ' Public Sub processFormRequest (pageContext OAPageContext, OAWebBean webBean)

    {

    super.processFormRequest (pageContext, webBean);

    }

    }

    Error message:

    Details of the exception.

    Error details
    Logout



    Error page


    Details of the exception.

    oracle.apps.fnd.framework.OAException: oracle.jbo.SQLStmtException: 27122 Houston: SQL error in the preparation of the statement.  Statement: SELECT * FROM (SELECT
    BIM OBJECT DESCRIPTION,
    BIM INVOICE_CURRENCY_CODE CURRENCY_CODE,
    BIM INVOICE_DATE REPORT_DATE,
    AERH. REPORT_SUBMITTED_DATE REPORT_SUBMITTED_DATE,
    BIM INVOICE_NUM REPORT_NUMBER,
    To_char (decode (nvl (I.)) AMT_DUE_CCARD_COMPANY, AERH. AMT_DUE_CCARD_COMPANY) + nvl (HAVE. AMT_DUE_EMPLOYEE, AERH. AMT_DUE_EMPLOYEE) + nvl (AERH. MAXIMUM_AMOUNT_TO_APPLY, 0),
    0, decode (HAVE. CANCELLED_DATE,
    NULL, APS. GROSS_AMOUNT,
    AERH. IN TOTAL).
    NVL (HAVE. AMT_DUE_CCARD_COMPANY, AERH. AMT_DUE_CCARD_COMPANY) + nvl (HAVE. AMT_DUE_EMPLOYEE, AERH. AMT_DUE_EMPLOYEE) + nvl (AERH. MAXIMUM_AMOUNT_TO_APPLY, 0));
    FND_CURRENCY_CACHE. GET_FORMAT_MASK
    (HAVE. INVOICE_CURRENCY_CODE, 30)). » '|| BIM INVOICE_CURRENCY_CODE REPORT_TOTAL_CURRENCY,
    To_char (decode (nvl (I.)) AMT_DUE_CCARD_COMPANY, AERH. AMT_DUE_CCARD_COMPANY) + nvl (HAVE. AMT_DUE_EMPLOYEE, AERH. AMT_DUE_EMPLOYEE) + nvl (AERH. MAXIMUM_AMOUNT_TO_APPLY, 0),
    0, decode (HAVE. CANCELLED_DATE,
    NULL, APS. GROSS_AMOUNT,
    AERH. IN TOTAL).
    NVL (HAVE. AMT_DUE_CCARD_COMPANY, AERH. AMT_DUE_CCARD_COMPANY) + nvl (HAVE. AMT_DUE_EMPLOYEE, AERH. AMT_DUE_EMPLOYEE) + nvl (AERH. MAXIMUM_AMOUNT_TO_APPLY, 0));
    FND_CURRENCY_CACHE. GET_FORMAT_MASK
    (HAVE. INVOICE_CURRENCY_CODE, 30))
    REPORT_TOTAL,
    P.PERSON_ID EMPLOYE_ID,
    AERH. REPORT_HEADER_ID REPORT_HEADER_ID,
    P.FULL_NAME FULL_NAME,
    DECODE (AI. CANCELLED_DATE, null,


    NVL (aerh.expense_status_code, DECODE (APS. GROSS_AMOUNT, 0, 'PAY. "
    decode (HAVE. Payment_status_flag, 'Y', 'PAID. "
    ', 'BILL. "
    'P', 'PARPAID', NULL))),
    STATUS_CODE "CANCELLED"),
    AERH.source SOURCE,
    CURRENT_APPROVER NULL,
    ROUND (sysdate - HAVE. DAYS_SINCE_ACTIVITY LAST_UPDATE_DATE),
    AERH. RECEIPTS_STATUS RECEIPTS_STATUS_CODE,
    AERH. HOLDING_REPORT_HEADER_ID,
    BIM VENDOR_ID VENDOR_ID,
    AERH. AMT_DUE_CCARD_COMPANY AMT_DUE_CCARD_COMPANY,
    AERH. AMT_DUE_EMPLOYEE AMT_DUE_EMPLOYEE,
    'CurrentApproverName' CURRENT_APPROVER_SWITCHER,
    TO_CHAR (AERH. LAST_UPDATE_DATE, 'DD-MON-RRRR HH'),
    BIM INVOICE_ID INVOICE_ID
    Of
    AK_WEB_USER_SEC_ATTR_VALUES, A.
    PO_VENDORS PV,
    AP_INVOICES HAVE,
    AP_EXPENSE_REPORT_HEADERS AERH,
    PER_PEOPLE_X P,.
    AP_PAYMENT_SCHEDULES APS
    WHERE DID. INVOICE_ID = APS. INVOICE_ID
    AND THE AI. INVOICE_ID = AERH. VOUCHNO (+)
    AND THE AI. INVOICE_TYPE_LOOKUP_CODE: "="BILL ".
    AND A.ATTRIBUTE_CODE = 'ICX_HR_PERSON_ID. '
    AND THE PV. EMPLOYEE_ID = A.NUMBER_VALUE
    AND A.WEB_USER_ID =: 1
    AND P.PERSON_ID = PV. EMPLOYEE_ID
    AND THE PV. VENDOR_ID = HAVE. VENDOR_ID
    AND DECODE (AI. PAYMENT_STATUS_FLAG,
    'Y' sysdate - I. LAST_UPDATE_DATE,
    decode (APS. GROSS_AMOUNT, 0, sysdate - I. LAST_UPDATE_DATE, 0)
    ) < = 30
    AND (AERH. SOURCE <>"The two Pay" OR AERH. REPORT_HEADER_ID IS NULL)
    UNION
    SELECT
    BIM OBJECT DESCRIPTION,
    BIM INVOICE_CURRENCY_CODE CURRENCY_CODE,
    BIM INVOICE_DATE REPORT_DATE,
    AERH. REPORT_SUBMITTED_DATE REPORT_SUBMITTED_DATE,
    BIM INVOICE_NUM REPORT_NUMBER,
    To_char (decode (nvl (I.)) AMT_DUE_CCARD_COMPANY, AERH. AMT_DUE_CCARD_COMPANY) + nvl (HAVE. AMT_DUE_EMPLOYEE, AERH. AMT_DUE_EMPLOYEE) + nvl (AERH. MAXIMUM_AMOUNT_TO_APPLY, 0),
    0, decode (HAVE. CANCELLED_DATE,
    NULL, APS. GROSS_AMOUNT,
    AERH. IN TOTAL).
    NVL (HAVE. AMT_DUE_CCARD_COMPANY, AERH. AMT_DUE_CCARD_COMPANY) + nvl (HAVE. AMT_DUE_EMPLOYEE, AERH. AMT_DUE_EMPLOYEE) + nvl (AERH. MAXIMUM_AMOUNT_TO_APPLY, 0));
    FND_CURRENCY_CACHE. GET_FORMAT_MASK
    (HAVE. INVOICE_CURRENCY_CODE, 30)). » '|| BIM INVOICE_CURRENCY_CODE REPORT_TOTAL_CURRENCY,
    To_char (decode (nvl (I.)) AMT_DUE_CCARD_COMPANY, AERH. AMT_DUE_CCARD_COMPANY) + nvl (HAVE. AMT_DUE_EMPLOYEE, AERH. AMT_DUE_EMPLOYEE) + nvl (AERH. MAXIMUM_AMOUNT_TO_APPLY, 0),
    0, decode (HAVE. CANCELLED_DATE,
    NULL, APS. GROSS_AMOUNT,
    AERH. IN TOTAL).
    NVL (HAVE. AMT_DUE_CCARD_COMPANY, AERH. AMT_DUE_CCARD_COMPANY) + nvl (HAVE. AMT_DUE_EMPLOYEE, AERH. AMT_DUE_EMPLOYEE) + nvl (AERH. MAXIMUM_AMOUNT_TO_APPLY, 0));
    FND_CURRENCY_CACHE. GET_FORMAT_MASK
    (HAVE. INVOICE_CURRENCY_CODE, 30))
    REPORT_TOTAL,
    P.PERSON_ID EMPLOYE_ID,
    AERH. REPORT_HEADER_ID REPORT_HEADER_ID,
    P.FULL_NAME FULL_NAME,
    DECODE (AI. CANCELLED_DATE, null,
    NVL (aerh.expense_status_code, DECODE (APS. GROSS_AMOUNT, 0, 'PAY. "
    decode (HAVE. Payment_status_flag, 'Y', 'PAID. "
    ', 'BILL. "
    'P', 'PARPAID', NULL))),
    STATUS_CODE "CANCELLED"),
    AERH.source SOURCE,
    CURRENT_APPROVER NULL,
    ROUND (sysdate - HAVE. DAYS_SINCE_ACTIVITY LAST_UPDATE_DATE),
    AERH. RECEIPTS_STATUS RECEIPTS_STATUS_CODE,
    AERH. HOLDING_REPORT_HEADER_ID,
    BIM VENDOR_ID VENDOR_ID,
    AERH. AMT_DUE_CCARD_COMPANY AMT_DUE_CCARD_COMPANY,
    AERH. AMT_DUE_EMPLOYEE AMT_DUE_EMPLOYEE,
    'CurrentApproverName' CURRENT_APPROVER_SWITCHER,
    TO_CHAR (AERH. LAST_UPDATE_DATE, 'DD-MON-RRRR HH'),
    BIM INVOICE_ID INVOICE_ID
    Of
    AK_WEB_USER_SEC_ATTR_VALUES, A.
    PO_VENDORS PV,
    AP_INVOICES HAVE,
    AP_EXPENSE_REPORT_HEADERS AERH,
    PER_PEOPLE_X P,.
    AP_PAYMENT_SCHEDULES APS
    WHERE DID. INVOICE_ID = APS. INVOICE_ID
    AND THE AI. INVOICE_ID = AERH. VOUCHNO (+)
    AND THE AI. INVOICE_TYPE_LOOKUP_CODE: "in ("STANDARD "," MIXED")
    AND A.ATTRIBUTE_CODE = 'ICX_HR_PERSON_ID. '
    AND THE AI. PAID_ON_BEHALF_EMPLOYEE_ID = A.NUMBER_VALUE
    AND A.WEB_USER_ID =: 2
    AND P.PERSON_ID = I. PAID_ON_BEHALF_EMPLOYEE_ID
    AND THE PV. VENDOR_ID = HAVE. VENDOR_ID
    AND DECODE (AI. PAYMENT_STATUS_FLAG,
    'Y' sysdate - I. LAST_UPDATE_DATE,
    decode (APS. GROSS_AMOUNT, 0, sysdate - I. LAST_UPDATE_DATE, 0)
    ) < = 30
    AND (AERH. SOURCE <>"The two Pay" OR AERH. REPORT_HEADER_ID IS NULL)
    UNION ALL
    SELECT
    AERH. DESCRIPTION OBJECT,
    AERH. DEFAULT_CURRENCY_CODE CURRENCY_CODE,
    AERH. WEEK_END_DATE REPORT_DATE,
    AERH. REPORT_SUBMITTED_DATE REPORT_SUBMITTED_DATE,
    AERH. INVOICE_NUM REPORT_NUMBER,
    To_char (nvl (AERH. AMT_DUE_CCARD_COMPANY + AERH. AMT_DUE_EMPLOYEE + nvl (AERH. MAXIMUM_AMOUNT_TO_APPLY, 0), AERH. IN TOTAL), FND_CURRENCY_CACHE. GET_FORMAT_MASK
    (AERH. DEFAULT_CURRENCY_CODE, 30)). » '|| AERH. DEFAULT_CURRENCY_CODE REPORT_TOTAL_CURRENCY,
    To_char (nvl (AERH. AMT_DUE_CCARD_COMPANY + AERH. AMT_DUE_EMPLOYEE + nvl (AERH. MAXIMUM_AMOUNT_TO_APPLY, 0), AERH. IN TOTAL), FND_CURRENCY_CACHE. GET_FORMAT_MASK
    (AERH. DEFAULT_CURRENCY_CODE, 30)) REPORT_TOTAL,.
    PER_EMPLOYEE. PERSON_ID EMPLOYEE_ID,
    AERH. REPORT_HEADER_ID REPORT_HEADER_ID,
    PER_EMPLOYEE. FULL_NAME FULL_NAME,
    NVL (AERH.expense_status_code,
    AP_WEB_OA_ACTIVE_PKG. GetReportStatusCode (AERH. Source, AERH. Workflow_approved_flag,
    AERH.report_header_id, 'Y', 'n')) STATUS_CODE.
    AERH.source SOURCE,
    NVL (PER_APPROVER.full_name, AP_WEB_OA_ACTIVE_PKG. GetCurrentApprover (AERH. Source,
    AERH. Workflow_approved_flag, AERH.report_header_id, AERH.expense_status_code)) CURRENT_APPROVER;
    ROUND (NVL (sysdate - AERH. EXPENSE_LAST_STATUS_DATE,
    SYSDATE - AERH. DAYS_SINCE_ACTIVITY LAST_UPDATE_DATE)),
    AERH. RECEIPTS_STATUS RECEIPTS_STATUS_CODE,
    AERH. HOLDING_REPORT_HEADER_ID,
    0 VENDOR_ID,
    AERH. AMT_DUE_CCARD_COMPANY AMT_DUE_CCARD_COMPANY,
    AERH. AMT_DUE_EMPLOYEE AMT_DUE_EMPLOYEE,
    Decode (aerh.expense_current_approver_id,
    -99999, "AMEMultipleApprovers."
    Decode (PER_APPROVER.full_name,
    (null, 'CurrentApproverName', 'AMESingleApprover')) CURRENT_APPROVER_SWITCHER,
    TO_CHAR (AERH. LAST_UPDATE_DATE, 'DD-MON-RRRR HH'),
    -INVOICE_ID 1
    Of
    AK_WEB_USER_SEC_ATTR_VALUES, A.
    AP_EXPENSE_REPORT_HEADERS AERH,
    PER_PEOPLE_X PER_EMPLOYEE,
    PER_PEOPLE_X PER_APPROVER
    WHERE AERH. VOUCHNO + 0 = 0
    AND A.ATTRIBUTE_CODE = 'ICX_HR_PERSON_ID. '
    AND AERH. EMPLOYEE_ID = A.NUMBER_VALUE
    AND A.WEB_USER_ID =: 3
    AND PER_EMPLOYEE. PERSON_ID = AERH. EMPLOYEE_ID
    AND (AERH. Source <>"NonValidatedWebExpense".
    OR AERH. Workflow_approved_flag IS NULL)
    AND AERH.expense_current_approver_id = PER_APPROVER.person_id
    AND decode (AERH.total, 0, ROUND (NVL (sysdate - AERH.) EXPENSE_LAST_STATUS_DATE, sysdate - AERH. (LAST_UPDATE_DATE)), 30) < = 30
    AND AERH. SOURCE <>"the two Pay."
    UNION
    SELECT
    AERH. DESCRIPTION OBJECT,
    AERH. DEFAULT_CURRENCY_CODE CURRENCY_CODE,
    AERH. WEEK_END_DATE REPORT_DATE,
    AERH. REPORT_SUBMITTED_DATE REPORT_SUBMITTED_DATE,
    AERH. INVOICE_NUM REPORT_NUMBER,
    To_char (nvl (AERH. AMT_DUE_CCARD_COMPANY + AERH. AMT_DUE_EMPLOYEE + nvl (AERH. MAXIMUM_AMOUNT_TO_APPLY, 0), AERH. IN TOTAL), FND_CURRENCY_CACHE. GET_FORMAT_MASK
    (AERH. DEFAULT_CURRENCY_CODE, 30)). » '|| AERH. DEFAULT_CURRENCY_CODE REPORT_TOTAL_CURRENCY,
    To_char (nvl (AERH. AMT_DUE_CCARD_COMPANY + AERH. AMT_DUE_EMPLOYEE + nvl (AERH. MAXIMUM_AMOUNT_TO_APPLY, 0), AERH. IN TOTAL), FND_CURRENCY_CACHE. GET_FORMAT_MASK
    (AERH. DEFAULT_CURRENCY_CODE, 30)) REPORT_TOTAL,.
    PER_EMPLOYEE. PERSON_ID EMPLOYEE_ID,
    AERH. REPORT_HEADER_ID REPORT_HEADER_ID,
    PER_EMPLOYEE. FULL_NAME FULL_NAME,
    NVL (AERH.expense_status_code,
    AP_WEB_OA_ACTIVE_PKG. GetReportStatusCode (AERH. Source, AERH. Workflow_approved_flag,
    AERH.report_header_id, 'Y',' don't)) STATUS_CODE.
    AERH.source SOURCE,
    NVL (PER_APPROVER.full_name, AP_WEB_OA_ACTIVE_PKG. GetCurrentApprover (AERH. Source,
    AERH. Workflow_approved_flag, AERH.report_header_id, AERH.expense_status_code)) CURRENT_APPROVER;
    ROUND (NVL (sysdate - AERH. EXPENSE_LAST_STATUS_DATE,
    SYSDATE - AERH. DAYS_SINCE_ACTIVITY LAST_UPDATE_DATE)),
    AERH. RECEIPTS_STATUS RECEIPTS_STATUS_CODE,
    AERH. HOLDING_REPORT_HEADER_ID,
    0 VENDOR_ID,
    AERH. AMT_DUE_CCARD_COMPANY AMT_DUE_CCARD_COMPANY,
    AERH. AMT_DUE_EMPLOYEE AMT_DUE_EMPLOYEE,
    Decode (aerh.expense_current_approver_id,
    -99999, "AMEMultipleApprovers."
    Decode (PER_APPROVER.full_name,
    (null, 'CurrentApproverName', 'AMESingleApprover')) CURRENT_APPROVER_SWITCHER,
    TO_CHAR (AERH. LAST_UPDATE_DATE, 'DD-MON-RRRR HH'),
    -INVOICE_ID 1
    Of
    AK_WEB_USER_SEC_ATTR_VALUES, A.
    AP_EXPENSE_REPORT_HEADERS AERH,
    PER_PEOPLE_X PER_EMPLOYEE,
    PER_PEOPLE_X PER_APPROVER
    WHERE AERH. VOUCHNO + 0 = 0
    AND A.ATTRIBUTE_CODE = 'ICX_HR_PERSON_ID. '
    AND AERH. PAID_ON_BEHALF_EMPLOYEE_ID = A.NUMBER_VALUE
    AND A.WEB_USER_ID =: 4
    AND PER_EMPLOYEE. PERSON_ID = PAID_ON_BEHALF_EMPLOYEE_ID
    AND AERH. EMPLOYEE_ID IS NULL
    AND (AERH. Source <>"NonValidatedWebExpense".
    OR AERH. Workflow_approved_flag IS NULL)
    AND AERH.expense_current_approver_id = PER_APPROVER.person_id
    AND decode (AERH.total, 0, ROUND (NVL (sysdate - AERH.) EXPENSE_LAST_STATUS_DATE, sysdate - AERH. (LAST_UPDATE_DATE)), 30) < = 30
    AND AERH. SOURCE <>"the two Pay."
    UNION ALL
    / * This selection is for reports of invoice imported by casual workers * /.
    SELECT
    BIM OBJECT DESCRIPTION,
    BIM INVOICE_CURRENCY_CODE CURRENCY_CODE,
    BIM INVOICE_DATE REPORT_DATE,
    AERH. REPORT_SUBMITTED_DATE REPORT_SUBMITTED_DATE,
    BIM INVOICE_NUM REPORT_NUMBER,
    To_char (decode (nvl (I.)) AMT_DUE_CCARD_COMPANY, AERH. AMT_DUE_CCARD_COMPANY) + nvl (HAVE. AMT_DUE_EMPLOYEE, AERH. AMT_DUE_EMPLOYEE) + nvl (AERH. MAXIMUM_AMOUNT_TO_APPLY, 0),
    0, decode (HAVE. CANCELLED_DATE,
    NULL, APS. GROSS_AMOUNT,
    AERH. IN TOTAL).
    NVL (HAVE. AMT_DUE_CCARD_COMPANY, AERH. AMT_DUE_CCARD_COMPANY) + nvl (HAVE. AMT_DUE_EMPLOYEE, AERH. AMT_DUE_EMPLOYEE) + nvl (AERH. MAXIMUM_AMOUNT_TO_APPLY, 0));
    FND_CURRENCY_CACHE. GET_FORMAT_MASK
    (HAVE. INVOICE_CURRENCY_CODE, 30)). » '|| BIM INVOICE_CURRENCY_CODE REPORT_TOTAL_CURRENCY,
    To_char (decode (nvl (I.)) AMT_DUE_CCARD_COMPANY, AERH. AMT_DUE_CCARD_COMPANY) + nvl (HAVE. AMT_DUE_EMPLOYEE, AERH. AMT_DUE_EMPLOYEE) + nvl (AERH. MAXIMUM_AMOUNT_TO_APPLY, 0),
    0, decode (HAVE. CANCELLED_DATE,
    NULL, APS. GROSS_AMOUNT,
    AERH. IN TOTAL).
    NVL (HAVE. AMT_DUE_CCARD_COMPANY, AERH. AMT_DUE_CCARD_COMPANY) + nvl (HAVE. AMT_DUE_EMPLOYEE, AERH. AMT_DUE_EMPLOYEE) + nvl (AERH. MAXIMUM_AMOUNT_TO_APPLY, 0));
    FND_CURRENCY_CACHE. GET_FORMAT_MASK
    (HAVE. INVOICE_CURRENCY_CODE, 30))
    REPORT_TOTAL,
    P.PERSON_ID EMPLOYE_ID,
    AERH. REPORT_HEADER_ID REPORT_HEADER_ID,
    P.FULL_NAME FULL_NAME,
    DECODE (AI. CANCELLED_DATE, null,
    NVL (aerh.expense_status_code, DECODE (APS. GROSS_AMOUNT, 0, 'PAY. "
    decode (HAVE. Payment_status_flag, 'Y', 'PAID. "
    ', 'BILL. "
    'P', 'PARPAID', NULL))),
    STATUS_CODE "CANCELLED"),
    AERH.source SOURCE,
    CURRENT_APPROVER NULL,
    ROUND (sysdate - HAVE. DAYS_SINCE_ACTIVITY LAST_UPDATE_DATE),
    AERH. RECEIPTS_STATUS RECEIPTS_STATUS_CODE,
    AERH. HOLDING_REPORT_HEADER_ID,
    BIM VENDOR_ID VENDOR_ID,
    AERH. AMT_DUE_CCARD_COMPANY AMT_DUE_CCARD_COMPANY,
    AERH. AMT_DUE_EMPLOYEE AMT_DUE_EMPLOYEE,
    'CurrentApproverName' CURRENT_APPROVER_SWITCHER,
    TO_CHAR (AERH. LAST_UPDATE_DATE, 'DD-MON-RRRR HH'),
    BIM INVOICE_ID INVOICE_ID
    Of
    AK_WEB_USER_SEC_ATTR_VALUES, A.
    AP_INVOICES HAVE,
    AP_EXPENSE_REPORT_HEADERS AERH,
    PER_PEOPLE_X P,.
    AP_PAYMENT_SCHEDULES APS
    WHERE DID. INVOICE_ID = APS. INVOICE_ID
    AND THE AI. INVOICE_ID = AERH. VOUCHNO (+)
    AND THE AI. INVOICE_TYPE_LOOKUP_CODE: "="BILL ".
    AND A.ATTRIBUTE_CODE = 'ICX_HR_PERSON_ID. '
    AND THE AI. PAID_ON_BEHALF_EMPLOYEE_ID = A.NUMBER_VALUE
    AND A.WEB_USER_ID =: 5
    AND P.PERSON_ID = I. PAID_ON_BEHALF_EMPLOYEE_ID
    AND AP_WEB_DB_HR_INT_PKG. IsPersonCwk (HAVE. PAID_ON_BEHALF_EMPLOYEE_ID) = 'Y '.
    AND DECODE (AI. PAYMENT_STATUS_FLAG,
    'Y' sysdate - I. LAST_UPDATE_DATE,
    decode (APS. GROSS_AMOUNT, 0, sysdate - I. LAST_UPDATE_DATE, 0)
    ) < = 30
    AND (AERH. SOURCE <>"The two Pay" OR AERH. REPORT_HEADER_ID IS NULL)) QRSLT WHERE (REPORT_SUBMITTED_DATE is not null)
    at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:891)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:603)
    at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
    at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processRequest(OAPageLayoutHelper.java:1136)
    at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processRequest(OAPageLayoutBean.java:1569)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
    at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
    at oracle.apps.fnd.framework.webui.beans.form.OAFormBean.processRequest(OAFormBean.java:385)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
    at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
    at oracle.apps.fnd.framework.webui.beans.OABodyBean.processRequest(OABodyBean.java:353)
    at oracle.apps.fnd.framework.webui.OAPageBean.processRequest(OAPageBean.java:2360)
    at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1759)
    at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:511)
    at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:432)
    at _OA._jspService(OA.jsp:33)
    at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
    at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
    at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
    at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
    at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
    at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
    at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259)
    at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106)
    to EDU.oswego.cs.dl.util.concurrent.PooledExecutor$ Worker.run (PooledExecutor.java:803)
    at java.lang.Thread.run(Thread.java:534)
    # # 0 in detail
    java.sql.SQLException: ORA-01008: not all variables

    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
    at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
    at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:583)
    at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1986)
    at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1144)
    at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2548)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2933)
    at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:650)
    at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:578)
    at oracle.jbo.server.QueryCollection.buildResultSet(QueryCollection.java:631)
    at oracle.jbo.server.QueryCollection.executeQuery(QueryCollection.java:518)
    at oracle.jbo.server.ViewObjectImpl.executeQueryForCollection(ViewObjectImpl.java:3375)
    at oracle.jbo.server.OAJboViewObjectImpl.executeQueryForCollection(OAJboViewObjectImpl.java:828)
    at oracle.apps.fnd.framework.server.OAViewObjectImpl.executeQueryForCollection(OAViewObjectImpl.java:4525)
    at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:574)
    at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:544)
    at oracle.jbo.server.ViewRowSetImpl.executeDetailQuery(ViewRowSetImpl.java:619)
    at oracle.jbo.server.ViewObjectImpl.executeDetailQuery(ViewObjectImpl.java:3339)
    at oracle.jbo.server.ViewObjectImpl.executeQuery(ViewObjectImpl.java:3326)
    at oracle.apps.fnd.framework.server.OAViewObjectImpl.executeQuery(OAViewObjectImpl.java:441)
    at oracle.apps.ap.oie.webui.Custom_HomePageCO.processRequest(Custom_HomePageCO.java:26)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:587)
    at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
    at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processRequest(OAPageLayoutHelper.java:1136)
    at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processRequest(OAPageLayoutBean.java:1569)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
    at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
    at oracle.apps.fnd.framework.webui.beans.form.OAFormBean.processRequest(OAFormBean.java:385)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
    at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
    at oracle.apps.fnd.framework.webui.beans.OABodyBean.processRequest(OABodyBean.java:353)
    at oracle.apps.fnd.framework.webui.OAPageBean.processRequest(OAPageBean.java:2360)
    at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1759)
    at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:511)
    at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:432)
    at _OA._jspService(OA.jsp:33)
    at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
    at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
    at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
    at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
    at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
    at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
    at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259)
    at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106)
    to EDU.oswego.cs.dl.util.concurrent.PooledExecutor$ Worker.run (PooledExecutor.java:803)
    at java.lang.Thread.run(Thread.java:534)
    java.sql.SQLException: ORA-01008: not all variables

    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
    at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
    at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:583)
    at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1986)
    at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1144)
    at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2548)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2933)
    at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:650)
    at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:578)
    at oracle.jbo.server.QueryCollection.buildResultSet(QueryCollection.java:631)
    at oracle.jbo.server.QueryCollection.executeQuery(QueryCollection.java:518)
    at oracle.jbo.server.ViewObjectImpl.executeQueryForCollection(ViewObjectImpl.java:3375)
    at oracle.jbo.server.OAJboViewObjectImpl.executeQueryForCollection(OAJboViewObjectImpl.java:828)
    at oracle.apps.fnd.framework.server.OAViewObjectImpl.executeQueryForCollection(OAViewObjectImpl.java:4525)
    at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:574)
    at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:544)
    at oracle.jbo.server.ViewRowSetImpl.executeDetailQuery(ViewRowSetImpl.java:619)
    at oracle.jbo.server.ViewObjectImpl.executeDetailQuery(ViewObjectImpl.java:3339)
    at oracle.jbo.server.ViewObjectImpl.executeQuery(ViewObjectImpl.java:3326)
    at oracle.apps.fnd.framework.server.OAViewObjectImpl.executeQuery(OAViewObjectImpl.java:441)
    at oracle.apps.ap.oie.webui.Custom_HomePageCO.processRequest(Custom_HomePageCO.java:26)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:587)
    at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
    at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processRequest(OAPageLayoutHelper.java:1136)
    at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processRequest(OAPageLayoutBean.java:1569)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
    at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
    at oracle.apps.fnd.framework.webui.beans.form.OAFormBean.processRequest(OAFormBean.java:385)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
    at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
    at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
    at oracle.apps.fnd.framework.webui.beans.OABodyBean.processRequest(OABodyBean.java:353)
    at oracle.apps.fnd.framework.webui.OAPageBean.processRequest(OAPageBean.java:2360)
    at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1759)
    at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:511)
    at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:432)
    at _OA._jspService(OA.jsp:33)
    at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
    at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
    at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
    at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
    at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
    at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
    at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259)
    at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106)
    to EDU.oswego.cs.dl.util.concurrent.PooledExecutor$ Worker.run (PooledExecutor.java:803)
    at java.lang.Thread.run(Thread.java:534)

    I took the sql error message and tried the same performance in Toad... I could run it smoothly... I dot know why his work during the execution of the page

    Please help me guys...

    Thank you

    Pavan

    See you are not sure if they make somewhere clause or where clause params. Your code can be disturbing the standard flow of the code

    Try

    (a) Substitution of view object

    (b)

    OAViewObject vo = (OAViewObject) am1.findViewObject ("TrackExpenseReportsVO");

    System.out.println (VO);

    vo.setWhereClause (null);

    vo.setWhereClause ("REPORT_SUBMITTED_DATE is not null");

    vo.executeQuery (); do not run

    B. try if this does not work go for a

    Concerning

    Marie Lise S

  • java.sql.SQLException: ORA-01008: not all variables

    Hi all

    Here is the code in my opinion

    SELECT * FROM (select * from ())
    SELECT WN. NOTIFICATION_ID,
    WN. FROM_USER,
    DECODE (WN. MORE_INFO_ROLE, NULL, WN. TO_USER, wf_directory. GetRoleDisplayName (WN. MORE_INFO_ROLE)) AS TO_USER;
    DECODE (WN. MORE_INFO_ROLE, NULL, WN. TOPIC, FND_MESSAGE. GET_STRING ('FND', 'FND_MORE_INFO_REQUESTED')
    ||' '
    || WN. SUBJECT) AS THE SUBJECT.
    WN. LANGUAGE,
    WN. BEGIN_DATE,
    WN. END_DATE,
    WN. STATUS,
    WN. PRIORITY,
    'P' AS PRIORITY_F,
    WN. RECIPIENT_ROLE,
    WN. END_DATE,
    WIT. DISPLAY_NAME AS TYPE,
    WN. MORE_INFO_ROLE,
    WN. FROM_ROLE,
    WN. MESSAGE_TYPE,
    WN. MESSAGE_NAME,
    WN. CONTEXT,
    XXTPS_FA043_PKG.get_gbv (WN. CONTEXT, WN. MESSAGE_TYPE, wn.language) VBG.
    XXTPS_FA043_PKG.get_asset_type (WN. CONTEXT, WN. Asset_type MESSAGE_TYPE)
    OF WF_NOTIFICATIONS WN.
    WF_ITEM_TYPES_TL WIT,
    WL WF_LOOKUPS_TL
    WHERE WN.message_type = WIT.name
    AND WL.lookup_type = 'WF_NOTIFICATION_STATUS. '
    AND WIT.language = userenv ('LANG')
    AND WIT.language = WL.language
    AND WN.status = WL.lookup_code
    AND more_info_role IS NULL
    AND wn.message_type IN ('XXNCVPIS', 'XXNCVADJ', 'XXNCVTRN', 'XXNCVRCL', 'XXNCVRET', 'XXNCVSPL', 'XXNCVASG')
    AND WN.recipient_role IN
    (SELECT WUR.role_name
    OF WF_USER_ROLES WUR
    WHERE WUR.user_name =: 1
    AND WUR.user_orig_system =: 2
    AND WUR.user_orig_system_id =: 3
    )
    UNION ALL
    SELECT
    / * + Index (WN WF_NOTIFICATIONS_N6) ORDERED PUSH_SUBQ USE_NL (WN WL WIT) * /.
    WN. NOTIFICATION_ID,
    WN. FROM_USER,
    DECODE (WN. MORE_INFO_ROLE, NULL, WN. TO_USER, wf_directory. GetRoleDisplayName (WN. MORE_INFO_ROLE)) AS TO_USER;
    DECODE (WN. MORE_INFO_ROLE, NULL, WN. TOPIC, FND_MESSAGE. GET_STRING ('FND', 'FND_MORE_INFO_REQUESTED')
    ||' '
    || WN. SUBJECT) AS THE SUBJECT.
    WN. LANGUAGE,
    WN. BEGIN_DATE,
    WN. END_DATE,
    WN. STATUS,
    WN. PRIORITY,
    'P' AS PRIORITY_F,
    WN. RECIPIENT_ROLE,
    WN. END_DATE,
    WIT. DISPLAY_NAME AS TYPE,
    WN. MORE_INFO_ROLE,
    WN. FROM_ROLE,
    WN. MESSAGE_TYPE,
    WN. MESSAGE_NAME,
    WN. CONTEXT,
    XXTPS_FA043_PKG.get_gbv (WN. CONTEXT, WN. MESSAGE_TYPE, wn.language) VBG.
    XXTPS_FA043_PKG.get_asset_type (WN. CONTEXT, WN. Asset_type MESSAGE_TYPE)
    OF WF_NOTIFICATIONS WN.
    WF_ITEM_TYPES_TL WIT,
    WL WF_LOOKUPS_TL
    WHERE WN.message_type = WIT.name
    AND WL.lookup_type = 'WF_NOTIFICATION_STATUS. '
    AND WIT.language = userenv ('LANG')
    AND WIT.language = WL.language
    AND WN.status = WL.lookup_code
    AND wn.message_type IN ('XXNCVPIS', 'XXNCVADJ', 'XXNCVTRN', 'XXNCVRCL', 'XXNCVRET', 'XXNCVSPL', 'XXNCVASG')
    AND WN.more_info_role IN
    (SELECT WUR.role_name
    OF WF_USER_ROLES WUR
    WHERE WUR.user_name =: 4
    AND WUR.user_orig_system =: 5
    AND WUR. USER_ORIG_SYSTEM_ID =: 6
    ))
    WHERE DECODE (: 7, NULL, ' 2 ',' > ', VBG, ' 2') > DECODE (: 7, NULL, ' 1 ',' > ',: 8, '1')
    AND DECODE (: 7, NULL, ' 1 ',' < ', VBG, ' 1') < DECODE (: 7, NULL, ' 2 ',' < ',: 8, '2')
    (AND DECODE (: 7, NULL, '1', 'IS', VBG, '1') = DECODE (: 7, NULL, ' 1', 'IS',: 8, '1'))

    Code of VOImpl
    ' public void initQuery (String s, String s1, s2, s3, s4 of the string String String,
    S5, s6 String String) {}
    OAApplicationModuleImpl = localOAApplicationModuleImpl
    (OAApplicationModuleImpl) getApplicationModule ();
    OADBTransactionImpl = localOADBTransactionImpl
    (OADBTransactionImpl) localOAApplicationModuleImpl.getDBTransaction ();
    int i = 0;
    setWhereClause (null);
    setWhereClauseParams (null);

    setWhereClauseParam (0, s);
    setWhereClauseParam (1, s1);
    setWhereClauseParam (2, s2);
    setWhereClauseParam (3, s);
    setWhereClauseParam (4, s1);
    setWhereClauseParam (5, s2);
    setWhereClauseParam (6, s4);
    setWhereClauseParam (7, s6);

    String strWhereClause = "";

    If ((null! = s5) & &!("".)) Equals (S5)))
    {
    If (! (")) All".equalsIgnoreCase (S5)))
    {
    "" strWhereClause = "asset_type =" "+ s5 +" ' ";
    addWhereClause (strWhereClause);
    }
    }

    When I try to run the page, and then I am getting java.sql.SQLException: ORA-01008: not all variables.

    Can someone tell the cause of the road please?

    Thank you
    Siva Prasad

    WHERE DECODE (: 7, NULL, ' 2 ',' > ', VBG, ' 2') > DECODE (: 7, NULL, ' 1 ',' > ',: 8, '1')
    AND DECODE (: 7, NULL, 1 ',')<'1')>< decode(:7,="" null,="" '2',=""><', :8,="">
    (AND DECODE (: 7, NULL, '1', 'IS', VBG, '1') = DECODE (: 7, NULL, ' 1', 'IS',: 8, '1'))

    You use the variable even here several times. Please change sequentially. Even if you use: 7 more than once, please change to: 8 (number) and go to the setWhereClauseParam. Basically do not use the same variable twice (even if you want to compare the same value)

    Thank you
    Shree

  • ORA-01008: not all variables bound... but only in an environment

    Running Oracle on Solaris 11.2.0.3.15.

    Two test environments, each with identical spfiles (give or take the database names, etc.).

    Here is my code in both cases:

    create or replace procedure HJR_TEST

    as

    v_daykey_from number (10): = 13164.

    v_text varchar2 (3000);

    Start

    Select cd.daykey. CD. CalendarDate in v_text

    from the cds.cdsday CD,

    CDS. Snapshot vsp

    where vsp.daykey = cd.daykey

    and cd.daykey > = v_daykey_from

    and rownum < 2;

    dbms_output.put_line (v_text);

    end;

    Work as an environment:

    SQL > start

    hjr_test;

    end;

    PL/SQL procedure successfully completed.

    1318001/FEB/16

    Run it in another environment:

    Error from line: 18 in the command.

    Start

    hjr_test;

    end;

    Error report-

    ORA-01008: not all variables

    ORA-06512: at the 'JRH. HJR_TEST', line 7

    ORA-06512: at line 2

    01008 00000 - "not all variables.

    * Cause:

    * Action:

    Same code; init.ora parameters; same version of the database. same o/s; different results.

    Got clues as to where I should be looking for the trouble, please?

    Concerning

    JRH

    Thought I better update the forum on this one.

    This is a bug confirmed, although the bug report is not published.

    There are cases where the optimizer calls kkpap do partition

    pruning in the compilation. Sometimes to partition pruning is done in

    subqueries running against the table. If the bind variables values

    required to operate these subqueries, so we cannot do the pruning to

    compile time.

    The fix for the bug 14458214 fixed this problem in the case where the

    subquery was used to carve at the partition level. However, it is

    possible that use us another method at the level of the partition, and then use

    pruning of subquery subpartition level; this case was not

    addressed by the fix for 14458214.

    The mentioned bug has a patch available in 11.2.0.4 and don't occur in 12 c. For some reason, I'm also made bug 17258090, but I see no content in this bug report. :-(

    Possible solutions in 11.2.0.3 is to make a alter session set "_subquery_pruning_enabled" = false; ... but since X$ KSPPI lists _subquery_pruning_enabled as a hidden parameter, I guess you can also set it instance globally, although obviously the consequences for other queries would at this time must be evaluated very carefully.


  • Double Dash Mark in string causes ORA-01008: not all variables bound errors

    Hello
    I have the following text in a process of PL/SQL in APEX page: v_student_name: =: P31_LAST_NAME | ',' | : P31_FIRST_NAME | » --'|| : P31_STUDENT_ID;
    I'm under APEX 3.0.1 on Oracle Database 10 g Express Edition.

    When I use a dashboard, I don't get an error. When I use a double dash, I get the error: ORA-01008: not all variables related errors. Any suggestions on how to solve this problem would be greatly appreciated. Thanks in advance!

    Sharon

    Sharon-

    As the option - is a comment in PL/SQL, you can need to insert these characters through the function chr(). Have you tried:

     v_student_name := :P31_LAST_NAME||', '||:P31_FIRST_NAME||chr(45)||chr(45)||:P31_STUDENT_ID;
    

    Austin

  • ORA-01008: not all variables

    Hi, I used QUERY clause since last month when I learned about it. Now I have a problem with an error: ORA-01008: not all variables. Here's what's inside my pre-requete button:

    DECLARE
    VARCHAR2 (1500) MYQUERY;

    BEGIN

    : SPM_CIRCUITS. DATE_FROM: =: GLOBAL. DATE_FROM;
    : SPM_CIRCUITS. DATE_TO: =: GLOBAL. DATE_TO;
    : SPM_CIRCUITS. GRID: =: GLOBAL. GRID;
    : SPM_CIRCUITS. REGION: =: GLOBAL. REGION;
    : SPM_CIRCUITS. NEIGHBORHOOD: =: GLOBAL. DISTRICT;
    : SPM_CIRCUITS. CLASS: =: GLOBAL. CLASS;
    : SPM_CIRCUITS. VOLTLEVEL: =: GLOBAL. VOLTLEVEL;
    : SPM_CIRCUITS. BRANCH: =: GLOBAL. GENERAL MANAGEMENT;
    : SPM_CIRCUITS. ACC: =: GLOBAL. VAC;

    MYQUERY: = ' (SELECT C.CIRCUIT_CODE, C.SUBSTATION_CODE, C.CIRCUIT, C.DATE_COMMISSION, C.DATE_DECOMMISSION, C.CLASSIFICATION, C.DATE_PRIVATELY_OWNED
    FROM (SELECT A.CIRCUIT_CODE, A.CIRCUIT, A.SUBSTATION_CODE, A.DATE_COMMISSION, A.DATE_DECOMMISSION, A.CLASSIFICATION, A.DATE_PRIVATELY_OWNED
    OF SPM_CIRCUITS, (SELECT SEPARATE NVL2 ('|)) ': SPM_CIRCUITS. DISTRICT ' |', CIRCUIT_CODE,
    DECODE (COMMON_CKT_CODE, NULL, CIRCUIT_CODE, COMMON_CKT_CODE)) CIRCUIT_CODE
    OF SPM_CIRCUITS
    WHEN THE CLASSIFICATION IS NOT NULL
    AND (CLASSIFICATION = ' | ") ' || : SPM_CIRCUITS. CLASS | " ' ||')
    AND SUBSTR (SUBSTATION_CODE, 6, 4) <>"M001"
    AND DATE_COMMISSION IS NOT NULL
    AND (SUBSTR (CIRCUIT_CODE, 5, 1) SUBSTR (CIRCUIT_CODE, 5, 1) AND <>"5" <>"9")
    ) B
    WHERE A.CIRCUIT_CODE = B.CIRCUIT_CODE
    ) C
    WHERE (C.DATE_PRIVATELY_OWNED IS NULL))';

    SET_BLOCK_PROPERTY ('SPM_CIRCUITS', QUERY_DATA_SOURCE_NAME, MYQUERY);

    END;

    I put the query data Source name double. In fact, the problem I have is with the SELECTION bold. When I do a SELECT Circuit_code only, there is no problem, but when I use the
    SELECT SEPARATE NVL2 ('|) ': SPM_CIRCUITS. DISTRICT ' |', CIRCUIT_CODE,
    DECODE (COMMON_CKT_CODE, NULL, CIRCUIT_CODE, COMMON_CKT_CODE)) CIRCUIT_CODE
    Then, I'm having a problem. GLOBAL variables were assigned with value through a button before this block. Help, please. Thanks in advance.

    SPM_CIRCUITS. NEIGHBORHOOD here is interpreted as text. It is necessary to add ".
    Please try

    ...
    SELECT DISTINCT NVL2(' || '''' || :SPM_CIRCUITS.DISTRICT || '''' || ', CIRCUIT_CODE,
    ...
    
  • ORA-01008: not all variables ORA-06512: line 1491

    I have a procedure running dynamic SQL in a package that compiles fine, but get an error ORA-01008 not all variables. I have done this before and looked at this for hours but can not fined the problem. Maybe a second set of eyes can help.

    Thanks in advance


    procedure load_patients_by_rule)
    iRuleId in clinical_rule.clinical_rule_id%type,
    iCompanyId number,
    iGroupId number,
    iPatProviderID number,
    RCT outside globalpkg.rct1
    );


    IRULEID: = 55;
    ICOMPANYID: = 520;
    IGROUPID: = 1000001;
    IPATPROVIDERID: = 0;

    procedure load_patients_by_rule)
    iRuleId in clinical_rule.clinical_rule_id%type,
    iCompanyId number,
    iGroupId number,
    iPatProviderID number,
    RCT outside globalpkg.rct1
    )
    as
    SQL_STMT VARCHAR2 (4000);
    Start
    SQL_STMT: ='select r.*,.
    RS.*,
    Reg.clinical_registry_id,
    Reg.Name as registry_description,
    Reg.clinical_registry_type_id,
    Reg.registry_kind,
    PD. DOB,
    FN_GET_ENTITY_FULLNAME (PD.entity_id) as full_name,
    fn_get_rule_interval (r.clinical_rule_id, PD.entity_id) as rule_interval,
    RST.status_description,
    FN_GET_PATPROVIDERID_ENT_GRP (PD.entity_id, RS.group_id) as PAT_PROVIDER_ID,
    GETPATPROVIDERNAME (FN_GET_PATPROVIDERID_ENT_GRP (PD.entity_id, RS.group_id)) as provider_full_name_ex,
    FN_GET_PATIENT_VIP_STATUS(PD.entity_id,PD.parent_company_id) VIP_ACTIVE_YN.
    RGP. ADDED_DATE as added_to_registry_date
    clinical_registry® systems
    My clinical_measure_activation on ma.clinical_registry_id = reg.clinical_registry_id inner join
    clinical_registry_clin_case creg on creg.clinical_registry_id = reg.clinical_registry_id inner join
    clinical_rule_clin_case CCBC on crcc.clinical_case_id = creg.clinical_case_id inner join
    inner join clinical_rule r on r.CLINICAL_RULE_ID = crcc. CLINICAL_RULE_ID
    pat_rule_status rs on rs.clinical_rule_id = r.clinical_rule_id inner join
    inner join rule_status_type on rst.status_id = rs.status_id rst
    RFP pat_details on pd.entity_id = rs.pat_entity_id inner join
    inner join clinical_registry_patient on rgp.clinical_registry_id = reg.clinical_registry_id rgp
    inner join all_name an on PD.NAME_ID = AN.NAME_ID
    where reg. ACTIVE_YN = "Y"
    and rgp.pat_entity_id = pd.entity_id
    and rs.clinical_rule_id =: P1
    and rs.parent_company_id =: P2
    and ma.group_id =: P3
    and rs.group_id =: P3';

    If iPatProviderID = 0 then
    RCT OPEN for SQL_STMT USING iRuleId, iCompanyId, iGroupId; -Line 1491
    on the other
    SQL_STMT: = SQL_STMT | "AND FN_GET_PATPROVIDERID_ENT_GRP (pd.entity_id, rs.group_id) =: P4';"
    RCT OPEN for SQL_STMT USING iRuleId, iCompanyId, iGroupId, iPatProviderID;
    end if;

    end;

    In this case, the variables are not related by name, but by the position, then you will bind each variable (possibly using the same value more than once) in the order they will be displayed in the query:

    if iPatProviderID = 0 then
    OPEN rct FOR SQL_STMT USING iRuleId,iCompanyId, iGroupId, iGroupId;
    else
    SQL_STMT := SQL_STMT || ' AND FN_GET_PATPROVIDERID_ENT_GRP(pd.entity_id,rs.group_id) = :P4';
    OPEN rct FOR SQL_STMT USING iRuleId, iCompanyId, iGroupId, iGroupId, iPatProviderID;
    end if;
    
  • ORA-01008: not all variables - interactive report

    I have a report that is interactive, based on the query below. When I try to run the page, I get a ' ORA-01008: not all variables bound "error.

    By checking the session state, I can see that all the variables needed for this query are defined:
    DTP_P10_STARTDT = 28-JUN-10
    DTP_P10_ENDDT = 12-JUL-10 
    CBO_P10_PRODUCTLINE = 1
    H_P10_BASEPRODIDLIST = _-1_
    H_P10_PRODUCTIDLIST = _-1_
    H_P10_VERSIONIDLIST = _-1_
    H_P10_CUSTOMERIDLIST = _-1_
    If I run the query in SQLDeveloper, substituting values, it works perfectly. I copied all the variable names since the APEX session state information, so I know that there are any misspelling or typographical errors. Always running v3.2 btw.

    select b.customer_name,
           '<a href="f?p=&APP_ID.:20:&SESSION.::&DEBUG.:RP,20:H_P20_STARTDT,H_P20_ENDDT,H_P20_NORMSEVERITY,H_P20_PRODUCTLINE,H_P20_BASEPRODIDLIST,H_P20_CUSTOMERID,H_P20_PRODUCTIDLIST,H_P20_VERSIONIDLIST:&DTP_P10_STARTDT.,&DTP_P10_ENDDT.,1,&CBO_P10_PRODUCTLINE.,&H_P10_BASEPRODUCT.,' || b.customer_id || ',&H_P10_PRODUCTIDLIST.,&H_P20_VERSIONIDLIST.">' || sum(b.open_critical) || '</a>' as open_critical,
           '<a href="f?p=&APP_ID.:20:&SESSION.::&DEBUG.:RP,20:H_P20_STARTDT,H_P20_ENDDT,H_P20_NORMSEVERITY,H_P20_PRODUCTLINE,H_P20_BASEPRODIDLIST,H_P20_CUSTOMERID,H_P20_PRODUCTIDLIST,H_P20_VERSIONIDLIST:&DTP_P10_STARTDT.,&DTP_P10_ENDDT.,1,&CBO_P10_PRODUCTLINE.,&H_P10_BASEPRODUCT.,' || b.customer_id || ',&H_P10_PRODUCTIDLIST.,&H_P20_VERSIONIDLIST.">' || sum(b.closed_critical) || '</a>' as closed_critical,
           '<a href="f?p=&APP_ID.:20:&SESSION.::&DEBUG.:RP,20:H_P20_STARTDT,H_P20_ENDDT,H_P20_NORMSEVERITY,H_P20_PRODUCTLINE,H_P20_BASEPRODIDLIST,H_P20_CUSTOMERID,H_P20_PRODUCTIDLIST,H_P20_VERSIONIDLIST:&DTP_P10_STARTDT.,&DTP_P10_ENDDT.,1,&CBO_P10_PRODUCTLINE.,&H_P10_BASEPRODUCT.,' || b.customer_id || ',&H_P10_PRODUCTIDLIST.,&H_P20_VERSIONIDLIST.">' || sum(b.open_major) || '</a>' as open_major,
           '<a href="f?p=&APP_ID.:20:&SESSION.::&DEBUG.:RP,20:H_P20_STARTDT,H_P20_ENDDT,H_P20_NORMSEVERITY,H_P20_PRODUCTLINE,H_P20_BASEPRODIDLIST,H_P20_CUSTOMERID,H_P20_PRODUCTIDLIST,H_P20_VERSIONIDLIST:&DTP_P10_STARTDT.,&DTP_P10_ENDDT.,1,&CBO_P10_PRODUCTLINE.,&H_P10_BASEPRODUCT.,' || b.customer_id || ',&H_P10_PRODUCTIDLIST.,&H_P20_VERSIONIDLIST.">' || sum(b.closed_major) || '</a>' as closed_major,
           '<a href="f?p=&APP_ID.:20:&SESSION.::&DEBUG.:RP,20:H_P20_STARTDT,H_P20_ENDDT,H_P20_NORMSEVERITY,H_P20_PRODUCTLINE,H_P20_BASEPRODIDLIST,H_P20_CUSTOMERID,H_P20_PRODUCTIDLIST,H_P20_VERSIONIDLIST:&DTP_P10_STARTDT.,&DTP_P10_ENDDT.,1,&CBO_P10_PRODUCTLINE.,&H_P10_BASEPRODUCT.,' || b.customer_id || ',&H_P10_PRODUCTIDLIST.,&H_P20_VERSIONIDLIST.">' || sum(b.open_minor) || '</a>' as open_minor,
           '<a href="f?p=&APP_ID.:20:&SESSION.::&DEBUG.:RP,20:H_P20_STARTDT,H_P20_ENDDT,H_P20_NORMSEVERITY,H_P20_PRODUCTLINE,H_P20_BASEPRODIDLIST,H_P20_CUSTOMERID,H_P20_PRODUCTIDLIST,H_P20_VERSIONIDLIST:&DTP_P10_STARTDT.,&DTP_P10_ENDDT.,1,&CBO_P10_PRODUCTLINE.,&H_P10_BASEPRODUCT.,' || b.customer_id || ',&H_P10_PRODUCTIDLIST.,&H_P20_VERSIONIDLIST.">' || sum(b.closed_minor) || '</a>' as closed_minor, 
           1 as sortcol
      from 
    (select a.customer_name, 
            a.customer_id, 
            (select count(a.issue_id) from issue_severity where a.issue_severity_id = issue_severity.issue_severity_id and a.close_dt is null AND issue_severity.normalized_issue_severity_id = 1) as open_critical,
            (select count(a.issue_id) from issue_severity where a.issue_severity_id = issue_severity.issue_severity_id and a.close_dt is not null AND issue_severity.normalized_issue_severity_id = 1) as closed_critical,
            (select count(a.issue_id) from issue_severity where a.issue_severity_id = issue_severity.issue_severity_id and a.close_dt is null AND issue_severity.normalized_issue_severity_id = 2) as open_major,
            (select count(a.issue_id) from issue_severity where a.issue_severity_id = issue_severity.issue_severity_id and a.close_dt is not null AND issue_severity.normalized_issue_severity_id = 2) as closed_major,
            (select count(a.issue_id) from issue_severity where a.issue_severity_id = issue_severity.issue_severity_id and a.close_dt is null AND issue_severity.normalized_issue_severity_id = 4) as open_minor,
            (select count(a.issue_id) from issue_severity where a.issue_severity_id = issue_severity.issue_severity_id and a.close_dt is not null AND issue_severity.normalized_issue_severity_id = 4) as closed_minor
        from (select issue.issue_id, 
                     issue.issue_severity_id,
                     support_call.close_dt, 
                     customer.customer_name, 
                     customer.customer_id
                  From support_call, 
                       issue, 
                       configuration, 
                       base_product, 
                       code_base_class, 
                       code_base, 
                       release, 
                       customer
                where issue.support_call_id = support_call.support_call_id 
                and support_call.product_id = configuration.id 
                and configuration.product_id = base_product.id 
                and base_product.code_base_id = code_base.code_base_id 
                and code_base.code_base_class_id = code_base_class.code_base_class_id 
                and support_call.release_id = release.release_id 
                and support_call.customer_id = customer.customer_id
                and trunc(support_call.open_dt) >= : DTP_P10_STARTDT 
                and trunc(support_call.open_dt) <= :DTP_P10_ENDDT 
                and support_call.customer_id = customer.customer_id 
                and code_base_class.product_line_id = :CBO_P10_PRODUCTLINE 
                AND decode (:H_P10_BASEPRODIDLIST, '_-1_', 1, instr(:H_P10_BASEPRODIDLIST, '_' || base_product.id || '_')) > 0 
                AND decode(:H_P10_PRODUCTIDLIST, '_-1_', 1, instr(:H_P10_PRODUCTIDLIST, '_' || support_call.product_id || '_')) > 0 
                AND DECODE (:H_P10_VERSIONIDLIST, '_-1_', 1, instr( :H_P10_VERSIONIDLIST,'_' || release.version_num || '_')) > 0
                AND decode(:H_P10_CUSTOMERIDLIST, '_-1_', 1, instr(:H_P10_CUSTOMERIDLIST, '_' || support_call.customer_id || '_')) > 0
                AND customer.inactive_ind = 0
                AND customer.deleted_ind = 0) a ) b
    group by b.customer_name, b.customer_id

    You don't mention your version of Apex - as you can imagine, this is important info. 3.1.2 (and probably others have a limitation to find out when he meets '-' sometimes). Do you have a '-' comments in your SQL code that you have not indicated? Try to remove one point referees at a time until the problem goes away, or replace: H_P10_BASEPRODIDLIST with v ('H_P10_BASEPRODIDLIST') etc.

  • ORA-01008: not all variables - even with "cursor_sharing = TRUE".

    Hello
    I get this error message "ORA-01008: not all variables", when I try to access an env var.

    Select * from v$ Version;
    -Oracle Database 10g Release 10.2.0.1.0 - Production
    PL/SQL Release 10.2.0.1.0 - Production
    -CORE 10.2.0.1.0 Production
    -AMT for Linux: Version 10.2.0.1.0 - Production
    -NLSRTL Version 10.2.0.1.0 - Production

    Select * from parameter $ v where name = 'cursor_sharing;
    -EXACT

    Example:
    declare
    VAL Varchar2 (255);
    VAR VARCHAR2 (255);
    BEGIN
    VAR: = "API_DIR";
    sys.dbms_system.get_env (VAR: VAL);
    dbms_output.put_line (Val);
    END;

    Can you please help me in this?
    SQL> var val varchar2(30)
    
    SQL> declare
         var varchar2 (255);
    begin
         var := 'ORACLE_HOME';
         sys.dbms_system.get_env (var, :val);
         dbms_output.put_line ('VAL: ' || :val);
    end;
    /
    VAL: /oracle
    PL/SQL procedure successfully completed.
    
  • I get the error Code: ORA-01008: not all variables

    Hi all

    When I try to insert data into a table through the procedure am getting following error...

    Error code: ORA-01008: not all variables.

    But if I run the same query on the outside passing the parameters it works well. When I run the Insert through the procedure statement, I don't get all the variables related error.
    I'm passing two numbers as parameters. But I don't know why I get this error.

    Could someone suggest me please.



    Thank you
    Sree

    http://lmgtfy.com/?q=ora-01008%3A+not+all+variables+bound.

    Good bye
    DPT

  • error report: ORA-01008: not all variables

    Hello

    I have my tent to run the following query in the form of application of the APEX report:

    Select * from table (convertsqlstmt2table ("SELECT DynamicObject (trans.isrt_tmstmp, trans.start_txn_tmstmp, trans.user_sess_audt_txn_id, trans.lst_txn_tmstmp)
    TRANS user_sess_audt_txn,
    (SELECT DISTINCT user_sess_audt_txn_id
    Of user_audt_txn_obj_log
    WHERE LOWER (own_ref) = LOW (DECODE (: P1_OWNER_NM, NULL, own_ref,: P1_OWNER_NM))
    AND LOWER (obj_nm) = LOW (DECODE (: P1_TABLE_NM, NULL, obj_nm,: P1_TABLE_NM))
    () trans_obj'));

    Function convertsqlstmt2table(sql_stmt VARCHAR2) returns the results of my query, passed a string as a table object. There is probably a problem with: P1_OWNER_NM and: P1_TABLE_NM variables passed from the APEX of text fields. In my case this fields are empty, because I want to get maximum of records.

    I'm getting ORA-01008: not all variables.

    Could you please advice?

    Kind regards
    Beny

    I think we need a few additional quotes:

    NVL('''||:P1_TABLE_NM||''', obj_nm )
    
  • REF Cursor ORA-01008: not all variables

    L_ref_cur OPEN FOR "replace SELECT (a.employee_name,"&"," ') employee_name,
    SELECT (separate papf.person_id
    THE women's wear apps.per_all_people_f
    WHERE papf.person_id = a.incurred_by_person_id
    AND TRUNC (papf.effective_start_date) < = TRUNC(:i_exp_item_date_to)
    AND TRUNC (papf.effective_end_Date) > = TRUNC (to_date(''01-NOV-10'',''DD-MON-RR''))) employee_type
    Apps.pa_expend_items_adjust2_v a.,
    b apps.pay_cost_allocation_keyflex,
    Apps.pa_project_classes_v c,
    Apps.hr_all_organization_units d,
    Apps.pa_projects_all p,
    Apps.pa_project_players_v kk
    WHERE a.project_id = c.project_id (+)
    AND a.project_id = p.project_id
    AND p.project_id = kk.project_id (+)
    AND kk.role = "owner"
    AND kk.end_date_active IS NULL
    AND a.incurred_by_organization_id = d.organization_id
    AND d.cost_allocation_keyflex_id = b.cost_allocation_keyflex_id
    AND c.class_category (+) = (LOB "")
    AND TRUNC (a.expenditure_item_date) BETWEEN TRUNC(:i_exp_item_date_from) AND TRUNC(:i_exp_item_date_to)'
    With the HELP of i_exp_item_date_from, i_exp_item_date_to;




    I get not all variables error at the point where I use *: i_exp_item_date_to * in the select clause. If I remove it with say a hard coded date ex: 1st November 10 it works just fine. Please suggest.

    Thank you
    Abhishek

    Published by: abhi_apps333 on February 18, 2011 06:35

    Published by: abhi_apps333 on February 18, 2011 06:36

    See http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28370/dynamic.htm#BHCGEFCA

    If the dynamic SQL statement does not represent an anonymous PL/SQL block or a CALL statement,
    repetition of placeholder names is insignificant.
    Placeholders are associated with bind arguments in the USING clause by position, not by name.
    
    For example, in the following dynamic SQL statement, the repetition of the name :x is insignificant:
    
    sql_stmt := 'INSERT INTO payroll VALUES (:x, :x, :y, :x)';
    In the corresponding USING clause, you must supply four bind arguments. They can be different; for example:
    
    EXECUTE IMMEDIATE sql_stmt USING a, b, c, d;
    The preceding EXECUTE IMMEDIATE statement executes the following SQL statement:
    
    INSERT INTO payroll VALUES (a, b, c, d)
    To associate the same bind argument with each occurrence of :x, you must repeat that bind argument; for example:
    
    EXECUTE IMMEDIATE sql_stmt USING a, a, b, a;
    The preceding EXECUTE IMMEDIATE statement executes the following SQL statement:
    
    INSERT INTO payroll VALUES (a, a, b, a)
    

    Published by: Dom Brooks on February 18, 2011 14:43

  • Re: ORA-01008: not all variables

    Hello.

    I try to analyze this side of Toad sql statement and works very well with 3 settings in .net with oracle.dataccess provider.

    var OdpConn = new OracleConnection ("Data Source = xe; User Id = test; Password = test");

    var sqlselect = @ "SELECT s.id,

    s.EPONYMIA,

    Kat. DNSH,

    Kat. PAOLO,

    s.EPAGGELMA,

    s.AFM,

    Kat. THL1,

    NVL (tz.res, 0) AS res

    S SUPL.

    SUPL_KATASTHMATA Kat,

    (SELECT SUM (RES) AS res, ID_PELATH

    FROM (SELECT ID_PELATH,

    CR_DATE,

    CASE

    WHEN-1 =: p3

    THEN

    (PEL_XREOSI - PEL_PISTOSI) * SUNOLO

    WHEN 0 =: p3

    THEN

    (PEL_XREOSI - PEL_PISTOSI)

    * (AJIA_FPA_0 + KATHARO_0)

    WHEN = 1: p3

    THEN

    (PEL_XREOSI - PEL_PISTOSI)

    * (AJIA_FPA_1 + KATHARO_1)

    WHEN 2 =: p3

    THEN

    (PEL_XREOSI - PEL_PISTOSI)

    * (AJIA_FPA_2 + KATHARO_2)

    on the other

    0

    END

    RES

    OF ALL_PARASTATIKA

    JOIN INTERNAL P_L_M

    WE (ALL_PARASTATIKA.ID = ID_PARASTATIKOY)

    JOIN INTERNAL ANALISI_ANA_FPA_GR_L2

    WE (P_L_M.ID = ID_MASTER)

    WHERE THERE IS NO

    (SELECT 'x'

    OF P_L_MA

    WHERE P_L_MA.ID_MASTER = P_L_M.id)

    UNION ALL

    SELECT ID_PELATH,

    CR_DATE,

    CASE

    WHEN-1 =: p3

    THEN

    (PEL_XREOSI - PEL_PISTOSI) * SUNOLO

    WHEN 0 =: p3

    THEN

    (PEL_XREOSI - PEL_PISTOSI)

    * (AJIA_FPA_0 + KATHARO_0)

    WHEN = 1: p3

    THEN

    (PEL_XREOSI - PEL_PISTOSI)

    * (AJIA_FPA_1 + KATHARO_1)

    WHEN 2 =: p3

    THEN

    (PEL_XREOSI - PEL_PISTOSI)

    * (AJIA_FPA_2 + KATHARO_2)

    on the other

    0

    END

    RES

    OF ALL_PARASTATIKA

    JOIN INTERNAL P_X_M

    WE (ALL_PARASTATIKA.ID = ID_PARASTATIKOY)

    JOIN INTERNAL ANALISI_ANA_FPA_GR_X2

    WE (P_X_M.ID = ID_MASTER)

    WHERE THERE IS NO

    (SELECT 'x'

    OF P_X_MA

    WHERE P_X_MA.ID_MASTER = P_X_M.id))

    WHEN TRUNC (CR_DATE) BETWEEN (: d1) AND TRUNC (: d2)

    TZ GROUP BY ID_PELATH)

    WHERE s.ID = Kat.ID_PROMHTHEYTH

    AND S.ID = Tz.ID_PELATH (+)

    AND KAT.IS_EDRA = 1

    AND S.IS_DEFAULT_L = 0 ";

    OdpConn.Open ();

    var orclAd = new OracleDataAdapter (sqlselect, OdpConn);

    orclAd.SelectCommand.Parameters.Add (": p3", 1);

    orclAd.SelectCommand.Parameters.Add ("': d1 ', DateTime.Today.AddDays (-10)");

    orclAd.SelectCommand.Parameters.Add (": d2", DateTime.Today);

    DataTable dt = new DataTable();

    orclAd.Fill (dt);

    dataGridView1.DataSource = dt;

    and it throws ora 1008 exception

    Try the same code with devart provider and it goes very well.

    var sqlselect = @ "SELECT s.id,

    s.EPONYMIA,

    Kat. DNSH,

    Kat. PAOLO,

    s.EPAGGELMA,

    s.AFM,

    Kat. THL1,

    NVL (tz.res, 0) AS res

    S SUPL.

    SUPL_KATASTHMATA Kat,

    (SELECT SUM (RES) AS res, ID_PELATH

    FROM (SELECT ID_PELATH,

    CR_DATE,

    CASE

    WHEN-1 =: p3

    THEN

    (PEL_XREOSI - PEL_PISTOSI) * SUNOLO

    WHEN 0 =: p3

    THEN

    (PEL_XREOSI - PEL_PISTOSI)

    * (AJIA_FPA_0 + KATHARO_0)

    WHEN = 1: p3

    THEN

    (PEL_XREOSI - PEL_PISTOSI)

    * (AJIA_FPA_1 + KATHARO_1)

    WHEN 2 =: p3

    THEN

    (PEL_XREOSI - PEL_PISTOSI)

    * (AJIA_FPA_2 + KATHARO_2)

    on the other

    0

    END

    RES

    OF ALL_PARASTATIKA

    JOIN INTERNAL P_L_M

    WE (ALL_PARASTATIKA.ID = ID_PARASTATIKOY)

    JOIN INTERNAL ANALISI_ANA_FPA_GR_L2

    WE (P_L_M.ID = ID_MASTER)

    WHERE THERE IS NO

    (SELECT 'x'

    OF P_L_MA

    WHERE P_L_MA.ID_MASTER = P_L_M.id)

    UNION ALL

    SELECT ID_PELATH,

    CR_DATE,

    CASE

    WHEN-1 =: p3

    THEN

    (PEL_XREOSI - PEL_PISTOSI) * SUNOLO

    WHEN 0 =: p3

    THEN

    (PEL_XREOSI - PEL_PISTOSI)

    * (AJIA_FPA_0 + KATHARO_0)

    WHEN = 1: p3

    THEN

    (PEL_XREOSI - PEL_PISTOSI)

    * (AJIA_FPA_1 + KATHARO_1)

    WHEN 2 =: p3

    THEN

    (PEL_XREOSI - PEL_PISTOSI)

    * (AJIA_FPA_2 + KATHARO_2)

    on the other

    0

    END

    RES

    OF ALL_PARASTATIKA

    JOIN INTERNAL P_X_M

    WE (ALL_PARASTATIKA.ID = ID_PARASTATIKOY)

    JOIN INTERNAL ANALISI_ANA_FPA_GR_X2

    WE (P_X_M.ID = ID_MASTER)

    WHERE THERE IS NO

    (SELECT 'x'

    OF P_X_MA

    WHERE P_X_MA.ID_MASTER = P_X_M.id))

    WHEN TRUNC (CR_DATE) BETWEEN (: d1) AND TRUNC (: d2)

    TZ GROUP BY ID_PELATH)

    WHERE s.ID = Kat.ID_PROMHTHEYTH

    AND S.ID = Tz.ID_PELATH (+)

    AND KAT.IS_EDRA = 1

    AND S.IS_DEFAULT_L = 0 ";

    oracleConnection1.Open ();

    Announces var = new Devart.Data.Oracle.OracleDataAdapter (sqlselect, oracleConnection1);

    ad. SelectCommand.Parameters.Add (": p3", 1);

    ad. SelectCommand.Parameters.Add ("': d1 ', DateTime.Today.AddDays (-10)");

    ad. SelectCommand.Parameters.Add (": d2", DateTime.Today);

    D2 DataTable = new DataTable();

    ad. Fill (D2);

    dataGridView2.DataSource = d2;

    any suggestions how to fix this bug?

    Concerning

    The most likely culprit is that you use bind ODP.NET by post (by default) for binding parameter. If this is the case, the names of parameters are ignored when being bound to the SQL statement. Only the order of the questions.

    If you want to use the connection by name with ODP.NET, then set OracleCommand.BindByName = true to executing this SQL statement.

  • Not all variables

    I don't know why I am getting below error.

    ORA-01008: not all variables
    "ORA-06512: at VENDORS_GRAPH_FOR_ITEMS_01 ', line 101
    ORA-06512: at line 9 level


    PROCEDURE vendors_graph_for_items_01)
    p_proposalNM IN VARCHAR2,
    p_result ON SYS_REFCURSOR)
    IS
    v_letting VARCHAR2 (40);
    v_Order VARCHAR2 (40);
    v_prop VARCHAR2 (40);
    lv_sql VARCHAR2 (32767): = NULL;
    BEGIN

    lv_sql: =.
    ' SELECT DISTINCT
    R.DESCR,
    To_char ((I.QTY * I.PRICE), "$999,999,999.00") ';

    FOR lv_rec IN (SELECT DISTINCT R.VENDOR, V.BIDTOTAL
    Of
    )


    LOOP
    lv_sql: =.
    lv_sql
    || ', TO_CHAR (MAX (DECODE (TRIM (V.VENDOR), "')))
    || TRIM (lv_rec. NAME OF THE SELLER
    || (((', B.AMOUNT)), "$999,999,999.00") AS "" ".
    || (Lv_rec.vENDOR_ TRIM
    || '  "';
    END LOOP;
    lv_sql: =.
    lv_sql
    || '

    ,
    (SELECT DISTINCT
    OFFERS. EXTENDEDAMOUNT

    OF proposalitem.

    ) Lowbid


    THE PROPOSAL P.
    PROPOSALSECTION S

    WHERE P.PROpid = S.PROPid

    AND L.LEt =: B1
    AND P.CALL =: B2

    R.ITEM GROUP,
    P.PROP,

    Order of lowbid desc';

    -DBMS_OUTPUT.put_line (lv_sql);

    P_result OPEN FOR lv_sql AID v_letting, v_Order;
    END;
    /

    Hello

    Variables with colon(:) que vous avez dans votre requête sont considérés comme deles de variables bind et vous devez fournir la valeur d'initialisation pour chacun d'eux (: b1,: b2,: b3) when using the query.)

    In your case, you initialize two of them with the help of the clause. This is the reason why the query to run successfully when you comment on one of them.

    Cheerz,

    Stako

  • ORA-01008 that not all variables are related

    Hi I have a question for follwing procedure
    DECLARE 
    V_ERR_CODE VARCHAR2(1);
    V_ERR_DESC VARCHAR2(250);
    V_CC_NO VARCHAR2(20);
    STR VARCHAR2(4000);
    CURSOR C1 IS
       SELECT *  FROM TABLE_S;
    
    C1_REC C1%ROWTYPE;
    
    BEGIN
    STR := 'INSERT INTO P_1(A,B,C) VALUES(c1_rec.cc_no, :V_ERR_CODE, :V_ERR_DESC)';
    FOR C1_REC IN C1
    LOOP
    IF CHKSTR_CHG_PRIV_IND_VAL(C1_REC.C1) = 1 THEN
    V_ERR_CODE := 'O';
    V_ERR_DESC := 'CHARGING  NOT IN Y,N';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    
    IF CHKSTR_NULL_VAL (C1_REC.c2) = 1 THEN
    V_ERR_CODE := 'M';
    V_ERR_DESC := 'OPEN DATE  IS WRONG';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    
    IF CHKSTR_NULL_VAL (C1_REC.SSN) = 1 THEN
    V_ERR_CODE := 'M';
    V_ERR_DESC := 'SOCIAL SECURITY NUMBER IS NULL';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    IF CHKSTR_NULL_VAL (C1_REC.FIRST_NAME) = 1 THEN
    V_ERR_CODE := 'O';
    V_ERR_DESC := 'FIRST NAME IS WRONG';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    
    IF CHKSTR_NULL_VAL (C1_REC.SURNAME) = 1 THEN
    V_ERR_CODE := 'M';
    V_ERR_DESC := 'LAST NAME IS WRONG';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    IF CHKSTR_LOST(C1_REC.c3) = 1 THEN
    V_ERR_CODE := 'O';
    V_ERR_DESC := 'LOST  IS WRONG';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    IF CHKSTR_NULL_VAL (C1_REC.DOB) = 1 THEN
    V_ERR_CODE := 'O';
    V_ERR_DESC := 'DATE OF BRITH IS NULL';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    
    
    IF CHKSTR_CC_NO_LENGTH (C1_REC.CC_NO) = 1 THEN
    V_ERR_CODE := 'M';
    V_ERR_DESC := 'CREDIT CARD LENGTH IS WRONG';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    
    IF CHKSTR_NUMERIC_VAL  (C1_REC.CC_NO) = 1 THEN
    V_ERR_CODE := 'M';
    V_ERR_DESC := 'CREDIT CARD IS NON NUMERIC';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    IF CHKSTR_NUMERIC_VAL  (C1_REC.SSN) = 1 THEN
    V_ERR_CODE := 'M';
    V_ERR_DESC := 'SOCIAL SECURITY NUMBER IS NON NUMERIC';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    IF CHKSTR_SSN_LENGTH (C1_REC.SSN) = 1 THEN
    V_ERR_CODE := 'M';
    V_ERR_DESC := 'SOCIAL SECURITY NUMBER LENGTH IS WRONG';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    IF CHKSTR_CC_NO_VAL(C1_REC.CC_NO) = 1 THEN
    V_ERR_CODE := 'M';
    V_ERR_DESC := 'CREDIT CARD <> 4264 AND <> 4313';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    IF CHKSTR_DATE(C1_REC.DOB) = 1 THEN
    V_ERR_CODE := 'M';
    V_ERR_DESC := 'DATE OF BIRTH IS WRONG';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    IF CHKSTR_DATE(C1_REC.OPEN_DATE) = 1 THEN
    V_ERR_CODE := 'M';
    V_ERR_DESC := 'OPEN DATE (ISSUE DATE) IS WRONG';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    
    
    IF CHKSTR_DATE(C1_REC.c4) = 1 THEN
    V_ERR_CODE := 'M';
    V_ERR_DESC := ' CHANGE DATE IS WRONG';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    
    IF CHKSTR_DATE(C1_REC.c5) = 1 THEN
    V_ERR_CODE := 'M';
    V_ERR_DESC := 'CODE CHANGE DATE IS WRONG';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    
    IF CHKSTR_DATE(C1_REC.c6) = 1 THEN
    V_ERR_CODE := 'M';
    V_ERR_DESC := 'REISSUE DATE IS WRONG';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    
    IF CHKSTR_DATE(C1_REC.dDATE) = 1 THEN
    V_ERR_CODE := 'M';
    V_ERR_DESC := ' PAYMENT DATE IS WRONG';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    
    IF CHKSTR_DATE(C1_REC.DATE) = 1 THEN
    V_ERR_CODE := 'M';
    V_ERR_DESC := 'LAST ACTIVITY DATE IS WRONG';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    IF CHKSTR_DATE(C1_REC.c7) = 1 THEN
    V_ERR_CODE := 'M';
    V_ERR_DESC := ' PAYMENT DUE DATE IS WRONG';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    IF CHKSTR_DATE(C1_REC.c8) = 1 THEN
    V_ERR_CODE := 'M';
    V_ERR_DESC := 'CONVERSION DATE IS WRONG';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    
    IF CHKSTR_DATE(C1_REC.c9) = 1 THEN
    V_ERR_CODE := 'M';
    V_ERR_DESC := 'TRANSFER DATE IS WRONG';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    IF CHKSTR_NUMBER (C1_REC.LIMIT) = 1 THEN
    V_ERR_CODE := 'M';
    V_ERR_DESC := ' LIMIT IS WRONG';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    
    IF CHKSTR_NUMBER (C1_REC.TOTAL) = 1 THEN
    V_ERR_CODE := 'M';
    V_ERR_DESC := 'TRANSACTION TOTAL  IS WRONG';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    IF CHKSTR_NUMBER (C1_REC.c10) = 1 THEN
    V_ERR_CODE := 'M';
    V_ERR_DESC := 'c10 TOTAL IS WRONG';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    IF CHKSTR_NUMBER (C1_REC.c11) = 1 THEN
    V_ERR_CODE := 'M';
    V_ERR_DESC := 'c11 TRANSACTION IS WRONG';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    IF CHKSTR_NUMBER (C1_REC.c12) = 1 THEN
    V_ERR_CODE := 'M';
    V_ERR_DESC := 'c12 TRANSACTION IS WRONG';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    IF CHKSTR_NUMBER (C1_REC.c13) = 1 THEN
    V_ERR_CODE := 'M';
    V_ERR_DESC := 'c13 TOTAL IS WRONG';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    IF CHKSTR_NUMBER (C1_REC.AMT) = 1 THEN
    V_ERR_CODE := 'M';
    V_ERR_DESC := ' AMOUNT IS WRONG';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    IF CHKSTR_NUMBER (C1_REC.BALANCE) = 1 THEN
    V_ERR_CODE := 'M';
    V_ERR_DESC := ' BALANCE IS WRONG';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    IF CHKSTR_NUMBER (C1_REC.CARDS) = 1 THEN
    V_ERR_CODE := 'M';
    V_ERR_DESC := 'NUMBER OF CARDS IS WRONG';
    EXECUTE IMMEDIATE STR;
    END IF;
    
    IF CHKSTR_NUMBER (C1_REC.c14_CARDS) = 1 THEN
    V_ERR_CODE := 'M';
    V_ERR_DESC := 'c_14 NUMBER OF CARDS  IS WRONG';
    EXECUTE IMMEDIATE STR;
    END IF;
    COMMIT;
    END LOOP;
    END;
    I get following error when I try to run
    ORA-01008 that not all variables are related
    Table (p)
    a varchar (20),
    b varchar (1).
    c varchar2 (250))

    also there are 50 columns to 3 not only inserted but the column values for the other will be the same for all conditions. then to test, I added only 3 columns.

    Please help me how can I solve this problem...
    Thank you very much

    Published by: user10647455 on January 14, 2009 14:04

    Change your code to:
    ...
    EXECUTE IMMEDIATE STR WITH THE HELP OF V_ERR_CODE, V_ERR_DESC;
    ...

    Explanation:
    Dynamic SQL bind variables using variable names.
    in your case
    STR: = "INSERT INTO P_1 (A, B, C) VALUES (c1_rec.cc_no,: V_ERR_CODE,: V_ERR_DESC)";
    does not say that the variables: V_ERR_CODE,: V_ERR_DESC are automatically linked.
    In dynamic SQL variable binding is done using the syntax 'USE '.

    Look at:
    http://download.Oracle.com/docs/CD/B19306_01/AppDev.102/b14261/dynamic.htm#LNPLS01102

    HTH
    Thomas

Maybe you are looking for