Oracle Stored Procedure not working

Hi Guy's,
I want to connect directly from Visual Composer to Oracle Database 10.2.x.x using Oracle Stored Procedure and JDBC System to demonstrate how easy you can show data vith VC. So I have created a simple Oracle Stored Procedure, a JDBC System with a valid alias, User mapping (Portal User --> Oracle User).
When I invoke the stored procedure I receive the following error: "Portal request Failed (Could not execute stored procedure)". The Stored Procedure is working fine in Oracle iSQL*Plus.
Any idea's?
Thanks,
Ridouan

Hi,
did you use the portal JDBC as it is described here:
<a href="https://wiki.sdn.sap.com/wiki/display/VC/Cannotseetables">https://wiki.sdn.sap.com/wiki/display/VC/Cannotseetables</a>
Best Regards,
Marcel

Similar Messages

  • Stored procedures not working after migrating from 8i to 10g

    The Oracle stored procedures are generating an error following upgrading a ColdFusion web application from Oracle8i to 10g release 2.
    "Error","jrpp-102","05/28/08","13:35:09","insite","Error Executing Database Query.[Macromedia][Oracle JDBC Driver][Oracle]ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to 'S_DEFAULT_LETTER_SETTING' ORA-06550: line 1, column 7: PL/SQL: Statement ignored The specific sequence of files included or processed is: new_letter.cfm, line: 63 "
    I've been looking at this for about 3 days with a colleague in the office. We can resolve this be recreating the stored procedure with a new name (e.g. adding the suffix "_v2"). Its not really practical for us to do this throughout the system. Anyone know what the root cause might be?
    I'm currently connecting to Oracle10g using SQLTools and Oracle8 client. I've yet to upgrade to Oracle10 client.
    I've tried selecting all the stored procedures and re-compiling them but it appeared to make no difference.

    The Oracle stored procedures are generating an error following upgrading a ColdFusion web application from Oracle8i to 10g release 2.
    "Error","jrpp-102","05/28/08","13:35:09","insite","Error Executing Database Query.[Macromedia][Oracle JDBC Driver][Oracle]ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to 'S_DEFAULT_LETTER_SETTING' ORA-06550: line 1, column 7: PL/SQL: Statement ignored The specific sequence of files included or processed is: new_letter.cfm, line: 63 "
    I've been looking at this for about 3 days with a colleague in the office. We can resolve this be recreating the stored procedure with a new name (e.g. adding the suffix "_v2"). Its not really practical for us to do this throughout the system. Anyone know what the root cause might be?
    I'm currently connecting to Oracle10g using SQLTools and Oracle8 client. I've yet to upgrade to Oracle10 client.
    I've tried selecting all the stored procedures and re-compiling them but it appeared to make no difference.

  • MultiSelect Parameter with Stored Procedure not working

    I am using Crystal Reports 2008 and SQL Server 2008. I am using a stored procedure which works with a multiselect in SQL side. I am using a string to table utility function in the where clause with the In statment like below:
    WHERE FORMULARY_ID in
    --(@FORMULARY_ID)
      (SELECT Extractedtext
       FROM ClarityTST.[rpt].[LHfn_StringToTable]( @FORMULARY_ID, ',') ) 
    When I try to use the stored procedure I get an error message:
    "The stored procedure cannot accept multiple values. Please ensure that the multiple value is set to False:"
    I would like to use it with multiple parameters.

    Crystal uses arrays to handle multiple values.  As far as I'm aware, there is no way to get a multi-valued report parameter into SQL (command or SP) directly.  In the past, I have used a "shell" main report that gets the parameters, used Join() to concatenate the selected values into a single string, then pass that to the "main" subreport, and into its SQL or SP.  The SQL than would need to find the database field in the string.  If you make the string passed to the subreport valid SQL for an IN clause, you could do it that way, too.
    HTH,
    Carl

  • Exec stored procedure from another stored procedure - not working

    Hey, we've got a bunch of .sql files that we run, and some of them are stored procedures. Our programs call the stored procedures from within the .sql files and that works, but we've tried calling a stored procedure from another stored procedure and it won't compile. The syntax looks the same, and we can run that second stored procedure from the SQL*Plus command prompt just fine, so we know it's in there. It doesn't matter whether we type exec or execute in the first stored procedure--it still gives us a compilation error. Here's the relevant bit of the code:
            delete CMHISTORYINDEX;
            commit;
            exec SP_DAILY_TOTAL;
    END SP_DAILY_CLOSING;
    /Here's where we go into SQL*Plus and try to compile it:
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - Production
    With the Partitioning, Real Application Clusters, OLAP and Data Mining options
    SQL> @sp_daily_closing.sql
    Warning: Procedure created with compilation errors.
    SQL> show errors
    Errors for PROCEDURE SP_DAILY_CLOSING:
    LINE/COL ERROR
    34/7     PLS-00103: Encountered the symbol "SP_DAILY_TOTAL" when expecting
             one of the following:
             := . ( @ % ;
             The symbol ":=" was substituted for "SP_DAILY_TOTAL" to continue.
    SQL>We've also tried changing SP_DAILY_CLOSING to lowercase, but it doesn't seem to help. As I mentioned before, we can type that same sort of thing in .sql files that are not stored procedures and the exec is compiled fine and runs correctly. What are we doing wrong?

    In the stored procedure remove "exec" :
            delete CMHISTORYINDEX;
            commit;
            SP_DAILY_TOTAL;
    END SP_DAILY_CLOSING;

  • JDBC stored procedure not working in Weblogic 12.1.3

    Hi,
    We are migrating from WLS 12.1.2 to 12.1.3.
    We have a JDBC stored procedure which used to work correctly under 12.1.2. I understand that 12.1.2 uses ojdbc5/ojdbc6 jars (11.2.0.x). After migrating to 12.1.3, the stored procedure is not working.
    We have narrowed it down to the different between 12.1.2 using ojdbc5/6 and 12.1.3 using ojdbc7 jars, though we do not understand what the difference here is.
    Connection connection = getConnection();
    CallableStatement callableStatement = connection.prepareCall("{call RECEIPT_LOG (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}");
    callableStatement.registerOutParameter("PIO_RECEIPT_LOG_ID", java.sql.Types.INTEGER);
    callableStatement.setLong("PIO_RECEIPT_LOG_ID", 0);
    callableStatement.setString("PIO_DRAWER_NAME", request.getDrawerName());
    callableStatement.setString("PIO_DRAWER_FIRST_NAME", request.getDrawerFirstName());
    callableStatement.setString("PIO_DRAWER_OTHER_NAMES", "");
    callableStatement.setString("PIO_DRAWER_STREET_NO", "");
    callableStatement.setString("PIO_DRAWER_STREET", "");
    callableStatement.setString("PIO_DRAWER_LOCALITY", "");
    callableStatement.setLong("PIO_DRAWER_POSTCODE", 0);
    callableStatement.setString("PI_PAYMENT_TYPE", request.getPiPaymentType());
    callableStatement.setLong("PI_APPLICATION_ID", request.getApplicationId());
    callableStatement.setString("PI_PRIMARY_ID", request.getPiPrimaryId());
    callableStatement.setString("PI_SECONDARY_ID", request.getPiSecondaryId());
    callableStatement.setDouble("PI_AMOUNT", request.getPiAmount());
    callableStatement.setInt("PI_TAX_AMOUNT", 0);
    callableStatement.setNull("PI_VPC_TXNRESPONSECODE", java.sql.Types.VARCHAR);
    callableStatement.setInt("PI_VPC_TRANSACTIONNO", 0);
    callableStatement.setString("PI_VPC_MESSAGE", "");
    callableStatement.setString("PI_VPC_ACQRESPONSECODE", "");
    callableStatement.setString("PI_VPC_RECEIPTNO", "");
    callableStatement.setString("PI_VPC_BATCHNO", "");
    callableStatement.setString("PI_VPC_CARD", "");
    callableStatement.setString("PI_VPC_MERCHTXNREF", "");
    callableStatement.setString("PI_VPC_MERCHANT", "");
    callableStatement.setString("PI_VPC_ORDERINFO", "");
    callableStatement.setInt("PI_VPC_AMOUNT", 0);
    callableStatement.setString("PI_VPC_AUTHORIZEID", "");
    callableStatement.registerOutParameter("PO_RECEIPT_NO", java.sql.Types.VARCHAR);
    callableStatement.registerOutParameter("PO_SOURCE_ID", java.sql.Types.INTEGER);
    callableStatement.registerOutParameter("PO_PAYMENT_METHOD_TEXT", java.sql.Types.VARCHAR);
    callableStatement.registerOutParameter("PO_CREATE_COMMENT", java.sql.Types.VARCHAR);
    callableStatement.registerOutParameter("PO_ERROR_MESSAGE", java.sql.Types.VARCHAR);
    boolean isSuccessful = callableStatement.execute();
    Long receiptLogId = callableStatement.getLong("PIO_RECEIPT_LOG_ID");
    Here, when the callableStatement.execute() is fired, the isSuccessful is false and the output parameter receiptLogId is 0
    Any help appreciated.
    Regards,
    Rahul

    Hi All,
    We still haven't figured out what the problem is with JDBC when using ojdbc7.jar but, as an alternate solution we ported the code to Spring JDBC and got it working.
    Regards,
    Rahul

  • Insert Stored Procedure not working

    I'm trying to insert some data, using a stored procedure. I cannot see what seems to be the problem in my procedure.
    PROCEDURE SP_INSPROCDETAILS(I_INITD IN INITIATIVEMASTER.INITIATIVEID%TYPE,
    -- I_INITD = 5414
    I_CNTID IN COUNTRYMASTER.COUNTRYID%TYPE,
    -- I_CNTID = 5
    I_USERID IN USERMASTER.USERID%TYPE,
    -- I_USERID = 5405
    I_DETAIL IN VARCHAR2,
    -- STRING THATWILL COME FROM UI
    -- I_DETAIL = #10414~1234567890~1234567890~test-PONumber~1~1~1~5128~Executor for PO1
    I_DELIMITER_FIRST IN VARCHAR2, -- '~'
    I_DELIMITER_SECOND IN VARCHAR2, - '#'
    O_ERRCODE OUT VARCHAR2,
    O_ERRMSG OUT VARCHAR2)
    IS
    ARR_STRING VAR_TAB;
    ARR_STRING2 VAR_TAB;
    V_ID NUMBER;
    VAR_ESTIMATEDDATE VARCHAR2(500);
    VAR_DODATE VARCHAR2(500);
    V_INITID INITIATIVEDETAILS.INITDETAILSID%TYPE;
    V_INTRANET USERMASTER.INTRANETID%TYPE;
    V_CNT NUMBER;
    V_CREATED PROCUREMENTDETAILS.CREATEDBY%TYPE;
    V_DATE PROCUREMENTDETAILS.CREATEDDATE%TYPE;
    VAR_FLOAT PROCUREMENTDETAILS.POPRICE%TYPE;
    VAR_REPLACE VARCHAR2(500);
    BEGIN
    ---SELECT INITDETAILSID FROM INITIATIVE AND COUNTRY
    SELECT INTD.INITDETAILSID
    INTO V_INITID
    FROM INITIATIVEDETAILS INTD
    WHERE INTD.INITIATIVEID = I_INITD AND ( INTD.COUNTRYID = I_CNTID
    OR INTD.COUNTRYID IS NULL);
    --SELECT INTRANETID FROM USERID
    SELECT U.INTRANETID
    INTO V_INTRANET
    FROM USERMASTER U
    WHERE U.USERID = I_USERID;
    ---CHECKING IF DATA IS PRESENT IN PROCUREMENT TABLE IF PRESNT THEN DELETE AND REINSERT IT
    SELECT COUNT(*)
    INTO V_CNT
    FROM PROCUREMENTDETAILS PC
    WHERE PC.INITDETAILSID = V_INITID;
    IF V_CNT > 0 THEN
    --TAKING THE CREATEDBY AND CREATEDDATE FOR THAT INITIATIVEDETAILSID
    SELECT DISTINCT PC.CREATEDBY, PC.CREATEDDATE
    INTO V_CREATED, V_DATE
    FROM PROCUREMENTDETAILS PC
    WHERE PC.INITDETAILSID = V_INITID;
    DELETE FROM PROCUREMENTDETAILS PC WHERE PC.INITDETAILSID = V_INITID;
    ARR_STRING := PKG_COMMON.SPLIT_LIST_STRING(I_DELIMITER => I_DELIMITER_SECOND,
    I_STRING => I_DETAIL);
    FOR I IN 1 .. ARR_STRING.COUNT LOOP
    IF ARR_STRING(I) IS NOT NULL THEN
    ARR_STRING2 := PKG_COMMON.SPLIT_LIST_STRING(I_DELIMITER => I_DELIMITER_FIRST,
    I_STRING => ARR_STRING(I));
    VAR_DODATE :=ARR_STRING2(3);
    VAR_ESTIMATEDDATE :=ARR_STRING2(8);
    VAR_FLOAT := REPLACE (ARR_STRING2(5),',',NULL) ;
    VAR_REPLACE := REPLACE (ARR_STRING2(6),',',NULL);
    SELECT SEQ_PROCUREMENTDETAILS.NEXTVAL INTO V_ID FROM DUAL;
    INSERT INTO PROCUREMENTDETAILS
    (PROCUREMENTID,
    INITDETAILSID,
    POSMID,
    PONUMBER,
    GL,
    IO,
    POQTY,
    POPRICE,
    POVALUE,
    SUPPLIERID,
    EXECUTOR,
    CREATEDBY,
    CREATEDDATE,
    MODIFIEDBY,
    MODIFIEDDATE)
    VALUES
    (V_ID,
    V_INITID,
    ARR_STRING2(1),
    ARR_STRING2(2),
    ARR_STRING2(3),
    ARR_STRING2(4),
    ARR_STRING2(5),
    ARR_STRING2(6),
    ARR_STRING2(7),
    ARR_STRING2(8),
    ARR_STRING2(9),
    V_CREATED,
    V_DATE,
    V_INTRANET,
    SYSDATE);
    VAR_FLOAT :=NULL;
    END IF ;
    END LOOP;
    ELSE
    ARR_STRING := PKG_COMMON.SPLIT_LIST_STRING(I_DELIMITER => I_DELIMITER_SECOND,
    I_STRING => I_DETAIL);
    FOR I IN 1 .. ARR_STRING.COUNT LOOP
    IF ARR_STRING(I) IS NOT NULL THEN
    ARR_STRING2 := PKG_COMMON.SPLIT_LIST_STRING(I_DELIMITER => I_DELIMITER_FIRST,
    I_STRING => ARR_STRING(I));
    VAR_DODATE :=ARR_STRING2(3);
    VAR_ESTIMATEDDATE :=ARR_STRING2(8);
    VAR_FLOAT := REPLACE (ARR_STRING2(5),',',NULL) ;
    VAR_REPLACE := REPLACE (ARR_STRING2(6),',',NULL);
    SELECT SEQ_PROCUREMENTDETAILS.NEXTVAL INTO V_ID FROM DUAL;
    INSERT INTO PROCUREMENTDETAILS
    (PROCUREMENTID,
    INITDETAILSID,
    POSMID,
    PONUMBER,
    GL,
    IO,
    POQTY,
    POPRICE,
    POVALUE,
    SUPPLIERID,
    EXECUTOR,
    CREATEDBY,
    CREATEDDATE,
    MODIFIEDBY,
    MODIFIEDDATE)
    VALUES
    (V_ID,
    V_INITID,
    ARR_STRING2(1),
    ARR_STRING2(2),
    ARR_STRING2(3),
    ARR_STRING2(4),
    ARR_STRING2(5),
    ARR_STRING2(6),
    ARR_STRING2(7),
    ARR_STRING2(8),
    ARR_STRING2(9),
    V_CREATED,
    V_DATE,
    V_INTRANET,
    SYSDATE);
    END IF ;
    END LOOP;
    END IF ;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    O_ERRCODE := 'E001';
    O_ERRMSG := 'ERROR ' || TO_CHAR(SQLCODE) || ': ' || SQLERRM;
    WHEN OTHERS THEN
    O_ERRCODE := 'E005';
    O_ERRMSG := 'ERROR ' || TO_CHAR(SQLCODE) || ': ' || SQLERRM;
    END SP_INSPROCDETAILS;

    Hi,
    I cannot see what seems to be the problem in my procedure.Hmm.. i cannot see the procedure at all.
    Next time please format your code.
    And you should have mentioned the problem as My procedure does not compile
    When you say problem there are N possibilities (n tends to infinity)
    Anyway, in your case
    I_DELIMITER_SECOND IN VARCHAR2, - '#'What is this doing in teh parameters?
    Either make it as default or comment it completely. like this
    I__DELIMITER_SECOND IN VARCHAR2, -- '#'Hope that helps.
    Regards,
    Bhushan

  • CASE in Stored Procedure Not Working

    Why is this not working?
    SET NOCOUNT ON;
    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
    SELECT
    dbo.Components.*,
    CASE ISNULL(dbo.Components.MarkupPrice,0)
    WHEN 0 THEN dbo.Components.Quantity * dbo.Components.UnitCost.
    ELSE dbo.Components.Quantity * dbo.Components.MarkupPrice END AS ExtCost,
    FROM ...
    Error Message
    Msg 156, Level 15, State 1, Procedure procGetReportSpecBook, Line 64
    Incorrect syntax near the keyword 'ELSE'.
    Thanks!

    Please try below instead of THE case when in Your code:
    Case when ISNULL(dbo.components.markupprice,0)= 0
    THEN dbo.components.quantity*dbo.components.unitcost
    Else dbo.components.quantity*dbo.components.markupprice
    End as ExtCost
    OR
    Case when COALESCE(dbo.components.markupprice,0)= 0
    THEN dbo.components.quantity*dbo.components.unitcost
    Else dbo.components.quantity*dbo.components.markupprice
    End as ExtCost
    OR
    Case when dbo.components.markupprice IS NULL
    THEN dbo.components.quantity*dbo.components.unitcost
    Else dbo.components.quantity*dbo.components.markupprice
    End as ExtCost
    Regards, Reshma
    Please Vote as Helpful if an answer is helpful and/or Please mark Proposed as Answer or Mark As Answer when question is answered

  • Oracle Stored Procedure Not Accepting Comma delimited values in database

    I have a stored procedure which does the following, declares variables and assigns values retrieved from a parameter temp_table database to each variable, then it reads column headings from a master table. Using the variables assigned to each parameter from the temp_table as a filter, the rows from the MASTER TABLE are finally output by the procedure. The stored procedure works fine when dealing with single value string values passed from the parameter temp_table.
    The problem comes in when multiple values are selected and stored in the database parameter field as a comma separated string, eg. A045, A012
    So, the strored procedure has been modified to use a function to split the string into separate values: 'A045' and 'A012'. So that: A045, A012 from the database will be returned to the stored procedure variable as *('A045', 'A012')* . When testing the stored procedure using the static values *('A045', 'A012')* , data is returned.
    eg. EMPLOYEE_MASTER.CODE IN ('*A045*', '*A012*') will return results
    However, when *('A045', 'A012')* is dynamically concatenated from the function and assigned to variable:
    paramCode := split_str(paramCode) with paramCode eventually being passed: *('A045', 'A012')*
    to become:
    EMPLOYEE_MASTER.CODE IN (paramCode)
    then NO DATA is returned.
    I am stuck and don't know what the problem is. If anyone has any ideas, please feel free to help. I have included the Actual Stored Procedure below for a better understanding.
    --------------------------------------------- STORED PROCEDURE-------------------------------------------------------
    create or replace
    PROCEDURE GETEMPLOYEEDATA
    ( sesId IN VARCHAR2,
    l_cursor in out sys_refcursor
    ) is
    compCode varchar(200);
    businessUnit varchar(200);
    locCode varchar(200);
    hrDeptID varchar(200);
    glDept varchar(200);     plat varchar(200);
    deptFunc varchar(200);     empType varchar(200);
    unionCode varchar(200);     jobCode varchar(200);     
    careerLvl varchar(200);     
    empStatus varchar(200);
    zid varchar(200);
    superID varchar(200);
    counter varchar(200) ;
    token_index number;
    --v_errm VARCHAR2(256);
    BEGIN
    dbms_output.put_line('Start of BEGIN');
    /* Counter to get number of Unique Employee ID based on valid Session ID */
    select count(*) into counter from XXCCHRWEB.hr_web_sessionid_tmp where parameter_20=sesId;
    open l_cursor for SELECT counter EMPLOYEE_ID, '' LAST_NAME,
    '' FIRST_NAME from dual;
    dbms_output.put_line('OPENING FIRST CURSOR');
    /* If no valid session ID returned then error gently */
    if counter=0 then
    open l_cursor for SELECT '' EMPLOYEE_ID, '' LAST_NAME,
    '' FIRST_NAME,'' MIDDLE_NAME,'' NAME,
    '' EMPLOYEE_TYPE, '' COMPANY, '' COMPANY_DESCRIPTION,
    '' BUSINESS_UNIT, '' BUSINESS_UNIT_DESCRIPTION, '' LOCATION,
    '' LOCATION_NAME, '' HR_DEPARTMENT_ID,'' DEPARTMENT_NAME,
    '' DEPARTMENT_FUNCTION, '' PLATFORM, '' JOB_CODE,
    '' JOB_TITLE, '' BUSINESS_TITLE, '' MANAGER_LEVEL,
    '' JOB_FUNCTION, '' GL_DEPARTMENT_ID, '' GL_OP_UNIT,
    '' GL_RESPONSIBILITY_CENTER, '' HR_CHANNEL,'' FULL_OR_PART_TIME,
    '' REGULAR_OR_TEMP, '' GRADE,'' UNION_CODE,
    '' BARGAINING_UNIT, '' ANNUAL_RATE,'' HOURLY_RATE,
    '' HIRE_DATE, '' BIRTH_DATE, '' REHIRE_DATE,
    '' SERVICE_DATE, '' POSITION_NUMBER, '' REPORTS_TO,
    '' REPORTS_TO_TITLE, '' SUPERVISOR_ID, '' SUPERVISOR_NAME,
    '' LAN_ID from dual;
    dbms_output.put_line('End of counter=0');
    -- return;
    end if;
    /* read from hr_web_sessionid_tmp */
    select
    parameter_1,parameter_2, parameter_3, parameter_4,
    parameter_5,parameter_6, parameter_7, parameter_8,
    parameter_9,parameter_10, parameter_11, parameter_12,
    parameter_13, parameter_14
    into
    compCode,     businessUnit,     locCode, hrDeptID,
    glDept,     plat,     deptFunc,     empType,
    unionCode, jobCode,     careerLvl, empStatus,
    zid, superID
    from
    XXCCHRWEB.hr_web_sessionid_tmp
    where
    parameter_20= sesId;
    /*Assigning All Value to NULL superID*/
    IF superid is null then
    superID:= 'All';
    END IF;
    jobCode:='('''|| get_token(jobCode, 1)||''')'||','||'('''|| get_token(jobCode, 2)||''')';
    dbms_output.put_line('SELECTING PARAMETERS FROM TEMP TABLE WITH ROW COUNT : '||l_cursor%ROWCOUNT);
    /* read from Employee Master */
    open l_cursor for SELECT DISTINCT * FROM ( SELECT HR_EMPLOYEE_MASTER.EMPLOYEE_ID, HR_EMPLOYEE_MASTER.LAST_NAME,
    HR_EMPLOYEE_MASTER.FIRST_NAME, HR_EMPLOYEE_MASTER.MIDDLE_NAME, HR_EMPLOYEE_MASTER.NAME,
    HR_EMPLOYEE_MASTER.EMPLOYEE_TYPE, HR_EMPLOYEE_MASTER.COMPANY, HR_EMPLOYEE_MASTER.COMPANY_DESCRIPTION,
    HR_EMPLOYEE_MASTER.BUSINESS_UNIT, HR_EMPLOYEE_MASTER.BUSINESS_UNIT_DESCRIPTION, HR_EMPLOYEE_MASTER.LOCATION,
    HR_EMPLOYEE_MASTER.LOCATION_NAME, HR_EMPLOYEE_MASTER.HR_DEPARTMENT_ID, HR_EMPLOYEE_MASTER.DEPARTMENT_NAME,
    HR_EMPLOYEE_MASTER.DEPARTMENT_FUNCTION, HR_EMPLOYEE_MASTER.PLATFORM, HR_EMPLOYEE_MASTER.JOB_CODE,
    HR_EMPLOYEE_MASTER.JOB_TITLE, HR_EMPLOYEE_MASTER.BUSINESS_TITLE, HR_EMPLOYEE_MASTER.MANAGER_LEVEL,
    HR_EMPLOYEE_MASTER.JOB_FUNCTION, HR_EMPLOYEE_MASTER.GL_DEPARTMENT_ID, HR_EMPLOYEE_MASTER.GL_OP_UNIT,
    HR_EMPLOYEE_MASTER.GL_RESPONSIBILITY_CENTER, HR_EMPLOYEE_MASTER.HR_CHANNEL, HR_EMPLOYEE_MASTER.FULL_OR_PART_TIME,
    HR_EMPLOYEE_MASTER.REGULAR_OR_TEMP, HR_EMPLOYEE_MASTER.GRADE, HR_EMPLOYEE_MASTER.UNION_CODE,
    HR_EMPLOYEE_MASTER.BARGAINING_UNIT, HR_EMPLOYEE_MASTER.ANNUAL_RATE, HR_EMPLOYEE_MASTER.HOURLY_RATE,
    HR_EMPLOYEE_MASTER.HIRE_DATE, HR_EMPLOYEE_MASTER .BIRTH_DATE, HR_EMPLOYEE_MASTER.REHIRE_DATE,
    HR_EMPLOYEE_MASTER.SERVICE_DATE, HR_EMPLOYEE_MASTER.POSITION_NUMBER, HR_EMPLOYEE_MASTER.REPORTS_TO,
    HR_EMPLOYEE_MASTER.REPORTS_TO_TITLE, HR_EMPLOYEE_MASTER.SUPERVISOR_ID, HR_EMPLOYEE_MASTER.SUPERVISOR_NAME, HR_EMPLOYEE_MASTER.GENDER,
    HR_EMPLOYEE_MASTER_1.LAN_ID
    FROM
    (XXCCHR.HR_EMPLOYEE_MASTER HR_EMPLOYEE_MASTER_1
    LEFT OUTER JOIN
    XXCCHR.HR_DEPARTMENT_SECURITY HR_DEPARTMENT_SECURITY
    ON
    HR_EMPLOYEE_MASTER_1.EMPLOYEE_ID=HR_DEPARTMENT_SECURITY.EMPLOYEE_ID)
    LEFT OUTER JOIN
    XXCCHR.HR_EMPLOYEE_MASTER HR_EMPLOYEE_MASTER
    ON
    -- HR_DEPARTMENT_SECURITY.DEPARTMENT_SECURITY=HR_EMPLOYEE_MASTER.HR_DEPARTMENT_ID
    (HR_DEPARTMENT_SECURITY.DEPARTMENT_SECURITY=HR_EMPLOYEE_MASTER.HR_DEPARTMENT_ID
    or
    HR_DEPARTMENT_SECURITY.DEPARTMENT_SECURITY in ('DPALL','DPCAG009'))
    WHERE
    HR_EMPLOYEE_MASTER_1.LAN_ID=upper(zid) and
    (compCode = 'All' or HR_EMPLOYEE_MASTER.COMPANY IN compCode)
    (jobCode = 'All' or HR_EMPLOYEE_MASTER.JOB_CODE IN (jobCode) ) ) ;
    dbms_output.put_line('END OF SELECT for counter number : ' || counter ||' Cursor row count : '|| l_cursor%ROWCOUNT || ' with Job Code : ' || (jobCode));
    dbms_output.put_line('Company Code is:' || compCode);
    COMMIT;
    dbms_output.put_line('Data has been Output with session id:' || sesId);
    --delete from XXCCHRWEB.hr_web_sessionid_tmp where parameter_20= sesId;
    dbms_output.put_line('Data should have been DELETED, please check the session temp table');
    commit;
    EXCEPTION
    WHEN OTHERS THEN
    dbms_output.put_line('AN EXCEPTION HAS BEEN CAUGHT for counter number : ' || counter ||' Cursor row count : '|| l_cursor%ROWCOUNT || ' from session id : ' || sesId);
    dbms_output.put_line('The error code is ' || SQLERRM);
    END GETEMPLOYEEDATA;
    Edited by: user10384134 on Nov 4, 2009 8:37 AM

    This seems to work for me:
    define param="'ABC','XYZ'"; --- Set up a test in clause
    --- Test data
    with test as
    (select 'ABC' fld from dual union all
    select 'DEF' from dual union all
    select 'PQR' from dual union all
    select 'XYZ' from dual)
    --- Query starts here.
    select fld
    from test,
           table (sys.ODCIVarchar2List (&param)) p
    where fld = p.column_valueOr Using an actual "IN" clause:
    define param="'ABC','XYZ'";
    with test as
    (select 'ABC' fld from dual union all
    select 'DEF' from dual union all
    select 'PQR' from dual union all
    select 'XYZ' from dual
    p as
    (select column_value from table (sys.ODCIVarchar2List (&param))
    select fld
    from test
    where fld in (select column_value from p)Edited by: AlanWms on Nov 4, 2009 9:08 AM

  • Stored procedure not working (warning only my second written)

    I am now trying to get my 2nd SP to work. Any help with the problem I'm having would be greatly appreciated. This is not a complicated SP but I am creating dynamic sql. when running in TOAD as a straight SQL I was getting problems with the Execute immediate so I compiled as a SP to see if it resovled. Receiving the following error message:
    ORA-00936: missing expression
    ORA-06512: at "INSPQA.ODS_MODIFER_EXTRACT", line 32
    ORA-06512: at line 2
    Process exited.
    and here is the code
    PROCEDURE ods_modifer_extract AS
         TABLENAME VARCHAR2(100);
         TABLEXREF VARCHAR2(100);
         PERCENT VARCHAR2(3);
         VALUE VARCHAR2(100);
         DESCRIPTION VARCHAR2(100);
         sql_stmt VARCHAR2(1000);
         final_sql_stmt VARCHAR2(1000);
         CURSOR t1 IS
         SELECT XREFTABLE, TABLENAME, PERCENTAGE FROM ODS_MODIFIER_CONTROL;
    BEGIN
    FOR table_rec IN t1 LOOP
    TABLENAME := table_rec.TABLENAME;
         TABLEXREF := table_rec.XREFTABLE;
         VALUE := TABLENAME||'.'||TABLENAME||'ID';
         DESCRIPTION := TABLENAME||'.DESCRIPTION';
         PERCENT := table_rec.PERCENTAGE;
         sql_stmt := 'SELECT '||VALUE||' AS VALUE, '||DESCRIPTION||' AS DESCRIPTION, ';
         sql_stmt := sql_stmt||''''||TABLENAME||''' AS SOURCETABLE, ';
         sql_stmt := sql_stmt||''''||TABLENAME||'ID'' AS SOURCECOLUMN, ';
         IF PERCENT = '100' THEN
              sql_stmt :=sql_stmt||PERCENT||' AS PERCENTAGE ,';
              ELSE
              sql_stmt := sql_stmt||TABLEXREF||'.PERCENTAGE AS PERCENTAGE ,';
              END IF;
         sql_stmt := sql_stmt||' ODS_INSPECTION_EXTRACT.INSPECTIONEVENTID, ODS_INSPECTION_EXTRACT.OCCURRENCEDATE ';
         sql_stmt := sql_stmt||'FROM ODS_INSPECTION_EXTRACT, '||TABLEXREF||', '||TABLENAME;
         sql_stmt := sql_stmt||' WHERE ODS_INSPECTION_EXTRACT.ROOFFEATURESID = '||TABLEXREF||'.ROOFFEATURESID AND ';
         sql_stmt := sql_stmt||TABLEXREF||'.'||TABLENAME||'ID = '||TABLENAME||'.'||TABLENAME||'ID';
         final_sql_stmt := 'INSERT INTO ODS_MODIFIER_EXTRACT VALUES ('||sql_stmt||')';
         EXECUTE IMMEDIATE final_sql_stmt;
    END LOOP;
    END;

    final_sql_stmt := 'INSERT INTO ODS_MODIFIER_EXTRACT
    CT VALUES ('||sql_stmt||')';
         EXECUTE IMMEDIATE final_sql_stmt;
    END LOOP;
    END;Take the VALUES word out of the final_sql_stmt. Should work.

  • Java stored procedure not working

    I have done the following:
    loadjava -user lodonnel/lodonnel@albacore:1521:DEVAN -thin -force -resolver "((* lodonnell) (* public) (* -))" -v c:/usr/lod/java/dev/dbDir/displayStringsDB.jar
    Then:
    CREATE OR REPLACE FUNCTION LODONNEL.getSellingTitleDefinition( sellingID
    NUMBER, week VARCHAR2, netID NUMBER, moduleID NUMBER)
    RETURN VARCHAR2 AS LANGUAGE JAVA NAME
    'com.msa.gabriel.share.displaystrings.util.DatabaseAccess.getSellingTitleDefinition( int, java.lang.String, int, int ) return java.lang.String';
    Variable myString VARCHAR2;
    Call getSellingTitleDefinition( 3247, '02-11-2002', 2, 2) INTO :myString;
    I receive the following error:
    Message 1: ORA-29532: Java call terminated by uncaught Java exception: java.lang.VerifyError: Error detected by bytecode verifier when class was created
    Executing Command:
    Call getSellingTitleDefinition( 3247, '02-11-2002', 2, 2) INTO :myString
    Can someone help me determine where to look for this problem?
    The java classes being loaded do contain references to classes that I have not included in the jar, but from what I read the loadjava command I made should allow this. The code that would run in the procedure will not call any of the referenced classes that are not loaded here.

    I cut out all the functionality, and these are the two classes I am trying to load and run:
    package com.bob.gabriel.share.displaystrings.util;
    import java.sql.SQLException;
    import java.util.HashMap;
    import com.bob.media.displaystrings.util.DisplayStrings;
    public class DatabaseAccess {
    public static String getSellingTitleDefinition( int sellingID,
                                  String week, int
                                  netID, int
                                  moduleID ) throws
         SQLException {
         HashMap databaseArgs = new HashMap();
         databaseArgs.put( "ID", new Integer( sellingID) );
         databaseArgs.put( "WEEK", week );
         HashMap formatterArgs = new HashMap();
         formatterArgs.put( "NETWORKID", new Integer( netID ));
         formatterArgs.put( "MODULEID", new Integer( moduleID ));
         return DisplayStrings.getDisplayString();
    package com.bob.media.displaystrings.util;
    import java.util.Collection;
    import java.util.HashMap;
    import java.sql.SQLException;
    public class DisplayStrings {
    public static String getDisplayString() throws SQLException {
         return "woohoo!";
    * This static method is used as the common interface to return the specified formatted string.
    * @return formatted String to display on a UI
    * @param String - some kind of indicator of class that knows how to retrieve data?
    * @param HashMap - map of args needed to get the requested data.
    * @return formatted String to display on a UI
    * @param HashMap - map of args needed to get the format
    * information of the requested data.
    public static String getDisplayString( String type, HashMap databaseArgs, HashMap formatterArgs ) throws SQLException {
         try
    //      System.out.println( "in getDisplayString" );
    //      DisplayStringsDAO dao = getDAO( type );
    //      System.out.println( "got dao: " + dao );
    //      List data = dao.getUnparsedData( databaseArgs );
    //      System.out.println( "got List of data:" + data );
    //      Formatter formatter = getFormatter( type );
    //      System.out.println( "got formatter" );
    //      formatter.initialize( formatterArgs );
    //      System.out.println( "initialized formatter" );
    //      return formatter.format( data );
         return "got here am ok";
         catch ( Exception e )
         throw new SQLException ( "could not format requested string. " +
                   e.getMessage() );
    I build a jar file for them called displayStrings.jar
    I use the following load command:
    loadjava -user lodonnel/lodonnel@albacore:1521:DEVAN -thin -force -resolver "((* lodonnell) (* public) (* -))" -grant public -v c:/usr/lod/java/dev/dbDir/displayStringsDB.jar
    and the following create function command:
    CREATE OR REPLACE FUNCTION LODONNEL.getSellingTitleDefinition( sellingID
    NUMBER, week VARCHAR2, netID NUMBER, moduleID NUMBER) RETURN VARCHAR2 AS LANGUAGE JAVA NAME 'com.bob.gabriel.share.displaystrings.util.DatabaseAccess.getSellingTitleDefinition( int, java.lang.String, int, int ) return java.lang.String';
    When I try this in SQLPlus:
    call getSellingTitleDefinition( 3247, '02-11-2002', 2, 2) into :theString;
    I get this:
    call getSellingTitleDefinition( 3247, '02-11-2002', 2, 2) into :theString
    ERROR at line 1:
    ORA-29532: Java call terminated by uncaught Java exception:
    java.lang.VerifyError: Error detected by bytecode verifier when class was
    created
    Classes were compiled and jar build using jdk1.3.1 and using ant.

  • Stored Procedure Not working

    hi !
    I hav a simple SP,
    If @Transaction_type in ('a','u') and @object_type = 77
    Begin
    select @Error = 1, @error_message = 'Budget ***'
    end
    But whenever i do changes(updation) the error is not appearing.
    Does this SP correct?

    Hello,
    The Object_Type and Transaction_Type are both Varchar and should be enclosed in single quote, which you have already done..
    Using the error number and error message in a single SELECT statement is needed for the error to display
    Take a look at this
    IF @object_type IN ('77', '78', '91') AND @Transaction_type IN ('A','U')
    BEGIN
    Select @error = 1, @error_message = 'Budget'
    END

  • Help with Data service built on a Oracle Stored Procedure

    Hi Friends,
    I am absolutely new to ALDSP and I have created a data service on a Oracle stored procedure. Working with ALDSP 2.5.
    The dataservice is working fine as it is retrieving the data from the database by calling the stored procedure. the signature of the procedure is as follows :
    sp_get_rpt(commID IN number,hier1 IN varchar2,hier2 IN varchar2,ref_cur Ref_cursor)
    Query 1>>
    When i executed the data service, realised that it is considering only the first parameter as compulsary. Even i do not enter the remaining parameters the SP is being
    called.
    Is there any way I can control the input parameters, in the sense that specify in the data service itself which parameter is compulsary and which one is not(could be nullable) ?
    Query 2>>
    The same case with the output that is returned by the sp, I have defined it as a XML schema. as the output of the sp is
    a ref cursor.
    the output returned by the sp, may have some fields as Null, but this is not being accepted by the o/p schema that I have defined in ALDSP.
    Please let me know how I can make some fields nullable in the o/p schema too so that the result set is returned even if some fields are null.
    -Thanks

    In DSP 2.5, there are no provisions for passing null parameters via the client API. You can pass a null parameter when calling one data service function from another data service function by passing a empty element (i.e. $CUSTOMER/MIDDLE_NAME where this particular CUSTOMER doesn't have a MIDDLE_NAME) or by passing an empty sequence (). The function argument must be defined as occuring zero or one times (i.e. $myArg as xs:string? ) the question mark indicates zero or one occurrences.
    Use the same notation to indicate that OUT args are optional.
    For returned rowsets with optional columns, indicate this with minOccurs="0" in your schema.
    I'm thinking that DSP does not handle ref_cursor arguments - but hey, if you tried it and it works, I won't argue.
    In DSP 2.5, you will need a patch from CR346161 to pass null Date (date) or TimeStamp (dateTime) elements to an Oracle stored procedure. Contact customer support if you need this patch.

  • Not able to retrive the recordset from oracle stored procedure in VC++

    Hi,
    I am trying to retrieve the records from the reference cursor which is an out parameter for an oracle 9i store procedure in VC++ application. But it is giving the record count as -1 always. Meanwhile i am able to get the required output in VB application from the same oracle 9i store procedure .
    Find the code below which i used.
    Thanks,
    Shenba
    //// Oracle Stored Procedure
    <PRE lang=sql>CREATE OR REPLACE
    PROCEDURE GetEmpRS1 (p_recordset1 OUT SYS_REFCURSOR,
    p_recordset2 OUT SYS_REFCURSOR,
    PARAM IN STRING) AS
    BEGIN
    OPEN p_recordset1 FOR
    SELECT RET1
    FROM MYTABLE
    WHERE LOOKUPVALUE > PARAM;
    OPEN p_recordset2 FOR
    SELECT RET2
    FROM MYTABLE
    WHERE LOOKUPVALUE >= PARAM;
    END GetEmpRS1;</PRE>
    ///// VC++ code
    <PRE lang=c++ id=pre1 style="MARGIN-TOP: 0px">ConnectionPtr mpConn;
    _RecordsetPtr pRecordset;
    _CommandPtr pCommand;
    _ParameterPtr pParam1;
    //We will use pParam1 for the sole input parameter.
    //NOTE: We must not append (hence need not create)
    //the REF CURSOR parameters. If your stored proc has
    //normal OUT parameters that are not REF CURSORS, you need
    //to create and append them too. But not the REF CURSOR ones!
    //Hardcoding the value of i/p paramter in this example...
    variantt vt;
    vt.SetString("2");
    m_pConn.CreateInstance (__uuidof (Connection));
    pCommand.CreateInstance (__uuidof (Command));
    //NOTE the "PLSQLRSet=1" part in
    //the connection string. You can either
    //do that or can set the property separately using
    //pCommand->Properties->GetItem("PLSQLRSet")->Value = true;
    //But beware if you are not working with ORACLE, trying to GetItem()
    //a property that does not exist
    //will throw the adErrItemNotFound exception.
    m_pConn->Open (
    bstrt ("Provider=OraOLEDB.Oracle;PLSQLRSet=1;Data Source=XXX"),
    bstrt ("CP"), bstrt ("CP"), adModeUnknown);
    pCommand->ActiveConnection = m_pConn;
    pParam1 = pCommand->CreateParameter( bstrt ("pParam1"),
    adSmallInt,adParamInput, sizeof(int),( VARIANT ) vt);
    pCommand->Parameters->Append(pParam1);
    pRecordset.CreateInstance (__uuidof (Recordset));
    //NOTE: We need to specify the stored procedure name as COMMANDTEXT
    //with proper ODBC escape sequence.
    //If we assign COMMANDTYPE to adCmdStoredProc and COMMANDTEXT
    //to stored procedure name, it will not work in this case.
    //NOTE that in the escape sequence, the number '?'-s correspond to the
    //number of parameters that are NOT REF CURSORS.
    pCommand->CommandText = "{CALL GetEmpRS1(?)}";
    //NOTE the options set for Execute. It did not work with most other
    //combinations. Note that we are using a _RecordsetPtr object
    //to trap the return value of Execute call. That single _RecordsetPtr
    //object will contain ALL the REF CURSOR outputs as adjacent recordsets.
    pRecordset = pCommand->Execute(NULL, NULL,
    adCmdStoredProc | adCmdUnspecified );
    //After this, traverse the pRecordset object to retrieve all
    //the adjacent recordsets. They will be in the order of the
    //REF CURSOR parameters of the stored procedure. In this example,
    //there will be 2 recordsets, as there were 2 REF CURSOR OUT params.
    while( pRecordset !=NULL ) )
    while( !pRecordset->GetadoEOF() )
    //traverse through all the records of current recordset...
    long lngRec = 0;
    pRecordset = pRecordset->NextRecordset((VARIANT *)lngRec);
    //Error handling and cleanup code (like closing recordset/ connection)
    //etc are not shown here.</PRE>

    It can be linked to internal conversion. In some case, the value of internal or extranal value is not the same.
    When you run SE16 (or transaction N), you have in option mode the possibility to use the exit conversion or not.
    Christophe

  • Not able to get Oracle stored procedure return value passed to Powerbuilder

    I have an Oracle Stored Procedure that receives a string value and returns a string value..  When I call it from Powerbuilder, it executes but does not send the return value of a string back.  I am trying to encrypt a string in Powerbuilder, pass it to a .net web page and then decrypt so I can check the security tables for permissions to view the web page.  I have tried creating a simple stored procedure that takes a string and returns a string to Powerbuilder; but even that is not working.  Any suggesstions?
    Oracle Procedure:
    CREATE OR REPLACE
    PROCEDURE               TESTINOUT_VARCHAR
    ( P_STRING IN VARCHAR2, P_OUT OUT VARCHAR2)
    IS
       BEGIN  
          P_OUT := P_STRING || 'TESTING';
    END TESTINOUT_VARCHAR;
    Powerbuilder Call:
    string p_string ='                                 '
    Declare TestingString procedure for TESTINOUT_VARCHAR(:ls_group, :p_out) using SQLCA
    Execute TestingString;
    IF SQLCA.CODE = 0 THEN
    FETCH TestingString into:p_out;
    End If
    p_string = p_out;

    Hello John,
    I'm not sure if you already found a solution using an ODBC connection.
    Below the solution with an RPC call:
    Create a user object (uo_trans) of type transaction with the following local external function:
    subroutine TESTINOUT_VARCHAR(string P_STRING,ref string P_OUT) RPCFUNC
    Execute this script
    uo_trans l_transaction
    string ls_outparam
    l_transaction = CREATE uo_trans
    // Profile ODBC_ORA
    l_transaction.DBMS = "ODBC"
    l_transaction.AutoCommit = False
    l_transaction.DBParm = "ConnectString='DSN=ODBC_ORA;UID=system;PWD=<xxxxxx>'"
    connect using l_transaction;
    ls_outparam = space (30)
    l_transaction.testinout_varchar( sle_1.text, ls_outparam)
    messagebox("OUT parameter", ls_outparam)
    disconnect using l_transaction;
    DESTROY l_transaction

  • Call to Oracle stored procedure that returns ref cursor doesn't work

    I'm trying to use an OData service operation with Entity Framework to call an Oracle stored procedure that takes an number as an input parameter and returns a ref cursor. The client is javascript so I'm using the rest console to test my endpoints. I have been able to successful call a regular Oracle stored procedure that takes a number parameter but doesn't return anything so I think I have the different component interactions correct. When I try calling the proc that has an ref cursor for the output I get the following an error "Invalid number or type of parameters". Here are my specifics:
    App.config
    <oracle.dataaccess.client>
    <settings>
    <add name="PGDATA_WC.ODATAPOC.GETWORKORDERSBYWINDFARMID.RefCursor.P_RESULTS" value="implicitRefCursor bindinfo='mode=Output'" />
    <add name="PGDATA_WC.ODATAPOC.GETWORKORDERSBYWINDFARMID.RefCursorMetaData.P_RESULTS.Column.0" value="implicitRefCursor metadata='ColumnName=WINDFARM_ID;BaseColumnName=WINDFARM_ID;BaseSchemaName=PGDATA_WC;BaseTableName=WORKORDERS;NATIVEDATATYPE=Number;ProviderType=Int32'" />
    <add name="PGDATA_WC.ODATAPOC.GETWORKORDERSBYWINDFARMID.RefCursorMetaData.P_RESULTS.Column.1" value="implicitRefCursor metadata='ColumnName=STARTTIME;BaseColumnName=STARTTIME;BaseSchemaName=PGDATA_WC;BaseTableName=WORKORDERS;NATIVEDATATYPE=Varchar2;ProviderType=Varchar2'" />
    <add name="PGDATA_WC.ODATAPOC.GETWORKORDERSBYWINDFARMID.RefCursorMetaData.P_RESULTS.Column.2" value="implicitRefCursor metadata='ColumnName=ENDTIME;BaseColumnName=ENDTIME;BaseSchemaName=PGDATA_WC;BaseTableName=WORKORDERS;NATIVEDATATYPE=Varchar2;ProviderType=Varchar2'" />
    <add name="PGDATA_WC.ODATAPOC.GETWORKORDERSBYWINDFARMID.RefCursorMetaData.P_RESULTS.Column.3" value="implicitRefCursor metadata='ColumnName=TURBINE_NUMBER;BaseColumnName=TURBINE_NUMBER;BaseSchemaName=PGDATA_WC;BaseTableName=WORKORDERS;NATIVEDATATYPE=Varchar2;ProviderType=Varchar2'" />
    <add name="PGDATA_WC.ODATAPOC.GETWORKORDERSBYWINDFARMID.RefCursorMetaData.P_RESULTS.Column.4" value="implicitRefCursor metadata='ColumnName=NOTES;BaseColumnName=NOTES;BaseSchemaName=PGDATA_WC;BaseTableName=WORKORDERS;NATIVEDATATYPE=Varchar2;ProviderType=Varchar2'" />
    <add name="PGDATA_WC.ODATAPOC.GETWORKORDERSBYWINDFARMID.RefCursorMetaData.P_RESULTS.Column.5" value="implicitRefCursor metadata='ColumnName=TECHNICIAN_NAME;BaseColumnName=TECHNICIAN_NAME;BaseSchemaName=PGDATA_WC;BaseTableName=WORKORDERS;NATIVEDATATYPE=Varchar2;ProviderType=Varchar2'" />
    <add name="PGDATA_WC.ODATAPOC.GETWORKORDERSBYID.RefCursor.P_RESULTS" value="implicitRefCursor bindinfo='mode=Output'" />
    </settings>
    OData Service Operation:
    public class OracleODataService : DataService<OracleEntities>
    // This method is called only once to initialize service-wide policies.
    public static void InitializeService(DataServiceConfiguration config)
    // TODO: set rules to indicate which entity sets and service operations are visible, updatable, etc.
    // Examples:
    config.SetEntitySetAccessRule("*", EntitySetRights.All);
    config.SetServiceOperationAccessRule("GetWorkOrdersByWindfarmId", ServiceOperationRights.All);
    config.SetServiceOperationAccessRule("CreateWorkOrder", ServiceOperationRights.All);
    config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
    [WebGet]
    public IQueryable<GetWorkOrdersByWindfarmId_Result> GetWorkOrdersByWindfarmId(int WindfarmId)
    return this.CurrentDataSource.GetWorkOrdersByWindfarmId(WindfarmId).AsQueryable();
    [WebGet]
    public void CreateWorkOrder(int WindfarmId)
    this.CurrentDataSource.CreateWorkOrder(WindfarmId);
    Here is the stored procedure:
    procedure GetWorkOrdersByWindFarmId(WINDFARMID IN NUMBER,
    P_RESULTS OUT REF_CUR) is
    begin
    OPEN P_RESULTS FOR
    select WINDFARM_ID,
    STARTTIME,
    ENDTIME,
    TURBINE_NUMBER,
    NOTES,
    TECHNICIAN_NAME
    from WORKORDERS
    where WINDFARM_ID = WINDFARMID;
    end GetWorkOrdersByWindFarmId;
    I defined a function import for the stored procedure using the directions I found online by creating a new complex type. I don't know if I should be defining the input parameter, WindfarmId, in my app.config? If I should what would that format look like? I also don't know if I'm invoking the stored procedure correctly in my service operation? I'm testing everything through the rest console because the client consuming this information is written in javascript and expecting a json format. Any help is appreciated!
    Edited by: 1001323 on Apr 20, 2013 8:04 AM
    Edited by: jennyh on Apr 22, 2013 9:00 AM

    Making the change you suggested still resulted in the same Oracle.DataAccess.Client.OracleException {"ORA-06550: line 1, column 8:\nPLS-00306: wrong number or types of arguments in call to 'GETWORKORDERSBYWINDFARMID'\nORA-06550: line 1, column 8:\nPL/SQL: Statement ignored"}     System.Exception {Oracle.DataAccess.Client.OracleException}
    I keep thinking it has to do with my oracle.dataaccess.client settings in App.Config because I don't actually put the WindfarmId and an input parameter. I tried a few different ways to do this but can't find the correct format.

Maybe you are looking for

  • Can't play cd burned with disk utility

    i have followed the the directions on duplicating a cd on this link: http://docs.info.apple.com/article.html?path=DiskUtility/10.5/en/duh1945.html but the cd that i burned is not recognized by itunes or a regular cd player. can anybody offer any insi

  • Installing Boot Camp Drivers

    I'm new to Mac OS and am trying to activate the Boot Camp drivers. They're supposed to be in the utilities folder (in the Applications folder) in Mac OS 10 Leopard though they're not. Do I install them from the Leopard disk? Does that overwrite any c

  • View Word documents

    I have two documents that are the same version of Word, but one I could view in iPhone and the other I couldn't. Any suggestions?

  • LDAP connector/interface for business partner

    Hi Experts , Our requirement is we have certain applications which are integrated with SAP Portal. For these applications Data sources are maintained in two different LDAPS. One LDAP (enterprise directory) is for USER data and the other LDAP for Comp

  • How do u make fourms like for log in pages

    Anyone?