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

Similar Messages

  • ORABPEL-11809 - call a stored procedure - error in OUT parameter

    Hi all.
    I have a problem in a BPEL process that calls a stored procedure.
    I create a Partner Link that calls a stored procedure in the database. That procedure returns a type that is a table (is defined as a type of the database).
    When I deploy the process I have the following error:
    <messages>
    - <input>
    - <WC01_Pesquisa_Ut_InputVariable>
    - <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="InputParameters">
    - <InputParameters xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/IGIF/WC01/PESQUISA_UT/">
    <P_NIR xmlns="">
    165968274
    </P_NIR>
    <P_NOME_COMPLETO xmlns="">
    carla diogo
    </P_NOME_COMPLETO>
    <P_SEXO xmlns="">
    Feminino
    </P_SEXO>
    <P_DATA_NASC xmlns="">
    2007-03-01
    </P_DATA_NASC>
    <P_NATURALIDADE xmlns=""/>
    </InputParameters>
    </part>
    </WC01_Pesquisa_Ut_InputVariable>
    </input>
    - <fault>
    - <remoteFault xmlns="http://schemas.oracle.com/bpel/extension">
    - <part name="code">
    <code>
    17002
    </code>
    </part>
    - <part name="summary">
    <summary>
    file:/oracle/product/10.1.3/SOA/Integration10131/bpel/domains/default/tmp/.bpel_SaudeIdentificarCidadao_5.0_e3768f57d137443e1ba52d4a6d809426.tmp/WC01_Pesquisa_Ut.wsdl [ WC01_Pesquisa_Ut_ptt::WC01_Pesquisa_Ut(InputParameters,OutputParameters) ] - WSIF JCA Execute of operation 'WC01_Pesquisa_Ut' failed due to: Error registering an out parameter.
    An error occurred when registering parameter PESQUISA_UT as an out parameter of the IGIF.WC01.PESQUISA_UT API. Cause: java.sql.SQLException: Io exception: Connection reset [Caused by: Io exception: Connection reset]
    ; nested exception is:
         ORABPEL-11809
    Error registering an out parameter.
    An error occurred when registering parameter PESQUISA_UT as an out parameter of the IGIF.WC01.PESQUISA_UT API. Cause: java.sql.SQLException: Io exception: Connection reset [Caused by: Io exception: Connection reset]
    Check to ensure that the parameter is a valid IN/OUT or OUT parameter of the API. Contact oracle support if error is not fixable.
    </summary>
    </part>
    - <part name="detail">
    <detail>
    Internal Exception: java.sql.SQLException: Io exception: Connection resetError Code: 17002
    </detail>
    </part>
    </remoteFault>
    </fault>
    </messages>
    The code of the XSD created when I create the partner link is:
    <schema targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/db/IGIF/WC01/PESQUISA_UT/" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:db="http://xmlns.oracle.com/pcbpel/adapter/db/IGIF/WC01/PESQUISA_UT/"
    elementFormDefault="unqualified" attributeFormDefault="unqualified">
    <element name="InputParameters">
    <complexType>
    <sequence>
    <element name="P_NIR" type="decimal" db:index="1" db:type="NUMBER" minOccurs="0" nillable="true"/>
    <element name="P_NOME_COMPLETO" type="string" db:index="2" db:type="VARCHAR2" minOccurs="0" nillable="true"/>
    <element name="P_SEXO" type="string" db:index="3" db:type="VARCHAR2" minOccurs="0" nillable="true"/>
    <element name="P_DATA_NASC" type="dateTime" db:index="4" db:type="DATE" minOccurs="0" nillable="true"/>
    <element name="P_NATURALIDADE" type="string" db:index="5" db:type="VARCHAR2" minOccurs="0" nillable="true"/>
    </sequence>
    </complexType>
    </element>
    <element name="OutputParameters">
    <complexType>
    <sequence>
    <element name="PESQUISA_UT" type="db:TABELA_DE_IDS" db:index="0" db:type="Array" minOccurs="0" nillable="true"/>
    </sequence>
    </complexType>
    </element>
    <complexType name="TABELA_DE_IDS">
    <sequence>
    <element name="PESQUISA_UT_ITEM" type="decimal" db:type="NUMBER" minOccurs="0" maxOccurs="unbounded" nillable="true"/>
    </sequence>
    </complexType>
    </schema>
    Any ideia?
    Thanks in advance.
    Carla

    I'd suggest that you turn on xml validation on the bpel boundaries to make sure that the xml being passed to the adapter is valid. You do this by logging in to bpel console, go to Manage Domain, at the bottom of the Configuration tab, set validateXml to true.
    Then see if it is an xml validation issue - in which case you will have to fix your maps to make sure it is valid indeed.
    Assuming your XML is valid and you are still seeing this error, couple of follow up questions:
    - are you using synonyms ?
    -- note that synonyms are not supported completely by the adapter at this time.
    - could you spell out where your types/sp-pkg resides and what are you connecting as at runtime ?
    -- just to keep things simple enough to debug, i'd do everything as just one user and slowly go to a scheme that you desire.
    HTH

  • Stored Procedure for checking Invoice Vendor ref No

    Hi All
    I need a sp for checking a vendor ref no  on an invoice if it already exist in the system or the user forgot to include one when trying to add the document.
    I get this error on the one that I created
    16/03/2010  12:21:54: [Microsoft][SQL Native Client][SQL Server]Conversion failed when converting the nvarchar value '24     0' to data type int. (CINF)
    Here is my SP :-
    DECLARE @Invoice AS VARCHAR(15)
    DECLARE @Card AS VarChar (20)
    SELECT @invoice = NumatCard, @card = CardCode FROM dbo.OPCH
    WHERE DocEntry = @list_of_cols_val_tab_del
    if @object_type = '18' and @transaction_type in (N'A', N'U') -- AP Invoice is null
    begin
        If exists (SELECT T0.cardcode, T0.NumAtCard  FROM OPCH T0 where T0.NumatCard is null and  T0.cardcode=@list_of_cols_val_tab_del)
         begin
              SET @error = 10
              SET @error_message = N'Supplier invoice number not entered.'
         END
    END
    SELECT @INVOICE = NumatCard FROM dbo.OPCH
    WHERE DocEntry = @list_of_cols_val_tab_del
    if @object_type = '18' and @transaction_type in (N'A', N'U') -- AP Invoice to check if the invoice no exist
    begin
        If exists (SELECT T0.cardcode, T0.NumatCard  FROM OPCH T0 where T0.NumatCard = @invoice  and  T0.cardcode=@list_of_cols_val_tab_del)
         begin
              SET @error = 10
              SET @error_message = N'This invoice number already exist for this supplier.'
         END
    END
    Regards
    Bongani Dlamini

    This code should be inserted into the original (or already expanded) SBO_SP_TransactionNotification stored procedure after the line
    --     ADD     YOUR     CODE     HERE )
    Try this full (and a little modified) procedure:
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER proc [dbo].[SBO_SP_TransactionNotification]
    @object_type nvarchar(20),                     -- SBO Object Type
    @transaction_type nchar(1),               -- [A]dd, <u>pdate, [D]elete, [C]ancel, C[L]ose
    @num_of_cols_in_key int,
    @list_of_key_cols_tab_del nvarchar(255),
    @list_of_cols_val_tab_del nvarchar(255)
    AS
    begin
    -- Return values
    declare @error  int                    -- Result (0 for no error)
    declare @error_message nvarchar (200)           -- Error string to be displayed
    select @error = 0
    select @error_message = N'Ok'
    --     ADD     YOUR     CODE     HERE
    if @object_type = '18' and @transaction_type in (N'A', N'U') -- AP invoice
    BEGIN          ----
    DECLARE @Invoice AS VARCHAR(15)
    DECLARE @Card AS VarChar (20)
    SELECT @invoice = NumatCard, @card = CardCode FROM dbo.OPCH
         WHERE DocEntry = @list_of_cols_val_tab_del
    -- AP Invoice is null
    If exists (SELECT T0.cardcode, T0.NumAtCard FROM OPCH T0 where T0.NumatCard is null
               and T0.DocEntry=@list_of_cols_val_tab_del)
    begin
    SET @error = 10
    SET @error_message = N'Supplier invoice number not entered.'
    end
    -- AP Invoice to check if the invoice no exist
    If exists (SELECT T0.cardcode, T0.NumatCard FROM OPCH T0 where T0.NumatCard = @invoice
               and T0.CardCode=@card and T0.DocEntry!=@list_of_cols_val_tab_del)
    begin
    SET @error = 10
    SET @error_message = N'This invoice number already exist for this supplier.'
    end
    END          ----
    -- Select the return values
    select @error, @error_message
    end

  • Stored procedure for checking Invoice value if more than R 15 000

    Hi All
    I have a problem with my stored procedure below, i want to check the doctotal if it above R 15 000 , if it is then it checks if the supplier has a tax clearance cert.
    IF @transaction_type = 'A' AND @object_type = '22'
    BEGIN
    If exists (SELECT T0.cardcode, t0.docentry  FROM OPOR T0 where T0.DOCTOTAL >'15,000.00' and T0.U_TAXCLEAR IS NULL AND T0.docentry=@list_of_cols_val_tab_del)
         begin
              SET @error = 10
              SET @error_message = N'Amount is above R 15 000 please select Supplier with Valid Tax Certificate'
    END
    END
    I tried this executing the sp and there was this error
    Msg 208, Level 16, State 6, Procedure SBO_SP_TransactionNotification, Line 41
    Invalid object name 'dbo.SBO_SP_TransactionNotification'.
    In this case line 41 is 2nd END.
    Thanks
    Bongani Dlamini

    Hi all
    Thanks for the replies , forgot to mention a few requirements.
    In addition to the to checking the value above  R 15 000 I want to check if a tax certificate field is populated , if it is then checks if the expiry date is not null.
    please check the query I tried below.
    IF @transaction_type = 'A' AND @object_type = '22'
    BEGIN
        IF EXISTS (SELECT T0.CardCode FROM dbo.OPOR T0
        WHERE T0.DOCTOTAL > 15000 AND T0.U_TAXCLEAR IS NULL AND T0.DocEntry=@list_of_cols_val_tab_del)
        BEGIN
    SET @error = 10
    SET @error_message = 'Amount is above R 15 000, a valid Tax Certificate is required'
    END
    END
    IF @transaction_type = 'A' AND @object_type = '22'
    BEGIN
        IF EXISTS (SELECT T0.CardCode FROM dbo.OPOR T0 WHERE T0.U_EXPIRYDATE IS NULL AND T0.DocEntry=@list_of_cols_val_tab_del)
        BEGIN
    SET @error = 10
    SET @error_message = 'Tax Certificate expiry date is required'
    END
    END
    Thanks
    Bongani Dlamini

  • JDBC Receiver Adapter - Stored Procedure - Error Illegal Parameter

    Hi experts,
    I have a problem with the next scenario:
    HTTP <-> XI -> JDBC
    XI sends the following message to JDBC Adapter in mode Receiver to execute a Stored Procedure in a Informix database:
    <ns0:mt_messageTestSP xmlns:ns0="urn:test">
      <statement>
        <hastus_exporta_dia action="execute">
          <fechaEnvio isInput="true" type="DATE">11/17/2008</fechaEnvio>
        </hastus_exporta_dia>
      </statement>
    </ns0:mt_messageTestSP>
    Note: The format that accepts the SP Informix in the field of type date is: MM/dd/yyyy
    The SP is running on an Informix database, and the parameter (fechaEnvio) that receive the SP is of type DATE. At runtime the SP does not run, and in the Component Monitoring of the Runtime Workbench I see the following error:
    Unable to execute statement for table or stored procedure. 'hastus_exporta_dia' (Structure 'statement') due to java.lang.IllegalArgumentException
    Any idea?
    Thanks,
    Jose.

    Hi,
        Check the date format...once again...
    In oracle date format is DD/MM/YYYY but if the same is sent from PI its throwing the error....
    but when i send the format as DD-Mon-YYYY its accepting and showing as DD/MM/YYYY in oracle tables
    so just try fetching the date field from the informix database and see how it is get converted into..and based on that send the format
    HTH
    Rajesh

  • JDBC adapter Stored Procedure error: parameter was not supplied

    I am trying to call a Stored Procedure 'SP_FUSION_DEBMS_ADRC_MANAGE_CUSTOMER_ADDRESS' in our SQL Server database.
    XI 3.0 Sp13
    Jdbc Url: jdbc:microsoft:sqlserver://161.241.255.91:1433;databaseName=FusionDB;SelectMethod=Cursor
    I am getting following error:
    beging of error-----
    Exception caught by adapter framework: Error processing request in sax parser: Error when executing statement for table/stored proc. 'SP_FUSION_DEBMS_ADRC_MANAGE_CUSTOMER_ADDRESS' (structure 'Statement1'): java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Procedure 'SP_FUSION_DEBMS_ADRC_MANAGE_CUSTOMER_ADDRESS' expects parameter '@control_no', which was not supplied.
    End of error-----
    I have defined the field "control_no" in the interface defenition but I am not sure what causing this error, error message is mis-leading.
    Please let me know if you have any hints/comments?
    thanks,
    Laxman molugu

    Hi Laxman,
    maybe you have checked this already...from the following help link....DECIMAL might be something you might want to try out....
    http://help.sap.com/saphelp_nw04/helpdata/en/2e/96fd3f2d14e869e10000000a155106/frameset.htm
    <i>action=EXECUTE
    Statements with this action result in a stored procedure being executed. The name of the element is interpreted as the name of the stored procedure in the database. If you use the optional <table> element, the value specified here is used as the stored procedure name. This enables you, for example, to define stored procedure names containing non-XML-compatible characters or characters that prevent them from being used in interface definitions in the Integration Builder/PCK.  If specified, <table> must be the first element in the block within <dbTableName>.
    The elements within the stored procedure are interpreted as parameters. They can optionally have the attribute isInput=“1“ (input parameter) or isOutput=“1“ (output parameter) or both (INOUT parameter). If both attributes are missing, the element is interpreted as an input parameter. The parameter names must be identical to those of the stored procedure definition.
    The attribute type=<SQL-Datatype> , which describes the valid SQL data type, is mandatory for all parameter types (IN, OUT, INOUT).
    The following SQL data types are supported:
    INTEGER, BIT, TINYINT, SMALLINT, BIGINT, FLOAT, REAL, DOUBLE, NUMERIC, DECIMAL, CHAR, VARCHAR, STRING, LONGVARCHAR, DATE, TIME, TIMESTAMP, BINARY, VARBINARY, LONGVARBINARY, BLOB (input and output),CLOB (input and output), CURSOR (output; only in conjunction with the Oracle JDBC driver).</i>

  • Stored procedure error in universe structure

    Hi,
    I've inserted a stored procedure in univerese and when i right-click the stored procedure in structure and click table values it is throwing the below error. I am using BO XI R3.1 version and database is MS Sql server 2005. When i checked the connection it is responding.
    Exception:DBD, [Microsoft SQL Native Client]: syntax error, permission violation, or other nonspecific error state: 42000
    Could any one pls help on this issue
    Thanks,
    Eswar

    Guys Thanks for your replies, But I am already aware of all this solutions provided by you.
    The thing I want to bring to your notice is that, in JDBC receiver adapter 'Processing' tab, we have parameter 'Interpretation of Empty String Values'. In PI7.0 even if we select 'NULL Value' the adapter was sending 'Epmty String' instead of Null to database.
    Looks like this issue has been resolved in PI 7.1.
    Is someone aware of this issue???
    Regards,
    Xier

  • Calling the Java Method in PL/SQL Java Stored procedure errors out

    Hi,
    I could not find a suitable thread to post my PL/SQL question so iam posting it here.........
    I have written a java class by name XYZ which has a method ABC for which there are 9 arguements being passed and its a VOID method.
    This java class has been loaded into ORACLE using DBMS_JAVA.LOADJAVA pkg, Now this class is being called in the oracle as a JAVA Stored procedure...... When ever im trying to call the procedure it throws the following error
    ORA-29531: no method
    *Cause:    An attempt was made to execute a non-existent method in a
    Java class.
    *Action:   Adjust the call or create the specified method.
    The code snippet as follows
    JAVA CODE:
    Class xyz
    public static void Abc (String hostName,
    int port,
    String serviceURL,
    String soapAction,
    int timeOut,
    String wsUser,
    String wsPasWd,
    String keyStore,
    String keyStorePasWd)
    //method implementation
    JAVA STORED PROCEDURE:
    create OR REPLACE procedure ABC_JAVA_SP_CALL
    (p_hostname in varchar2, p_port in number, p_serviceurl in varchar2, p_soapaction in varchar2, p_timeout in number, p_wsuser in varchar2, p_wspasswd in varchar2, p_ks_path in varchar2, p_ks_passwd in varchar2)
    as
    language java
    name 'xyz.Abc(java.lang.String, int, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String, java.lang.String)';
    When i try to call
    declare
    p_hostname varchar2(100);
    p_port number;
    p_serviceurl varchar2(100);
    p_soapaction varchar2(100);
    p_timeout number;
    p_wsuser varchar2(100);
    p_wspasswd varchar2(100);
    p_ks_path varchar2(100);
    p_ks_passwd varchar2(100);
    begin
    //SP which returns the values for the required parameters.
    comppkg.getvcsinfo(
    p_hostname,
    p_port ,
    p_serviceurl,
    p_soapaction,
    p_timeout,
    p_wsuser,
    p_wspasswd,
    p_ks_path,
    p_ks_passwd
    Layer7_icengc_ws_tes(p_hostname,
    p_port ,
    p_serviceurl,
    p_soapaction,
    p_timeout,
    p_wsuser,
    p_wspasswd,
    p_ks_path,
    p_ks_passwd);
    end;
    This thing ends up with
    29531. 00000 - "no method %s in class %s"
    *Cause:    An attempt was made to execute a non-existent method in a
    Java class.
    *Action:   Adjust the call or create the specified method.
    Im not understanding what wrong am i doing
    pls help
    Edited by: madhusudan on Feb 12, 2013 8:07 PM

    Hello,
    there is the forum {forum:id=65} for questions about using Java within Oracle.
    Regards
    Marcus
    Edited by: Marwim on 13.02.2013 07:56
    I could not find a suitable thread to post my PL/SQL question so iam posting it here.........You got the hint to the correct forum alread in another thread {message:id=10837976}
    And if you think this is not related to Java but PL/SQL, then you should ask in {forum:id=75}

  • SSRS Calling a Stored Procedure error : PLS-00306: wrong number or types of arg...

    Hi,
    My Problem is when im adding dataset with stored procedure, im getting this error.
    I Can access database, 
    Could not create a list of fields for the query. Verify that you can connect to the data source and that your query syntax is correct.
    ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to 'PROCEDURE_NAME' ORA-06550: line 1, column 7: PL/SQL:
    Statement ignored
    stored procedure is simple select :
    CREATE OR REPLACE PROCEDURE [PROCEDURE_NAME](L_CURSOR out SYS_REFCURSOR)
    is
    Begin
    open L_CURSOR for
    SELECT [columnname] FROM
    [tablename]
    End;
    Configuration Details:
    DB: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64biOracle Developer Tools for Visual Studio Copyright (c) 2005,2014 SQL Server Data Tools Type: Oracle , Data Provider : .Net Framework Data Provider For Oracle

    The answer is of inside question. It is about provider. Change my provider ODTwithODAC for 10g (my database version). And problem resolved.
    Thank you for your helps,
    Regards,
    Arda

  • Crystal Report That Uses Stored Procedure Errors when connecting to the DB

    We had developed reports a few years ago, including one that calls a Stored Procedure on an iSeries AS400 DB2 database.  We upgraded our environments to Crystal Reports 2008 and BO XI 3.1.  Now, the existing report that previously ran in the old environment is not running (note that the other SQL-based reports work without a problem, only this one which uses a store procedure is not working).  I downloaded the report into my local Crystal Reports designer and tried to run it from there and I got the following error message:
    ======
    Failed to retieve data from the database.
    Details: ADO Error Code: 0x
    Source Microsoft OLE DB Provider for ODBC Drivers
    Description: [IBM][iSeries Access ODBC Driver] Statement violates access rule:  Connection is set to read only.
    SQL State: 37000
    Native Error: [Database Vendor Code: 30186 ]
    ======
    {CALL "<database>"."<library>"."RELEASEDNOTINVOICE"({d '2010-03-01'})}
    This call will still work from on a SQL client running on a JDBC connection.  Is there some problem with the new verion of BO and Crystal Reports with using the iSeries ODBC driver?

    ...my issue was resolved by setting the ODBC.INI registry entry for AllowProcCalls from 0 to 1.

  • Bea type 4 db2 driver-stored procedure error

    Iam creating a connection pool in weblogic 9.2 MP2
    using bea type 4 db2 driver and excuting a stored procedure.Iam getting following error
    I enabled spy
    spy(2008/02/13 09:41:58.050)>> Driver Name = DB2
    spy(2008/02/13 09:41:58.050)>> Driver Version = 3.60.24 (023731.010811.022315)
    spy(2008/02/13 09:41:58.050)>> Database Name = DB2/MVS
    spy(2008/02/13 09:41:58.050)>> Database Version = 8.1.5
    spy(2008/02/13 09:44:11.063)>> java.sql.SQLException: [BEA][DB2 JDBC Driver][DB2]UNACCEPTABLE SQL STATEMENT ErrorCode=-84 SQL
    State=42612
    The code is using
    CALL SP03 (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
    as follows
    String sql = "CALL SP03 (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
    myCallableStmt = con.prepareCall(sql);
    is ther are any issues in calling stored procedure with type 4 bea db2 driver.
    connectrion pool details
    jdbc:bea:db2://server:447
    weblogic.jdbc.db2.DB2Driver
    user=user
    LocationName=server
    portNumber=447
    serverName=host
    batchPerformanceWorkaround=true
    The code is working fine with type 2 ibm driver connection pool
    Also Iam trying with ibm type 4 driver
    Iam getting following error in configuration itself
    <Feb 13, 2008 11:18:44 AM EST> <Error> <JDBC> <BEA-001112> <Test "SELECT COUNT(*) FROM
    abc.xy_def" set up for pool "DataSourceIBM" failed with exception: "com.ibm.db2.jcc.a.SqlException: DB2 SQL error: SQLCODE: -725,
    SQLSTATE: 42721, SQLERRMC: CLIENT APPLNAME;server".>
    details
    jdbc:db2://mvsavt1_vipa.corpny.csfb.com:447/server
    com.ibm.db2.jcc.DB2Driver
    user=user
    locationName=server
    portNumber=450
    drivertype=4
    Any configuration required at db2 server

    Ok, Odd. Please email this post (the code below) and the
    output of each to [email protected] and ask them to investigate
    why one driver finds the procedure and the other doesn't.
    This will get back to me officially, and then I will be able
    to enlist all the resources to debug it. Is the stored
    procedure owned by the same schema as your 'user'?
    Mohamed Rabbani P M wrote:
    Joe,
    It is the same code you gave
    BEA Driver Code
    import java.io.*;
    import java.util.*;
    import java.net.*;
    import java.sql.*;
    import weblogic.common.*;
    public class dddb2
    public static void main(String argv[])
    throws Exception
    Connection c = null;
    try
    java.util.Properties props = new java.util.Properties();
    Driver d = (Driver)Class.forName("weblogic.jdbc.db2.DB2Driver").newInstance();
    props.put("user", "user");
    props.put("password", "password");
    props.put("locationName", "dbserver");
    String URL = "jdbc:bea:db2://dbhost:447";
    c = d.connect(URL, props);
    DatabaseMetaData dm = c.getMetaData();
    System.out.println(dm.getDriverVersion());
    System.out.println("Database version is " + dm.getDatabaseProductVersion() );
    CallableStatement p = c.prepareCall("{ CALL SP03 (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) }");
    p.setInt(1,1234);
    p.setString(2,"XYZ");
    p.setString(3,"XYZ");
    p.setInt(5,1234);
    p.setString(6,"");
    p.setString(7,"XYZ");
    p.setString(9,"XYZ");
    p.setString(12,"XYZ");
    p.registerOutParameter(4,Types.INTEGER);
    p.registerOutParameter(8,Types.INTEGER);
    p.registerOutParameter(10,Types.INTEGER);
    p.registerOutParameter(11,Types.INTEGER);
    p.registerOutParameter(13,Types.INTEGER);
    p.setFetchSize(3);
    p.execute();
    catch (Exception e)
    { e.printStackTrace(); }
    finally
    { try {c.close();}catch (Exception e){} }
    IBM Driver Code
    import java.io.*;
    import java.util.*;
    import java.net.*;
    import java.sql.*;
    import weblogic.common.*;
    public class dddb2ibm
    public static void main(String argv[])
    throws Exception
    Connection c = null;
    try
    java.util.Properties props = new java.util.Properties();
    Driver d = (Driver)Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance();
    props.put("user", "user");
    props.put("password", "password");
    //props.put("databaseName", "dbserver");
    String URL = "jdbc:db2://dbhost:447/dbserver";
    c = d.connect(URL, props);
    DatabaseMetaData dm = c.getMetaData();
    System.out.println(dm.getDriverVersion());
    System.out.println("Database version is " + dm.getDatabaseProductVersion() );
    CallableStatement p = c.prepareCall("{ CALL SP03 (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) }");
    p.setInt(1,1234);
    p.setString(2,"XYZ");
    p.setString(3,"XYZ");
    p.setInt(5,1234);
    p.setString(6,"");
    p.setString(7,"XYZ");
    p.setString(9,"XYZ");
    p.setString(12,"XYZ");
    p.registerOutParameter(4,Types.INTEGER);
    p.registerOutParameter(8,Types.INTEGER);
    p.registerOutParameter(10,Types.INTEGER);
    p.registerOutParameter(11,Types.INTEGER);
    p.registerOutParameter(13,Types.INTEGER);
    p.setFetchSize(3);
    p.execute();
    catch (Exception e)
    { e.printStackTrace(); }
    finally
    { try {c.close();}catch (Exception e){} }

  • Stored Procedure error with JDBC:ODBC

    Hi,
    I am trying to run a stored procedure on RDMS (Uniaccess ODBC). This has 2 input parameters and returns a resultset of 3 columns. The following is the error I am getting and am stumped. Please help..
    (similar call statement works with VB and ADO)
    --------output ---------------
    Calling MGC005
    inside resultset sun.jdbc.odbc.JdbcOdbcCallableStatement@129206
    row 1
    get string 0004
    get string 00000
    get string
    SQLEcception : java.sql.SQLException: [AIS][UniAccess ODBC Driver]Invalid Column Number//Specified column is before the column specified in the previous call
    ----------------------source code ------------------
    import java.awt.Graphics;
    import java.sql.*;
    public class JdbcTest {
    public JdbcTest() {
         Connection con;
         CallableStatement stmt;
    try {
    Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver");
    catch (Exception ex) {
    System.out.println ("Database Driver not found");
    System.exit(0);
    try {
    String msDbUrl = "jdbc:odbc:CMS_TEST_ODBC";
    con = DriverManager.getConnection(msDbUrl, user, password );
    stmt = con.prepareCall("{ call MGC005(?, ?)}");
              stmt.setString( 1, "CH" );
              stmt.setString( 2, "ARRINGTON0909170320010615" );
    //          stmt.registerOutParameter( 1, java.sql.Types.VARCHAR);
    //          stmt.registerOutParameter( 2, java.sql.Types.VARCHAR );
    //           stmt.registerOutParameter( 3, java.sql.Types.VARCHAR );
              System.out.println( "Calling MGC005 " );
         ResultSet rs = stmt.executeQuery();
              while (rs.next()) {
    System.out.println( " inside resultset " + rs.getStatement() );
    System.out.println( " row " + rs.getRow() );
    System.out.println( " get string " + rs.getString(1) );
    System.out.println( " get string " + rs.getString(2) );
    System.out.println( " get string " + rs.getString(3) );
              String i = rs.getString (1);
              String s = rs.getString (2);
              String t = rs.getString (3);
    String text = i + " " + s ;
    System.out.println ( " Output " + text);
         stmt.close();
    con.close();
    } catch( SQLException ex ) {
    System.out.println ("SQLEcception : " + ex);
    public static void main(String[] args) {
    new JdbcTest();
    }

    Hi,
    The error seems to occur on the line:
    String i = rs.getString (1);
    The error exactly states what is occuring: "Specified column is before the column specified in the previous call". Try limiting the call to getString() to one for each column for each row.
    Try replacing these lines:
    System.out.println( " get string " + rs.getString(1) );
    System.out.println( " get string " + rs.getString(2) );
    System.out.println( " get string " + rs.getString(3) );
    String i = rs.getString (1);
    String s = rs.getString (2);
    String t = rs.getString (3);
    with something like:
    String i = rs.getString (1);
    System.out.println( " get string " + i);
    String s = rs.getString (2);
    System.out.println( " get string " + s);
    String t = rs.getString (3);
    System.out.println( " get string " + t);
    Hope this works,
    Kurt.

  • Callable statement with oracle stored procedure error

    i'm calling a stored procedure in java with the following code. However i constantly recieve this error
    so what is going on please HELP
    Parameter Type Conflict: sqlType=2006
    my call statement would be this:
    call Statement = {call getUserByLogin(?,?,?,?)}
    if(storedProcedureName=="getUserByLogin"){
    strCStmt = ("{call " + storedProcedureName +"(?,?,?,?) }");
    cStmt.setObject(1, "system");
    cStmt.setObject(2, "username");
    cStmt.setObject(3,"password");
    cStmt.registerOutParameter(4, java.sql.Types.REF);
    rs = cStmt.executeQuery();
    i've also tried it with a setString as the IN parameter:
    here's the stored procedure:
    CREATE OR REPLACE PROCEDURE getUserByLogin (
    arg_subscriptionName IN varchar,
    arg_loginName IN varchar,
    arg_password IN varchar,
    arg_rec_userinfo_valLanguage OUT types.rec_userinfo_valLanguage
    ) AS
    var_userNum int;
    BEGIN
    select
    u.userNum into var_userNum
    from
    userInfo u,
    subscription s
    where
    s.subscriptionName = arg_subscriptionName AND
    s.subscriptionNum = u.subscriptionNum AND
    u.loginName = arg_loginName AND
    u.password = arg_password;
    if (var_userNum is null) then
    var_userNum := 0;
    end if;
    getUser(var_userNum, arg_rec_userinfo_valLanguage);
    END;

    i'm calling a stored procedure in java with the
    following code. However i constantly recieve this
    error
    so what is going on please HELP
    Parameter Type Conflict: sqlType=2006
    my call statement would be this:
    call Statement = {call getUserByLogin(?,?,?,?)}
    if(storedProcedureName=="getUserByLogin"){
    strCStmt = ("{call " + storedProcedureName +"(?,?,?,?)
    cStmt.setObject(1, "system");
    cStmt.setObject(2, "username");
    cStmt.setObject(3,"password");
    cStmt.registerOutParameter(4, java.sql.Types.REF);
    rs = cStmt.executeQuery();
    i've also tried it with a setString as the IN
    parameter:
    here's the stored procedure:
    CREATE OR REPLACE PROCEDURE getUserByLogin (
    arg_subscriptionName IN varchar,
    arg_loginName IN varchar,
    arg_password IN varchar,
    arg_rec_userinfo_valLanguage OUT
    types.rec_userinfo_valLanguage
    ) AS
    var_userNum int;
    BEGIN
    select
    u.userNum into var_userNum
    from
    userInfo u,
    subscription s
    where
    s.subscriptionName = arg_subscriptionName AND
    s.subscriptionNum = u.subscriptionNum AND
    u.loginName = arg_loginName AND
    u.password = arg_password;
    if (var_userNum is null) then
    var_userNum := 0;
    end if;
    getUser(var_userNum, arg_rec_userinfo_valLanguage);
    END;
    /Hai,
    Try with this if u are using Oracle.
    import oracle.sql.*;
    import oracle.jdbc.driver.*;
    (inbetween ur code)
    cStmt.registerOutParameter(4, OracleTypes.CURSOR);
    //in place of "cStmt.registerOutParameter(4, java.sql.Types.REF);"
    Hope u reply with joy.
    regards,
    Siva Kumar Annavaram

  • ERP2005 SR3 Create SAP Stored Procedures Error

    Hi Seniors,
    I have tried to install SAP ERP ECC 6.0 IDES ERP2005 SR3 , I got the error in installation step 19/26 (Create SAP Stored Procedures).
    OS : WIN 2008 SERVER
    DB : MS SQL 2008
    I have fallow the Note 1152240.
    Error log :
    ERROR 2010-03-02 12:08:20.282
    FCO-00011  The step ExeProcs with step key |NW_Onehost|ind|ind|ind|ind|0|0|NW_Onehost_System|ind|ind|ind|ind|2|0|NW_CreateDBandLoad|ind|ind|ind|ind|10|0|NW_Postload|ind|ind|ind|ind|10|0|NW_Postload_MSS|ind|ind|ind|ind|2|0|MssProcs|ind|ind|ind|ind|1|0|ExeProcs was executed with status ERROR .
    Please help me, 
    Thank you,
    Sagar K

    > I have tried to install SAP ERP ECC 6.0 IDES ERP2005 SR3 , I got the error in installation step 19/26 (Create SAP Stored Procedures).
    >
    > OS : WIN 2008 SERVER
    > DB : MS SQL 2008
    See note 1244548 - IDES ERP 6.0 ECC 6.0 SR3:
    <...>
    Microsoft SQL Server 2008:
    An Installation of this IDES version on MSSQL 2008 is NOT possible.
    Please use MSSQL 2005 as database version
    <...>
    The reason is that the SAP_BASIS support package is too low.
    Markus

  • BI Publisher 11g - calling SQL Server 2005 stored procedure error

    Hi experts
    I have been calling succesfully an SQL server 2005 stored procedure for the data model of a BI publisher report in 10g, passing it a customerNo parameter.
    EXEC     [dbo].[usp_WelcomeLettersConsumerNo]
              @CustomerNo = :sCustomerNo
    However it does not work in 11g I get the error:
    [Hyperion][SQLServer JDBC Driver][SQLServer]Incorrect syntax near the keyword 'is'.
    which is frustrating as there is no 'is' in the statement (perhaps it is picking up :s?) - I wonder does anyone know if there has been a change in 11g that may be causing this?
    cheers
    Tim

    Hi experts
    I have been calling succesfully an SQL server 2005 stored procedure for the data model of a BI publisher report in 10g, passing it a customerNo parameter.
    EXEC     [dbo].[usp_WelcomeLettersConsumerNo]
              @CustomerNo = :sCustomerNo
    However it does not work in 11g I get the error:
    [Hyperion][SQLServer JDBC Driver][SQLServer]Incorrect syntax near the keyword 'is'.
    which is frustrating as there is no 'is' in the statement (perhaps it is picking up :s?) - I wonder does anyone know if there has been a change in 11g that may be causing this?
    cheers
    Tim

  • Problem with a stored procedure (Error(4,1): PLS-00428: an INTO clause..)

    Dear Oracle Experts,
    I try to use the stored procedure below but get this error :
    "Error(4,1): PLS-00428: an INTO clause is expected in this SELECT statement"
    I don't have any clue what could be wrong with my syntax. INTO wouldn't make any sense at this task.
    Does someone of you know what's wrong with my Procedure ?
    Hope someone can help,
    best regards,
    Daniel Wetzler
    create or replace PROCEDURE AnalysisCompatibility (DATEBEGIN timestamp, DATEEND timestamp)
    AS
    BEGIN
    select Fs.*,Vs.Analysispriority,Vs.Compatibility Compatibility from SigFacts Fs
    inner Join Variables Vs On
    (Fs.Var_Ref=Vs.Var_Ref and Fs.Machines_Ref=Vs.Machines_Ref )
    where Fs.DT between DATEBEGIN and DATEEND
    and
    Vs.AnalysisPriority > 0
    or
    VS.Compatibility in (6,7,8,9,10,11,13,21,22)
    order by Fs.DT,Fs.Machines_Ref desc, Vs.AnalysisPriority;
    END AnalysisCompatibility;

    I have created a table (ATREPORT.TEST) that has has got the same column name and type of the query output and i still get error message
    PLS-00403 -- statement ATreport.TESt cannot be used as an into target, pls help
    DECLARE start_date DATE := to_date('01/09/2006' , 'DD-MON-YYYY');
    end_date DATE := to_date('30/09/2006' , 'DD-MON-YYYY');
    BEGIN
    SELECT t.SEC_SHORT_NAME, t.SEC_ISIN, t.SEC_NO,t.SEC_NAME, t.TRADE_DATE,
    t.PAYMENT_DATE,t.COUNTERPARTY, t.PRICE , t.NOMINAL ,
                        t.TRANSACTION_NO,t.CURRENT_VALUE_PC, t.CURRENT_VALUE_SC, t.PAYMENT_AMOUNT_PC,
                        t.PAYMENT_AMOUNT_SC,
                   ct.AMOUNT , ct.CURRENCY,
              sb.BUSINESS_CLASS_LEVEL_2 ,sb.BUSINESS_CLASS_LEVEL_2_NAME,
              sb.BUSINESS_CLASS_LEVEL_3 ,sb.BUSINESS_CLASS_LEVEL_3_NAME,
              sb.BUSINESS_CLASS_LEVEL_4 ,sb.BUSINESS_CLASS_LEVEL_4_NAME,
    sb.BUSINESS_CLASS_LEVEL_5 ,sb.BUSINESS_CLASS_LEVEL_5_NAME
    INTO ATREPORT.TEST
    from scdat.A_TRANSACTIONS t
    INNER JOIN scdat.A_COSTTAX ct     
         ON ct.TRANS_REF = t.TRANS_REF
    INNER JOIN scdat.A_SECS_BUSINESS_CLASS_TS sb
    ON sb.SEC_REF = t.SEC_REF           
    where t.TRADE_DATE >= to_char(start_date ,'DD-MON-YYYY')
    and t.TRADE_DATE < to_char(end_date ,'DD-MON-YYYY')
    and ct.COST_NAME = 'Broker commission'
    and sb.BUSINESS_CLASS_DEFINITION = 'FTSE';
    END;

Maybe you are looking for