Stored Procedure - Recompile Error

Hi All,
We have few stored procedure in SQL Server 2008, we are invoking those stored procedure using .NET Multi-Threading environment. The issue is we are getting ReCompile Error and it is blocking rest of the process.
We analyzed our stored procedure and added fully qualified name for the TABLE and Stored Procedure that is getting invoked from the Stored procedure. But still we are getting same ReCompile Error.
Can you please adivce us how to avoid this Recompilation error.
Regards,
Ganesh S

As others have said, it would help if you posted the exact error message. It would also be a great idea to post the output of "SELECT @@version". And for that matter, we could also have use for the source code of the problematic procedure.
I have an idea of what you may be talking about; it sounds something I have run into, and for which I might have a cure. But I need the information above, so I don't say something which is complete rubbish to you.
Erland Sommarskog, SQL Server MVP, [email protected]

Similar Messages

  • JDBC Adapter - Sender - Stored Procedure - SQLException Error

    Hi,
         I have created one stored procedure in our Oracle database. I give below that stored procedure.
    CREATE OR REPLACE PROCEDURE sp_stud
    IS
        l_row student%ROWTYPE;
        TYPE t_ref_cursor IS REF CURSOR RETURN l_row%TYPE;
        c_cursor t_ref_cursor;
    BEGIN
        OPEN c_cursor FOR
         SELECT *
         FROM student where readflag= ' ';
        LOOP
         FETCH c_cursor into l_row;
            EXIT WHEN c_cursor%NOTFOUND;
            DBMS_OUTPUT.PUT_LINE(l_row.id || ' : ' || l_row.name);
        END LOOP;
    close c_cursor;
    END;
    This is a procedure to retreive rows from the table student which is having the field read_flag = ' '; (Student table contains the fields ID, NAME, BIRTHYEAR, BIRTHMONTH, READFLAG).
    In JDBC Sender Adapter, I set the values for the following fields under Parameters tab.
    Query SQL Statement: EXECUTE sp_stud
    Update SQL Statement: UPDATE student SET readflag = 'Y' where readflag = ' '
    The scenario is every 5 minutes JDBC adapter checks the table whether any new row is inserted, if it is inserted and commit, it will send that record to File. This is the Scenario.
    In Runtime Workbench, Communication Channel Monitoring, it shows the following error, when JDBC Polls the table.
    Database-level error reported by JDBC driver while executing statement 'EXECUTE sp_stud'. The JDBC driver returned the following error message: 'java.sql.SQLException: ORA-00900: invalid SQL statement '. For details, contact your database server vendor.
    Note : If we execute the Stored Procedure ad SQL command level, it works fine.
    Kindly help friends to solve this, where the error is happened.
    Thanking you,
    Kind regards,
    Jegatheeswaran P.

    Hi,
    Not a Database expert. But , in case you have not seen the note pointed by Deepu,
    <i> The JDK 1.1.x, 1.2 and 1.3 versions (classes111. zip, classes12.zip, classes12.jar) of the driver are not compatible with the SAP XI JDBC Adapter. Use the JDK 1.4 driver (ojdbc14.jar) instead. For details, refer to Oracle MetaLink note # 203849.1.
               <b>Invoking Oracle stored procedures from within a JDBC sender channel is only possible for Oracle DBMS versions >= 10.2.x using so-called table functions:</b>
               Example:
    pkg1 -
    CREATE PACKAGE pkg1 AS
      TYPE numset_t IS TABLE OF NUMBER;
      FUNCTION f1(x NUMBER) RETURN numset_t PIPELINED;
    END pkg1;
    CREATE PACKAGE BODY pkg1 AS
    -- FUNCTION f1 returns a collection of elements (1,2,3,... x)
    FUNCTION f1(x NUMBER) RETURN numset_t PIPELINED IS
      BEGIN
        FOR i IN 1..x LOOP
          PIPE ROW(i);
        END LOOP;
        RETURN;
      END;
    END pkg1;
    pkg1 -
            <b>   This function has to be invoked from the sender channel configuration (SELECT statement) as follows:
               SELECT * FROM TABLE(pkg1.f1(5));</i></b>
    Check this, confirm your Oracle DB version and then use the Table Functions as described in this note.
    A Database Expert wil be able to crack this for sure.
    Regards
    Bhavesh

  • Executing a report with stored procedure causes error

    Hello,
    I've got a .NET application where a report gets generated from an .rpt template using Crystal Reports. A template has been created using the fields from stored procedure. While creating the template, I've been working with my DEV environment DB server, and with that server the .rpt has been saved. Within the Designer, I can preview the report, all working fine.
    Using the template with my application, if I set in the code for crystal connection to use the same DB server as has been saved with the .rpt, the report runs and I do get the result in my application as expected. But if I move my code to other environment, using another DB server (but not changing anything in the .rpt), while running the report in the application I get the following error:
    Exception: CrystalDecisions.CrystalReports.Engine.InternalException
    Message: Failed to open a rowset.
    Details: ADO Error Code: 0x
    Source: Microsoft OLE DB Provider for SQL Server
    Description: Could not find stored procedure 'BreachOfAgg'.
    SQL State: 42000
    Native Error:
    Failed to open a rowset.
    Error in File C:\Windows\TEMP\Breach of Aggregate Stop Loss {196B84E5-7DAE-465E-A12D-5C70DDC04CE5}.rpt:
    Failed to open a rowset.
    Source: CrystalDecisions.ReportAppServer.DataSetConversion
       at CrystalDecisions.ReportAppServer.ConvertDotNetToErom.ThrowDotNetException(Exception e)
       at CrystalDecisions.ReportSource.EromReportSourceBase.ExportToStream(ExportRequestContext reqContext)
       at CrystalDecisions.CrystalReports.Engine.FormatEngine.ExportToStream(ExportRequestContext reqContext)
       at CrystalDecisions.CrystalReports.Engine.ReportDocument.ExportToStream(ExportOptions options)
       at CrystalDecisions.CrystalReports.Engine.ReportDocument.ExportToHttpResponse(ExportOptions options, HttpResponse response, Boolean asAttachment, String attachmentName)
       at CrystalDecisions.CrystalReports.Engine.ReportDocument.ExportToHttpResponse(ExportFormatType formatType, HttpResponse response, Boolean asAttachment, String attachmentName)
       at IFG.ReportsModule.Reporter.CrystalReporter.Export(OutputType outputType, HttpResponse response, String reportName, Boolean asAttachment)
       at IFG.ReportsModule.Reporter.CrystalReporter.Export(OutputType outputType, HttpResponse response, String reportName)
       at IFG.ReportsModule.Proxies.CrystalReporterProxy.ShowResult(OutputType outputType, HttpContext context, CrystalReporter cr)
       at IFG.ReportsModule.Proxies.CrystalReporterProxy.ExecuteReport(ParametersValues parameters, OutputType outputType, HttpContext context)
       at IFG.Web.GetReport.GenerateReport(Int64 reportID) in d:\Jure\PSL\iFish\IFISHRSF\IFISHRSF0100\Root\5. Development\IFISH Portal\SDRMA New\Portal\web\admin\RSF\GetReport.aspx.cs:line 82
       at IFG.Web.GetReport.Page_Load(Object sender, EventArgs e) in d:\Jure\PSL\iFish\IFISHRSF\IFISHRSF0100\Root\5. Development\IFISH Portal\SDRMA New\Portal\web\admin\RSF\GetReport.aspx.cs:line 48
    Nested Exception
    Exception: System.Runtime.InteropServices.COMException
    Message: Failed to open a rowset.
    Details: ADO Error Code: 0x
    Source: Microsoft OLE DB Provider for SQL Server
    Description: Could not find stored procedure 'BreachOfAgg'.
    SQL State: 42000
    Native Error:
    Failed to open a rowset.
    Error in File C:\Windows\TEMP\Breach of Aggregate Stop Loss {196B84E5-7DAE-465E-A12D-5C70DDC04CE5}.rpt:
    Failed to open a rowset.
       at CrystalDecisions.ReportAppServer.Controllers.ReportSourceClass.Export(ExportOptions pExportOptions, RequestContext pRequestContext)
       at CrystalDecisions.ReportSource.EromReportSourceBase.ExportToStream(ExportRequestContext reqContext)
    If I open in the Crystal Designer the rpt and change the DB to my new server, and then run the report in the application using that same new server, the report runs ok and I do get the results. As well, I don't have this problem using tables or views in the report. Independent of what server has been used while created the .rpt in the Designer, I get the report ran and presented according to the server that I point to within my code.
    I hope someone can help me out with thi.
    Thank you.
    Jure

    Hi Jure,
    All I can suggest now is you try this [app|http://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/oss_notes_boj/sdn_oss_boj_bi/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/scn_bosap/notes%7B6163636573733d36393736354636443646363436353344333933393338323636393736354637333631373036453646373436353733354636453735364436323635373233443330333033303331333533353333333933323331%7D.do]:
    It will get the connection if you need.
    If that doesn't work the purchase a support and Rep can connect to your PC to see what is going on...
    Thanks
    Don

  • Calling stored procedure - mysterious error

    Hi all,
    I have a problem with one stored procedure.
    The procedure looks like this simplified sample:
    create or replace procedure sp_sample (
    p_input1 in char,
    p_input2 in number,
    p_input10 in char,
    p_in_out in out number
    as
    l_in_out number(38) := p_in_out;
    begin
    select count(t1.id_t1)
    into l_in_out
    from table1 t1
    where
    (field1 = p_input1) and
    (field2 = p_input2) and
    (field10 like p_input10);
    p_in_out := l_in_out;
    end;
    And now the problem:
    When I call the procedure in some PL/SQL block like this:
    declare
    l_cnt number(38);
    begin
    sp_sample(
    p_input1 => 'ABC',
    p_input2 => 2,
    p_input10 => '%',
    p_in_out => l_cnt
    dbms_output.put_line(l_cnt);
    end;
    -> I receive the error message ORA-01722 in the first line of the select ("select count(t1.id_t1) ...").
    But if I call the procedure in similar PL/SQL block like this:
    declare
    l_cnt number(38);
    l_char char(10 char);
    begin
    l_char := '%';
    sp_sample(
    p_input1 => 'ABC',
    p_input2 => 2,
    p_input10 => l_char,
    p_in_out => l_cnt
    dbms_output.put_line(l_cnt);
    end;
    -> I receive a correct result.
    The only difference is in the using of a local variable instead of a string literal!
    When I simplified the conditions in the where clause in the select, the calling of the procedure passed always.
    It seems the error is caused by complicated condition in the select and some mystery concerning of passing parameters into a procedure or binding variables.
    Has anybody any experience like this?
    Jiri

    The old invalid number problem.
    Its one of the following:
    1) you are using implicit conversions
    2) you have a misunderstanding of how the oracle optimizer works.
    Probably 2, as the query works with the hardcoded literal but not the variable.
    Basically, you are getting two separate query plans, ie oracle is using a different way of getting the result depending on whether it is using a literal or a variable.
    Basically in one scenario, you are encountering a non-numeric character and an attempt is being made to convert this to a number.
    In the other, you never encounter the non-numeric character

  • MySQL Stored Procedure got error in Crystal Reports 9

    Hi,
    I am using MySQL Server 6.0 and mysqlyog and Crystal Reports 9 and ODBC 3.5 and ODBC 5.1. When I create report in CR9 using wizard, I always got an error message "CRW32.exe has encountered problem and needs to be close. bla bla bla..."
    But when I try my odbc connection (DSN) to link in ms access i successfully see the records.
    I also use MS SQL stored procedure in crystal 9 but i got no problem encountered. the only difference is I use OLE DB connection.
    Can any one can tell or explain why an erro message always comes out?

    hi,
    Fields in Stored Procedure does not appear.
    I am now using crystal reports 2008 evaluation copy for 30 days. I am trying to create a stored procedure with parameter, here is my sample Stored Procedure code;
    DELIMITER $$
    DROP PROCEDURE IF EXISTS `puerto`.`SP_FindEmployees`$$
    CREATE DEFINER=`root`@`localhost` PROCEDURE `SP_FindEmployees`(SIDNo VARCHAR(10))
    BEGIN
         SELECT * FROM employees WHERE IDNo=SIDNo;
        END$$
    DELIMITER ;
    when i try to call the procedure in sqlyog here is my sample code;
    CALL sp_findemployees('0000000001')
    it is successfull, but when i try to  connect it with crystal reports 2008 I got no fields in my stored procedure andi got this error message ;
    "Database Connector: 'HY00:[MySQL][ODBC 3.51 Driver][mysqld-5.1.33-community]incorect number of arguments for procedure puerto.sp_findemployees; expected 1, got 0 [Database vendor code: 1318]"
    CR2008 was not asking a parameter values.
    But when I try using stored procedure that i've made in MSSQL, CR2008 asking parameters and succefully created the reports needed.
    My Objective is to make a stored procedure  in MySQL by using select statement and filter it with parameter(s) that I will pass and CR2008 will use this stored procedure.
    i also try the view with this code below and it was successfull in CR2008.
    DELIMITER $$
    DROP VIEW IF EXISTS `puerto`.`ep_employees`$$
    CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `ep_employees` AS (SELECT `employees`.`IDNo` AS `IDNo`,`employees`.`FullName` AS `FullName` FROM `employees`)$$
    DELIMITER ;

  • MySQL Stored Procedure Syntax Errors

    I have an online application I would like to use transactions to either commit all db updates or none at all. The code I have created is as follows, not only am I getting a syntax error on lines 5 and 16, but quite frankly I am unsure the code will actually do what I want. Please let me know if you see the syntax errors and could explain them to me.
    CREATE PROCEDURE increase_maint_priority
        (maint_item INT, new_priority INT, cur_priority INT, center_id INT)
    BEGIN
        START TRANSACTION; -- line 5 syntax error
        -- start updates
        UPDATE maintitem SET priority = (priority+1)
            WHERE priority > cur_priority
            AND priority <= new_priority
            AND centerID = center_id;
        UPDATE maintitem SET priority = new_priority
            WHERE id = maint_item;
        COMMIT;
    END; -- line 16 syntax error
    Thank you in advance for helping a newb to stored procedures.
    If you would like to help me figure out if this code will actually work for what I want the following describes the situation.
    Main idea: business location managers submit requests for maintenance at their center. Requests can be added anywhere in the priority list (1=highest priority). They can also change the priority of a request at any time.
    Previously I have been using php to control a loop of mysql update queries (yikes, I know now, 2 sql statements could do the trick) and lately we have been experiencing duplicate priorities, and other problems that seem to be most likely linked to the updating of priorities of multiple items.
    Ex: moving priority item 6 to priority 1 requires 1 update query for the current 6th priority item, but a second query (or loop of several more since I was very new to sql statements at time of development 2 years ago) to update the other priorities.
    Thus the desire for the transaction method.
    Again, thanks in advance for any help on this issue.
    P.S. - I am using MySQL workbench to write this and that's where I get the errors.

    Yes, of course.
    DELIMITER //
    CREATE PROCEDURE increase_maint_priority
        (maint_item INT, new_priority INT, cur_priority INT, center_id INT)
    BEGIN
        START TRANSACTION;
        -- start updates
        UPDATE maintitem SET priority = (priority+1)
            WHERE priority > cur_priority
            AND priority <= new_priority
            AND centerID = center_id;
        UPDATE maintitem SET priority = new_priority
            WHERE id = maint_item;
        COMMIT;
    END //
    DELIMITER ;
    Just so you're aware, the table name is actually in a slightly dfferent format: `db_name`.`table_name` I have just renamed it for privacy purposes.

  • Stored Procedure Cursor error

    Hi all,
    I am running into some wired errors ...
    I can easily do a select statement, e.g., select * from schema.table ...
    But when I do a cursor in a stored procedure, e.g.,
    CURSOR cursor_x
    IS
    select * from schema.table;
    I will hit error ORA-01031: insufficient privileges
    definitely, I should be able to read from that table ...
    What is going on here ...
    Any help ???

    842787 wrote:
    Hi all,
    I am running into some wired errors ...
    I can easily do a select statement, e.g., select * from schema.table ...
    But when I do a cursor in a stored procedure, e.g.,
    CURSOR cursor_x
    IS
    select * from schema.table;
    I will hit error ORA-01031: insufficient privileges
    definitely, I should be able to read from that table ...
    What is going on here ...
    Any help ???As sybrand says, this is a basic documentation question and easily answered by searching the web.
    To repeat what millions have already answered before....
    The problem is that when you issue a direct select statement, you are using role based permissions to access the database objects (table in your case).
    When you write PL/SQL code (your CURSOR...) this does not use role based permissions, but must have explicit permission granted on that object to that user.
    In other words, you need to grant read permissions on that table to your user directly (not via the role of the user).

  • Stored Procedure syntax error

    I'm trying to create a stored procedure that does not have any IN or OUT parameters. It gives syntax errors:
    create or replace
    procedure GEN_NEW_DATA
    as
    cursor for_msgid is select PARENTID from WORKITEM;
    msgid_rec for_msgid%rowtype;
    begin
    for msgid_rec in for_msgid loop
    update FIELDTYPE set FIELDVALUE= (select ACCOUNTID from ACCOUNT where ACCOUNTNAME= (select FIELdVALUE from FIELDTYPE where FIELDNAME= msgid_rec.PARENTID || 'xAgency' ) ) where FIELDNAME= msgid_rec.PARENTID || 'xAgency';
    commit;
    end loop;
    dbms_output.put_line('Done');
    end;
    Can someone help me with the syntax here.

    msgid_rec for_msgid%rowtype;I think this is not allowed..
    ----Try this
    create or replace
    procedure GEN_NEW_DATA
    as
    cursor for_msgid is select PARENTID from WORKITEM;
    --msgid_rec for_msgid%rowtype;
    begin
    for msgid_rec in for_msgid loop
    update FIELDTYPE set FIELDVALUE= (select ACCOUNTID from ACCOUNT where ACCOUNTNAME= (select FIELdVALUE from FIELDTYPE where FIELDNAME= msgid_rec.PARENTID || 'xAgency' ) ) where FIELDNAME= msgid_rec.PARENTID || 'xAgency';
    commit;
    end loop;
    dbms_output.put_line('Done');
    end;
    Message was edited by:
            jeneesh                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Stored Procedure? Error Checking?

    I'm getting
    (Either BOF or EOF is True, or the current record has been
    deleted.)
    on the page and I'm thinking it's because the SP errors
    because a part
    of the requested items are empty. The page works until I add
    the items
    after the *****'s . Without those, it works fine.
    First of all, should I do error checking in the SP, second,
    how? Or, is
    there somewhere else I should look? The first error that I
    get happens
    when I do a file check to see if an Image actually exists on
    the server
    line that first error pops up-------<% strFilename =
    "e:\path\to\site\Pix\DD" &
    (recordset.Fields.Item("ProductID").Value) &
    ".jpg"
    If (fs.FileExists(strFilename))=true Then
    %>----------------end of
    error line
    CREATE PROCEDURE spname
    @variable1 varchar (20)
    AS
    SELECT P.ID AS ProductID, P.Name, P.ProdID, P.Price,
    P.ShipCost,
    P.ClearSale, P.SalePrice, P.new, PC.gid AS PCgid, G.gid,
    G.pid AS Gpid,
    G.ord, D.PID AS DPID, D.Paragraph
    *******, AIG.copyright, AIG.itemsize, AIG.cartdate,
    AIG.grade,
    AIG.specialNotice, AIG.warning, AIG.videoLength,
    AIG.keywords,
    AIG.dateadded, AIG.bestseller
    FROM atblProducts P
    INNER JOIN Groups G ON P.ID = G.pid
    INNER JOIN PCat PC ON G.gid = PC.gid
    *******INNER JOIN atblAddInfoGroup AIG ON P.ID =
    AIG.addInfoID
    LEFT JOIN Description D ON G.pid = D.PID
    WHERE P.ProdID = @variable1 AND P.price IS NOT NULL AND
    P.Price <> 0
    GO

    You are getting the error because the recordset you are
    attempting to return
    is empty. This is an ASP error and is not being generated
    from SQL Server.
    If I were you I would execute your SP through query analyzer
    and if the
    resulting data set is empty then this is why you are
    receiving the error on
    your ASP page.
    For your info:- if there was an error with your SQL code then
    you would be
    getting a completely different error than this.
    "Art" <[email protected]> wrote in
    message
    news:fmisq3$2b0$[email protected]..
    > I'm getting
    >
    > (Either BOF or EOF is True, or the current record has
    been deleted.)
    >
    > on the page and I'm thinking it's because the SP errors
    because a part of
    > the requested items are empty. The page works until I
    add the items after
    > the *****'s . Without those, it works fine.
    >
    > First of all, should I do error checking in the SP,
    second, how? Or, is
    > there somewhere else I should look? The first error that
    I get happens
    > when I do a file check to see if an Image actually
    exists on the server
    >
    > line that first error pops up-------<% strFilename =
    > "e:\path\to\site\Pix\DD" &
    (recordset.Fields.Item("ProductID").Value) &
    > ".jpg"
    > If (fs.FileExists(strFilename))=true Then
    %>----------------end of error
    > line
    >
    > CREATE PROCEDURE spname
    > @variable1 varchar (20)
    >
    > AS
    > SELECT P.ID AS ProductID, P.Name, P.ProdID, P.Price,
    P.ShipCost,
    > P.ClearSale, P.SalePrice, P.new, PC.gid AS PCgid, G.gid,
    G.pid AS Gpid,
    > G.ord, D.PID AS DPID, D.Paragraph
    >
    > *******, AIG.copyright, AIG.itemsize, AIG.cartdate,
    AIG.grade,
    > AIG.specialNotice, AIG.warning, AIG.videoLength,
    AIG.keywords,
    > AIG.dateadded, AIG.bestseller
    >
    > FROM atblProducts P
    > INNER JOIN Groups G ON P.ID = G.pid
    > INNER JOIN PCat PC ON G.gid = PC.gid
    >
    > *******INNER JOIN atblAddInfoGroup AIG ON P.ID =
    AIG.addInfoID
    >
    > LEFT JOIN Description D ON G.pid = D.PID
    > WHERE P.ProdID = @variable1 AND P.price IS NOT NULL AND
    P.Price <> 0
    > GO

  • ORA-03111 - JCA Binding error while invoking a stored procedure in DB

    Hi,
    We are facing this problem for one interface alone.
    Need expert advice to fix this problem..
    This is scheduled to run once in a day and fails daily for past 2 weeks..
    We receive below error as response..
    Same interface worked fine for past 1 yr..
    Also it works fine if we reprocess the batch in next day morning...
    Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'DB_Legacy_To_EBS_Invoice_Conversion' failed due to: Stored procedure invocation error. Error while trying to prepare and execute the IRSOA.AR_SOA_INVOICE.TRN_GET_CUST_INV_RAW_TO_STAGE API. An error occurred while preparing and executing the IRSOA.AR_SOA_INVOICE.TRN_GET_CUST_INV_RAW_TO_STAGE API. Cause: java.sql.SQLException: ORA-03111: break received on communication channel ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution.
    AND
    Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'DB_Legacy_To_EBS_Invoice_Conversion' failed due to: Stored procedure invocation error. Error while trying to prepare and execute the IRSOA.AR_SOA_INVOICE.TRN_GET_CUST_INV_RAW_TO_STAGE API. An error occurred while preparing and executing the IRSOA.AR_SOA_INVOICE.TRN_GET_CUST_INV_RAW_TO_STAGE API. Cause: java.sql.SQLException: ORA-01013: user requested cancel of current operation ORA-06512: at "IRSOA.XXIR_AR_SOA_CUSTOMER_INVOICE", line 213 ORA-06512: at line 1 ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution
    Thanks,
    Sundaram

    Looks like the SQL might be taking a longer time to execute and might be timing out.
    Please refer the following:
    Re: ORA-01013: user requested cancel of current operation
    http://www.dba-oracle.com/t_ora_01013_user_requested_cancel_of_current_operation.htm
    Additionally, ORA-06512 indicates that there is a mismatch of the with the data length that is being processed. Refer http://www.techonthenet.com/oracle/errors/ora06512.php
    Hope this helps.
    Thanks,
    Patrick

  • Error while calling stored procedure from apps adapter

    Hi,
    I am calling Oracle applications standard api to create ar invoice (XX_BPEL_TEST_APPS_ADAPTER_PKG is the name of wrapper package created by adapter) from apps adapter but getting the following error:
    Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'test_apps_adapter' failed due to: Stored procedure invocation error. Error while trying to prepare and execute the APPS.XX_BPEL_TEST_APPS_ADAPTER_PKG.AR_INVOICE_API_PUB$CREATE_SIN API. An error occurred while preparing and executing the APPS.XX_BPEL_TEST_APPS_ADAPTER_PKG.AR_INVOICE_API_PUB$CREATE_SIN API. Cause: java.sql.SQLException: ORA-06531: Reference to uninitialized collection ORA-06512: at "APPS.XX_BPEL_TEST_APPS_ADAPTER_PKG", line 199 ORA-06512: at "APPS.XX_BPEL_TEST_APPS_ADAPTER_PKG", line 909 ORA-06512: at line 1 Check to ensure that the API is defined in the database and that the parameters match the signature of the API. This exception is considered not retriable, likely due to a modelling mistake. To classify it as retriable instead add property nonRetriableErrorCodes with value "-6531" to your deployment descriptor (i.e. weblogic-ra.xml). To auto retry a retriable fault set these composite.xml properties for this invoke: jca.retry.interval, jca.retry.count, and jca.retry.backoff. All properties are integers. ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution.
    Just wondering if anyone has faced a similar problem?

    I am trying to pass parameter to test my procedure but it is giving this error : ORA-06531: Reference to uninitialized collection
    ORA-06512: at line 12
    Here is example for my test procedure:
    declare
    v_session_id_tab SESSION_ID_TAB_TYPE;
    v_service_type_tab SERVICE_TYPE_TAB_TYPE ;
    v_service_location_tab SERVICE_LOCATION_TAB_TYPE ;
    v_service_call_name_tab SERVICE_CALL_NAME_TAB_TYPE;
    v_service_call_start_time_tab SERVICE_CALL_ST_TAB_TYPE;
    v_service_call_end_time_tab SERVICE_CALL_ET_TAB_TYPE;
    v_service_call_duration_tab SERVICE_CALL_DUR_TAB_TYPE;
    v_status_tab STATUS_TAB_TYPE;
    v_notes_tab NOTES_TAB_TYPE;
    begin
    v_session_id_tab(1) := 1;
    v_service_type_tab(1) := 'db';
    v_service_location_tab(1) := 'local';
    v_service_call_name_tab(1) := 'Name of call';
    v_service_call_start_time_tab(1) := SYSDATE;
    v_service_call_end_time_tab(1) := SYSDATE;
    v_service_call_duration_tab(1) := 100;
    v_status_tab(1) := 'Z';
    v_notes_tab(1) := 'NOTES';
    BULK_INSERTS (v_session_id_tab,v_service_type_tab, v_service_location_tab,v_service_call_name_tab,v_service_call_start_time_tab,v_service_call_end_time_tab,
    v_service_call_duration_tab, v_status_tab, v_notes_tab);
    end;
    I declare all types at schema level.
    Please give your comments.
    Thank you

  • Capture error messages from stored procedure calls

    Hi there,
    How do I capture a stored procedure calls error messages provided the stored procedures does not have output parameters? This questions applies to Oracle 7.3.4 stored procedures calls.
    TQ
    Neo

    There are two parts.
    The stored proc must 'throw' an exception.
    And java must catch it.
    You probably already have the java part. That is the catch(SQLException).
    As for the stored proc you can use the following search string in the jdbc forum
    raise oracle
    You need to use 'raise' in the stored proc but I am not sure of the exact form, but one of the threads using the above search string is likely to have it.

  • Button action outcome depends on a call to a stored procedure

    Hi,
    I'm developing an application using JDeveloper 10.1.3.4, JSF and ADF BC 10.1.3.4.
    I've got a button "Update", his action outcome depends on the result of a store procedure, called by a method in my ApplicationModuleImpl (the actionListener of the button - #{bindings['call_stored_procedure'].execute}).
    Particularly, if the stored procedure returns "OK" the program can navigate to a new JSP page, following a navigation case. If the stored procedure returns "ERROR" no navigation must take place, the program must stop on the current JSP page. I need something like "raise form_trigger_failure" of Oracle Forms. I've tried throwing a oracle.jbo.ValidationException, but navigation take place instead.
    Thanks a lot in advance
    Mari

    Load the SRDemo for jdev10.1.3 and check out the classes ADFUtils nd JSFUtils. I guess they are also on Steve Muenchs blog here.
    Look for the method getApplicationModuleForDataControl(...).
    Timo

  • Issue while invoking a stored procedure in DB2 from Oracle OSB flow

    oracle.tip.adapter.sa.api.JCABindingException: oracle.tip.adapter.sa.impl.fw.ext.org.collaxa.thirdparty.apache.wsif.WSIFException: servicebus:/WSDL/Test_Project/Application/Project1/TestSP [ TestSP_ptt::TestSP(InputParameters,OutputParameters) ] - WSIF JCA Execute of operation 'TestSP' failed due to: Stored procedure invocation error.
    Error while trying to prepare and execute the NED.LOGIN_MODULE API.
    An error occurred while preparing and executing the NED.LOGIN_MODULE API. Cause: java.lang.NullPointerException
    ; nested exception is:
    BINDING.JCA-11811
    Stored procedure invocation error.
    Error while trying to prepare and execute the NED.LOGIN_MODULE API.
    An error occurred while preparing and executing the NED.LOGIN_MODULE API. Cause: java.lang.NullPointerException
    Check to ensure that the API is defined in the database and that the parameters match the signature of the API.

    This forum is for issues about WebLogic Connector container itself. You may need to post your issue to other forums such as SOA.
    Thanks

  • TimeStamp in Stored Procedure for JDBC adapter

    Hi,
    I have a Date Timestamp field (DD/MM/YYYY HH:MM:SS) in my stored procedure (target system), how do I pass an empty value when there is no date coming from the source system.
    I am able to send the date field in the format when I get the date timestamp field in the source message but sometimes the date field will be empty in the source message, where in I have a issue to pass to stored procedure.
    Error details - java.sql.SQLException: ORA-01830: date format picture ends before converting entire input string ORA-06512: at line 1
    Thanks.
    Yeshwanth

    but sometimes the date field will be empty in the source message, where in I have a issue to pass to stored procedure.
    Why not to avoid creating the DATE field in the target when the source is empty or not present? Just make a check on the source field....check if it is not-blank and then only create the target node....if the source field is blank then the target wont be created and hence wont be inserted into the DB....check if this works for you.
    Also check the XML Schema Interpreter (Interpretation of Empty String Values) section from this help section:
    http://help.sap.com/saphelp_nw70/helpdata/en/64/ce4e886334ec4ea7c2712e11cc567c/content.htm
    Regards,
    Abhishek.
    Edited by: abhishek salvi on Jul 16, 2010 3:23 PM

Maybe you are looking for