Arrays as out param on stored procedure causes hang

Hi,
I would like to be able to use an ARRAY to pass data back from a java stored procedure. Calling the stored procedure using jdbc, the procedure hangs. If I change the out param to a VARCHAR, the procedure works fine (although, of course, the size of the data returned is limited).
I defined a varray type:
CREATE TYPE str_array AS VARRAY(100) OF VARCHAR2(255);
I defined the stored procedure:
CREATE OR REPLACE PROCEDURE ob_snapshot(symbol VARCHAR2, start_time DATE, end_time DATE, interval NUMBER, depth NUMBER, output_result IN OUT STR_ARRAY)
AS LANGUAGE JAVA
NAME 'OBSnapshot.snapshot(java.lang.String, java.sql.Timestamp, java.sql.Timestamp, int, int, oracle.sql.ARRAY[])';
The execute on the CallableStatement never finshes. Any ideas ?
Thanks for the help,
Chris Opler
null

I recommend you declare your iterator as follows :
public class yourApp {
#sql public static iterator Temp1 (...);
null

Similar Messages

  • URGENT!!! a way to find out if Oracle stored procedures have OUT parameters

    I'm having problemes properly creating a string for the prepareCall().
    so that i can call up a stored procedure in oracle.
    the problem is that some stored procedures have OUT parameters that I have to register, and some stored procedures don't.
    how can i find out if a stored procedure has an OUT parameter or not?
    So that i can format a string with one less ? for statements that don't,
    and one more ? for statements that do have an OUT parameter.
    is there such a method as boolean OUTparameterExist();
    or i'll take any suggestions.

    any other solutions?That was the solution. You don't need to execute any sql statement to get Database Meta Data. You just need a connection, which you use to get the DatabaseMetaData instance
    DatabaseMetaData dbmd = connection.getMetaData();then invoke any of the (numerous) methods to get the info you require
    ResultSet rs = dbmd.getProcedureColumns("mydb","myschema","myproc",null);
    while(rs.next()) {
      String name = rs.getString("COLUMN_NAME");
      if (rs.getShort("COLUMN_TYPE")==DatabaseMetaData.procedureColumnOut) {
        // column is an OUT parameter
    }Dave

  • Problems getting a resultset out of a stored procedure

    We're having a problem getting a resultset out of a stored procedure with JDBC. The third parameter for the procedure is an out REF CURSOR. Connection to the database is fine, we just keep getting the following error when we do the GetCursor(3) statement:
    ORA-00942: table or view does not exist
    We know for definate that something is coming out of the database as we can call it from ODBC without any errors. If anyone's got any ideas as to what's going wrong please let me know!
    The cut-down code follows:
    public class JSMatt extends HttpServlet {
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException {
    PrintWriter out = resp.getWriter();
    // Load the Oracle JDBC driver
    out.println("Registering driver...");
    Class.forName("oracle.jdbc.driver.OracleDriver");
    // Connect to the DB
    out.println("Connecting to database...");
    Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@computer:db",
    "username", "password");
    // Create a statement using a stored procedure
    out.println("Creating query...");
    OracleCallableStatement st = (OracleCallableStatement)conn.prepareCall ("BEGIN archive.spSrchLanguage (?, ?, ?); END;");
    st.registerOutParameter(3, OracleTypes.CURSOR);
    st.setInt(1, 0);
    st.setInt(2, 12);
    st.execute();
    ResultSet rs = ((OracleCallableStatement)st).getCursor(3);
    null

    Further study of my colleagues issue reveals that the problem only occurs where we are using a synonym for our package even though the user has permissions to run it (and indeed does when using ODBC or OLEDB).
    If we call a procedure in our package which does not return a ref cursor then the procedure is getting called fine (as can be evidenced by the database inserts etc within the procedures).
    Ideally we would like to use a synonym (I like to keep nice clean tidy schemas!) so if anyone knows how to get around it please let us know.
    Regards
    Jason.
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Matthew Butt ([email protected]):
    We're having a problem getting a resultset out of a stored procedure with JDBC. The third parameter for the procedure is an out REF CURSOR. Connection to the database is fine, we just keep getting the following error when we do the GetCursor(3) statement:
    ORA-00942: table or view does not exist
    We know for definate that something is coming out of the database as we can call it from ODBC without any errors. If anyone's got any ideas as to what's going wrong please let me know!
    The cut-down code follows:
    public class JSMatt extends HttpServlet {
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException {
    PrintWriter out = resp.getWriter();
    // Load the Oracle JDBC driver
    out.println("Registering driver...");
    Class.forName("oracle.jdbc.driver.OracleDriver");
    // Connect to the DB
    out.println("Connecting to database...");
    Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@computer:db",
    "username", "password");
    // Create a statement using a stored procedure
    out.println("Creating query...");
    OracleCallableStatement st = (OracleCallableStatement)conn.prepareCall ("BEGIN archive.spSrchLanguage (?, ?, ?); END;");
    st.registerOutParameter(3, OracleTypes.CURSOR);
    st.setInt(1, 0);
    st.setInt(2, 12);
    st.execute();
    ResultSet rs = ((OracleCallableStatement)st).getCursor(3);
    <HR></BLOCKQUOTE>
    null

  • Crystal Report Source is MS SQL Stored Procedure Causes Login Popup

    My environment is this:  Visual Studio 2010 with CRforVS_13_0_9 installed.  MS SQL Server is source for all report data.  I use three different databases for all my reports.
    I have a number of working CR reports that work fine in IDE and at runtime.  However, one report works in IDE report designer Main Report Preview but does not work at runtime.  Instead, it pops up the Database Login dialog box.  This particular report is the only one that I have that uses a Stored Procedure for report source data.  The following code is used for all reports.  Can someone please help me to identify what is causing this anomaly?
         ' _Options contains parameter name and value pairs, if any
         Dim oReport As New ReportDocument()
         Dim FullReportName = "MA_CustomerUsage"
         oReport.Load(FullReportName, OpenReportMethod.OpenReportByDefault)
         DoCRLogin(oReport)
         If _Options.ParameterList IsNot Nothing Then ImplementCRParameters(oReport)
         With CrystalReportViewer
              .SelectionFormula = _SelectionFormula
              .ReportSource = oReport
              .Zoom(zoomPageWidth)
              .ShowParameterPanelButton = False
              .ToolPanelView = ToolPanelViewType.None
         End With
         Private Sub DoCRLogin(ByVal oRpt As ReportDocument)
                Dim oCRDb As Database = oRpt.Database
                Dim oCRTables As Tables = oCRDb.Tables
                Dim oCRTableLogonInfo As CrystalDecisions.Shared.TableLogOnInfo
                Dim DatabaseName = oCRTables(0).LogOnInfo.ConnectionInfo.DatabaseName
                Dim oCRConnectionInfo As New CrystalDecisions.Shared.ConnectionInfo() _
                    With {.DatabaseName = ScanInvenConStrSetting("Initial Catalog=", DatabaseName),
                          .ServerName = ScanInvenConStrSetting("Data Source=", DatabaseName),
                          .IntegratedSecurity = True}
                For Each oCRTable As Table In oCRTables
                    oCRConnectionInfo.DatabaseName = oCRTable.LogOnInfo.ConnectionInfo.DatabaseName
                    oCRTableLogonInfo = oCRTable.LogOnInfo
                    oCRTableLogonInfo.ConnectionInfo = oCRConnectionInfo
                    oCRTable.ApplyLogOnInfo(oCRTableLogonInfo)
                Next
         End Sub
         Private Sub ImplementCRParameters(ByRef oReport As ReportDocument)
                Dim oparamFields = New ParameterValues
                Dim oFieldDefs = oReport.DataDefinition.ParameterFields
                For Each CRParameter In _Options.ParameterList
                    Dim oFieldDef = oFieldDefs("@" & CRParameter.Name)
                    Dim oDiscrete As New ParameterDiscreteValue()
                    oDiscrete.Value = CRParameter.Value.ToString
                    oparamFields.Add(oDiscrete)
                    oFieldDef.ApplyCurrentValues(oparamFields)
                Next
         End Sub
         Private Function ScanInvenConStrSetting(ByVal Src As String, ByVal DBName As String) As String
                Dim MyDB As String = String.Empty
                Select Case DBName.ToUpper
                    Case "Database1".ToUpper
                        MyDB = Global.My.Settings.Database1ConnectionString
                    Case "Database2".ToUpper
                        MyDB = Global.My.Settings.DatabaseConnectionString
                    Case "Database3".ToUpper
                        MyDB = Global.My.Settings.Database3ConnectionString
                End Select
                Dim ndx1 As Integer = InStr(MyDB, Src, CompareMethod.Text) + Src.Length
                Dim ndx2 As Integer = InStr(ndx1, MyDB, ";", CompareMethod.Text)
                If ndx2 = 0 Then ndx2 = MyDB.Length
                ScanInvenConStrSetting = Mid(MyDB, ndx1, ndx2 - ndx1)
         End Function

    Check what else is different with the report:
    1) Connection type (ODBC vs. OLEDB, vs. Native, etc)
    2) Check for subreports
    3) Check that the report uses the SQL Native 10 Driver
    Enable the report options "Verify on 1st refresh" and "Verify stored procedure on 1st refresh".
    Comment out the db logon code as well as the parameter code and let the report prompt. Does that work?
    If it does, add the db logon code but leave the param code commented out. Does that work?
    - Ludek
    Senior Support Engineer AGS Product Support, Global Support Center Canada
    Follow us on Twitter

  • How to retrieve Table of Records output param from stored procedure ?

    Hi,
    I'm trying to retrieve data from a PL/SQL stored proc. It seems I can't modify this procedure (I'm not allowed to and I don't know PL/SQL :)).
    My only documentation is the PL/SQL code and its comments. And that's the first I have to deal with output of a defined complex PL/SQL type
    So the signature of the procedure is :
    FUNCTION FUN_AFF_EVELEG_IHM (
        pEntumTyp       IN          NUMBER,
        pEntnum         IN          VARCHAR2,
        pEveListSize      IN OUT      NUMBER,
        pEveList       IN OUT      pkg_funaff_eveleg.TableRecordEVL,
        pErrCode   IN OUT      VARCHAR2,
        pMessage        IN OUT      VARCHAR2)
      RETURN NUMBER;pkg_funaff_eveleg.TableRecordEVL type is defined as "TABLE of RecordEVL"
    pkg_funaff_eveleg.RecordEVL type is defined as "RECORD" (struct of 12 different fields : NUMBER or VARCHAR2)
    What is the correct syntax to call the stored procedure then ? I don't find how to manage the pEveList output param. Is it a Cursor ? An ARRAY ? And how to register it ?
    My code so far :
    public static void callFunaffEVL(Connection con, String rcs) {
        // CallableStatement procCstmt=null;
        OracleCallableStatement oraCstmt = null;
        try {
          // Identifiy the Stored procedure
          // package synonyme : pkg_aff_EVELEG_IHM
          // stored procedure name : FUN_AFF_EVELEG_IHM
          String command = new StringBuilder("{? = call pkg_aff_EVELEG_IHM.FUN_AFF_EVELEG_IHM(?,?,?,?,?,?");
          // 1 RETURN 
          // 2 pEntumTyp IN NUMBER
          // 3 pEntnum IN VARCHAR2
          // 4 pEveListSize IN OUT NUMBER,
          // 5 pEveList IN OUT pkg_funaff_eveleg.TableauRecordEVL,
          // 6 pErrCpde IN OUT VARCHAR2,
          // 7 pMessage IN OUT VARCHAR2)
          // Create a Callable Statement Object:
          oraCstmt = (OracleCallableStatement) con.prepareCall(command);
          // Assign IN and OUT parameters
          oraCstmt.registerOutParameter(1, OracleTypes.NUMBER); // RET
          oraCstmt.setInt(2, 0); // ENTNUMTYP
          oraCstmt.setString(3, rcs); // ENTNUM
          oraCstmt.registerOutParameter(4, OracleTypes.NUMBER); // pEveListSize
          oraCstmt.registerOutParameter(5, OracleTypes.ARRAY); // pEveList
          oraCstmt.registerOutParameter(6, OracleTypes.VARCHAR); // pErrCode
          oraCstmt.registerOutParameter(7, OracleTypes.VARCHAR); // pMessage
          // Execute the Procedure or Function Call:
          oraCstmt.execute();
          // Process the OUT Placeholders:
          int ret = oraCstmt.getInt(1);
          String errCode = oraCstmt.getString(6);
          String message = oraCstmt.getString(7);
          System.out.println("RCS : " + rcs);
          System.out.println("ret : " + ret);
          System.out.println("errCode : " + errCode );
          System.out.println("message : " + message);
        } catch (SQLException sqle) {
          sqle.printStackTrace();
        } finally {
          // Close the CallableStatement Object:
          try {
            oraCstmt.close();
          } catch (SQLException e) {
            e.printStackTrace();
    Return : java.sql.SQLException: Parameter type Conflict: sqlType=2003
    Any help ? I found several examples that might refer to this case, but everything I tried end by a SQL exception of one type or another...
    (and sorry for my poor english :))
    Cy

    As I said, "pkg_funaff_eveleg.TableRecordEVL" is TABLE of RecordEVL.
    i.e : I can find 2 defined types under the package pkg_funaff_eveleg :
    TYPE TableRecordEVL is TABLE of RecordEVL INDEX BY BINARY_INTEGER;
    TYPE RecordEVL is RECORD (
      EVLENTNUM_PK        EVENEMENTS_LEGAUX.EVLENTNUM_PK%TYPE,
      EVLENTNUMTYP_PK     EVENEMENTS_LEGAUX.EVLENTNUMTYP_PK%TYPE,
      EVLSEQ_PK           EVENEMENTS_LEGAUX.EVLSEQ_PK%TYPE,
      EVLTYPSRC           EVENEMENTS_LEGAUX.EVLTYPSRC%TYPE,
      EVLPK1              EVENEMENTS_LEGAUX.EVLPK1%TYPE,
      EVLPK2              EVENEMENTS_LEGAUX.EVLPK2%TYPE,
      EVLPK3              EVENEMENTS_LEGAUX.EVLPK3%TYPE,
      EVLPK4              EVENEMENTS_LEGAUX.EVLPK4%TYPE,
      EVLPK5              EVENEMENTS_LEGAUX.EVLPK5%TYPE,
      EVLPK6              EVENEMENTS_LEGAUX.EVLPK6%TYPE,
      EVLCODEVTSRC        EVENEMENTS_LEGAUX.EVLCODEVTSRC%TYPE,
      EVLLEGEVECOD        EVENEMENTS_LEGAUX.EVLLEGEVECOD%TYPE,
      EVLSEQREF_FK        EVENEMENTS_LEGAUX.EVLSEQREF_FK%TYPE,
      EVLCOMMENT          EVENEMENTS_LEGAUX.EVLCOMMENT%TYPE,
      EVLETATCOD          EVENEMENTS_LEGAUX.EVLETATCOD%TYPE,
      EVLHISDATPUB        EVENEMENTS_LEGAUX.EVLHISDATPUB%TYPE,
      EVLHISPUBPRE        EVENEMENTS_LEGAUX.EVLHISPUBPRE%TYPE,
      EVLHISDATEFF        EVENEMENTS_LEGAUX.EVLHISDATEFF%TYPE,
      EVLHISEFFPRE        EVENEMENTS_LEGAUX.EVLHISEFFPRE%TYPE,
      EVLHISPOIDATEFF     EVENEMENTS_LEGAUX.EVLHISPOIDATEFF%TYPE,
      EVLHISORICOD        EVENEMENTS_LEGAUX.EVLHISORICOD%TYPE,
      EVLHISSUPPORTCOD    EVENEMENTS_LEGAUX.EVLHISSUPPORTCOD%TYPE,
      EVLHISNUMSUPPORT    EVENEMENTS_LEGAUX.EVLHISNUMSUPPORT%TYPE,
      EVLHISNUMINF        EVENEMENTS_LEGAUX.EVLHISNUMINF%TYPE,
      ANNNUMBODPCL        CBODACCPROD.CODANN2.ANNNUMBOD%TYPE
    );If needed, I can translate each "EVENEMENTS_LEGAUX.EVLENTNUM_PK%TYPE", but they must be VARCHAR2 or NUMBER
    Do I answer your question ?

  • XML CLOB out from a stored procedure

    I'm using Oracle 8.1.7 and OO4O(Oracle Objects for OLE)
    8.1.7.0.1
    I'm generating an XML string in a CLOB using the XSU in a stored
    procedure.
    I'm then trying to pass the CLOB as an out parameter for that
    procedure to an
    ASP page using OO4O. I get the following error on the line
    where I call the ExecuteSql
    method of the OO4O Database object:
    Error Type:
    Oracle Automation (0x800A01B8)
    OIP-04796: Error in creating object instance
    If anyone can give me a a solution to this or a better way to
    do it I would much appreciate it. I've tried using a function
    as well.
    It does work if the CLOB is pulled from a database field, so I
    think
    the problem lies in the CLOB coming from the getXML method.
    Since I'm
    creating and XML datagram from relational tables, it doesn't
    make much
    sense to save the generated XML to a CLOB field and then load it
    right
    back to pass to the web page.
    Thanks in advance...
    Here's my code for the stored procedure:
    Procedure SP_INI_XML
    (result OUT CLOB)
    IS
    queryCtx SYS.DBMS_XMLQuery.ctxType;
    begin
    queryCtx := SYS.DBMS_XMLQuery.newContext(... SQL
    statement ...);
    SYS.DBMS_XMLQuery.setRowTag(queryCtx,'INI');
    SYS.DBMS_XMLQuery.setRowsetTag(queryCtx,'ROOT');
    SYS.DBMS_XMLQuery.setXSLT(queryCtx, 'http://site/file.xsl');
    result := SYS.DBMS_XMLQuery.getXML(queryCtx);
    SYS.DBMS_XMLQuery.closeContext(queryCtx);
    end;
    Here's my code from the ASP page:
    Set ses = Server.CreateObject("OracleInProcServer.XOraSession")
    Set con = ses.OpenDatabase(DBServer,ConStr,0)
    Const ORATYPE_CLOB = 112
    con.Parameters.Add "str",Null,2,ORATYPE_CLOB
    con.ExecuteSql("begin SP_INI_XML(:str);end;")

    Ah yes I see. Sorry I misunderstood what you were suggesting. I'm currently working on a test script that uses an approach similar to the one you mentioned, but I'm having trouble resolving foreign key relationships with test data.
    I've no access to the tables or anything so it's proving to be a time consuming task!!
    Is it required that all fields are given a value, even if they have a "DEFAULT" defined for them within the procedure. At the moment I'm using a rather cumbersome approach to this:
    i.e.
    With cmmAddRequest
        .ActiveConnection = strConnect
        .CommandType = adCmdText
        .CommandText = strSQL
        .Parameters(0).Direction = adParamInput
        .Parameters(1).Direction = adParamInput
        .Parameters(2).Direction = adParamInput
        .Parameters(3).Direction = adParamOutput
        .Parameters(4).Direction = adParamOutput
        .Parameters(5).Direction = adParamOutput
        .Parameters(0).Value = "COMP"
        .Parameters(1).Value = "FRML"
        .Parameters(2).Value = "1"
        .Execute
        WScript.Echo(.Parameters(5).Value)
    End With

  • Get out values from stored procedure

    Hi folks,
    I have need of an aid. I have created this stored procedure:
    CREATE OR REPLACE PROCEDURE ProceduraDiProva (
    p_val1 IN NUMBER DEFAULT 1,
    p_val2 IN NUMBER DEFAULT 1,
    p_val3 OUT NUMBER,
    p_val4 OUT NUMBER)
    AS
    BEGIN
    p_val3 := p_val1 + p_val2;
    p_val4 := 999;
    END ProceduraDiProva;
    I call the procedure into shell script
    $ORACLE_HOME/bin/sqlplus -s user/pwd@oracleid > oracle.log << END
    spool ciccio.txt
    declare
    var a_out number;
    var b_out number;
    begin
    var a_out:=0;
    exec ProceduraDiProva(1, 2, a_out, b_out);
    end;
    spool off;
    exit
    END
    I would know as I make to insert 'a_out' and 'b_out' in a shell variables
    Tanks in advance

    I found an example with windows
    Create a file cmd with;
    FOR /F "usebackq delims=!" %%i IN (`sqlplus -s %usuario%/%pwd%@%ddbb% @1.sql`) DO set xresult=%%i
    echo %xresult%
    And the 1.sql:
    set timing off
    set feedback off
    set pages 0
    select sysdate from dual;
    exit
    ------------------------------------------------------------------------------------------

  • Cannot get OUT parameter from stored procedure

    Hi,
    I am new to stored procedure programming. I wrote a simple java stored procedure as follows:
    package fvt;
    import java.sql.*;
    import java.io.*;
    public class FVTProcedures
    extends COM.ibm.db2.app.StoredProc {
    public void addRecord(int id, String name, int status)
    throws SQLException {
    java.sql.Statement stmt = null;
    java.sql.Connection con = null;
    PrintWriter pw = null;
    try {
    status =3;
    pw = new PrintWriter(new FileWriter("c:/temp/fvtproc.txt"));
    pw.println("starting...");
    // get connection
    con =getConnection();
    pw.println("Got connection");
    stmt = con.createStatement();
    stmt.execute("INSERT INTO cmtest (id, name) values (" + id + ",'"+name+"')");
    pw.println("Inserted the record");
    if (!con.getAutoCommit()) {
    con.commit();
    pw.println("Committed the connection");
    catch (SQLException sqle) {
    pw.println(sqle.getMessage());
    catch (Exception e) {
    pw.println(e.getMessage());
    finally {
    status =2;
    pw.close();
    try {
    if (stmt != null) {
    stmt.close();
    catch (SQLException sqle) {}
    try {
    if (con != null) {
    con.close();
    catch (SQLException sqle) {}
    Then I use the following sql command to create this stored procedure, especially register status as OUT parameter.
    CREATE PROCEDURE addRecord (IN id INT, IN name VARCHAR(20), OUT status INTEGER)
    FENCED LANGUAGE JAVA EXTERNAL NAME 'fvt.FVTProcedures!addRecord' PARAMETER
    STYLE DB2GENERAL
    My java program calling this stored proc is as follows:
    import java.sql.*;
    import javax.sql.*;
    public class CallableStmtTest {
         COM.ibm.db2.jdbc.DB2ConnectionPoolDataSource ds = null;
         public static void main(String args[]) {
              CallableStmtTest dt = new CallableStmtTest();
              try {
                   dt.test();
              } catch (Exception e) {
                   e.printStackTrace(System.out);
         public CallableStmtTest() {
              ds = new COM.ibm.db2.jdbc.DB2ConnectionPoolDataSource();
              ds.setUser("username");
              ds.setPassword("password");
              ds.setDatabaseName("database");
    public void test() {
    java.sql.Connection conn = null;
    CallableStatement cs = null;
    String sql = "CALL ADDRECORD(?, ?, ?)" ;
    try {
    conn = ds.getPooledConnection().getConnection();
    conn.setAutoCommit(false);
    System.out.println("Got the connection");
    cs = conn.prepareCall( sql ) ; /* con is the connection */
    System.out.println("Callable statement is prepared");
    cs.registerOutParameter(3, java.sql.Types.INTEGER);
    cs.setInt(1, 1001 );
    cs.setString(2, "1001");
    cs.execute() ;
    System.out.println("Callable statement is executed, return status: "+cs.getInt(3));
    conn.commit();
    catch(SQLException sqle) {
    sqle.printStackTrace();
    finally {
    try {
    if (cs!=null) {cs.close();}
    catch (SQLException sqle1) {
    try {
    if (conn!=null) {conn.close();}
    catch (SQLException sqle1) {
    However, the out put is always
    Callable statement is executed, return status: 0
    while i expect to be
    Callable statement is executed, return status: 2
    Can anyone tell me what's wrong with that?
    thansk,
    JST

    public void addRecord(int id, String name, int status)
    throws SQLException {
    status =3;In regular java you are never going to see this value (3) outside of that method. Java doesn't work that way.
    So unless java inside the DB works really differently from regular java, you are going to have to pass something else.

  • 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

  • Invoke stored procedure cause strange exception

    Hi, I'm using JDev 11.1.2, the use case is: add a new row to the VO iterator filtered by some view criteria and call a stored procedure before commit.
    The application runs fine without calling the stored procedure, however, following exception will occur if it's called.
    The stored procedure will do some update to a remote DB2 via DB link. Though the exception stack trace shows that the SP has error, but if I run it separately in some SQL tool, it is ok.
    The "BO_SP" problem seems not to be caused by the 'new row state'.
    Does any one have any tips for this problem? Thanks!
    <LifecycleImpl> <_handleException> ADF_FACES-60098:Faces lifecycle receives unhandled exceptions in phase INVOKE_APPLICATION 5
    oracle.jbo.DMLException: JBO-26041: Failed to post data to database during "Savepoint": SQL Statement "BO_SP".
         at oracle.jbo.server.DBTransactionImpl.setSavepoint(DBTransactionImpl.java:3184)
         at oracle.jbo.server.DBTransactionImpl.saveTmpPostState(DBTransactionImpl.java:1791)
         at oracle.jbo.server.DBTransactionImpl.commitInternal(DBTransactionImpl.java:2065)
         at oracle.jbo.server.DBTransactionImpl.commit(DBTransactionImpl.java:2352)
         at oracle.adf.model.bc4j.DCJboDataControl.commitTransaction(DCJboDataControl.java:1590)
         at oracle.adf.model.binding.DCDataControl.callCommitTransaction(DCDataControl.java:1415)
         at oracle.jbo.uicli.binding.JUCtrlActionBinding.doIt(JUCtrlActionBinding.java:1428)
         at oracle.adf.model.binding.DCDataControl.invokeOperation(DCDataControl.java:2169)
         at oracle.jbo.uicli.binding.JUCtrlActionBinding.invoke(JUCtrlActionBinding.java:731)
         at oracle.adf.controller.v2.lifecycle.PageLifecycleImpl.executeEvent(PageLifecycleImpl.java:402)
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlActionBinding._execute(FacesCtrlActionBinding.java:252)
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlActionBinding.execute(FacesCtrlActionBinding.java:210)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at com.sun.el.parser.AstValue.invoke(Unknown Source)
         at com.sun.el.MethodExpressionImpl.invoke(Unknown Source)
         at oracle.adf.controller.internal.util.ELInterfaceImpl.invokeMethod(ELInterfaceImpl.java:173)
         at oracle.adfinternal.controller.activity.MethodCallActivityLogic.execute(MethodCallActivityLogic.java:163)
         at oracle.adfinternal.controller.engine.ControlFlowEngine.executeActivity(ControlFlowEngine.java:1035)
         at oracle.adfinternal.controller.engine.ControlFlowEngine.doRouting(ControlFlowEngine.java:926)
         at oracle.adfinternal.controller.engine.ControlFlowEngine.doRouting(ControlFlowEngine.java:824)
         at oracle.adfinternal.controller.engine.ControlFlowEngine.routeFromActivity(ControlFlowEngine.java:554)
         at oracle.adfinternal.controller.engine.ControlFlowEngine.performControlFlow(ControlFlowEngine.java:158)
         at oracle.adfinternal.controller.application.NavigationHandlerImpl.handleAdfcNavigation(NavigationHandlerImpl.java:115)
         at oracle.adfinternal.controller.application.NavigationHandlerImpl.handleNavigation(NavigationHandlerImpl.java:84)
         at org.apache.myfaces.trinidadinternal.application.NavigationHandlerImpl.handleNavigation(NavigationHandlerImpl.java:50)
         at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:130)
         at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:190)
         at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:112)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:130)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:461)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:134)
         at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:106)
         at oracle.adf.view.rich.component.fragment.UIXRegion.broadcast(UIXRegion.java:159)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:130)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:461)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:134)
         at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:112)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:130)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:461)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:134)
         at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:106)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents(LifecycleImpl.java:1129)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:353)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:204)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:173)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:122)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
         at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:293)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:199)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
         at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    Caused by: java.sql.SQLException: ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
    [Oracle][ODBC DB2 Wire Protocol driver][UDB DB2 for iSeries and AS/400]ILLEGAL SYMBOL <END-OF-STATEMENT>; VALID SYMBOLS ARE ON UNIQUE. {42000,NativeErr = -104}[Oracle][ODBC DB2 Wire Protocol driver][UDB DB2 for iSeries and AS/400]EXECUTE STATEMENT DOES NOT IDENTIFY A VALID PREPARED STATEMENT. *N {HY000,NativeErr = -518}
    ORA-02063: preceding 2 lines from TGBPSU
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:457)
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:405)
         at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:889)
         at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:476)
         at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:204)
         at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:540)
         at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:217)
         at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1079)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1466)
         at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3752)
         at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3937)
         at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1535)
         at weblogic.jdbc.wrapper.PreparedStatement.execute(PreparedStatement.java:99)
         at oracle.jbo.server.OracleSQLBuilderImpl.setSavepoint(OracleSQLBuilderImpl.java:1548)
         at oracle.jbo.server.DBTransactionImpl.setSavepoint(DBTransactionImpl.java:3172)
         ... 83 more
    Edited by: codeplay on Oct 17, 2011 5:17 PM

    Look like the calling of the other DB is the root of your problem:
    Caused by: java.sql.SQLException: ORA-28500: connection from ORACLE to a non-Oracle system returned this message:[Oracle][ODBC DB2 Wire Protocol driver][UDB DB2 for iSeries and AS/400]ILLEGAL SYMBOL <END-OF-STATEMENT>; VALID SYMBOLS ARE ON UNIQUE. {42000,NativeErr = -104}[Oracle][ODBC DB2 Wire Protocol driver][UDB DB2 for iSeries and AS/400]EXECUTE STATEMENT DOES NOT IDENTIFY A VALID PREPARED STATEMENT. *N {HY000,NativeErr = -518}
    ORA-02063: preceding 2 lines from TGBPSU
    >
    Test your app with -Djbo.debugoutoup=console as a java option, this will generate lots of output but you may see the actual sql passed to the db.
    Where and how do you call the SP?
    Timo

  • IN OUT parameters in Stored Procedures

    can anybody explain in detail what is in and out parameters in oracle stored procedures.
    thanks in advance

    IN is used to specify parameters that are input to the stored procedures. OUT is used to specify parameters that can be returned from the stored procedures.
    Please don't get confused with procdures returning value.. You don't need to write a return statement.. just assigning the values to OUT parameters is good ebnough to retireve there values outside stored procedures.
    Hope it helps.

  • URGENT: Passing Array from JSP to a Stored Procedure

    Hi,
    Can some one please help me understanding how can I pass array from JSP page to a stored procedure in database.
    Thanks in advance.
    Jatinder

    Thanks.
    I tried ArrayExampla.java and was successful in passing array values to the stored database procedure.
    How can I use this class in JSP? Like I have first JSP where in I will collect input from the user and then submit it to the second JSP - that needs to call the ArrayExample.java to pass the values as array to the database.
    How should I call this java code in my second JSP?
    Thanks in advance.

  • Report is slow and times out based upon stored procedure

    I have a report that runs off the following stored procedure, because i can not join the tables i need to do a union query or a nested query to return the shipments.  any one know how i can speed this up be chaging the stored procedure to use a nested query on the last portion of the query (under union)?
    SELECT DISTINCT
    dbo.INV_BEG_BALANCE_JAN_JUNE_2010.DIVISION               as COMPANY,
    dbo.INV_BEG_BALANCE_JAN_JUNE_2010.SEASON               AS SEASON,
    dbo.INV_BEG_BALANCE_JAN_JUNE_2010.STYLE               as STYLE,
    dbo.INV_BEG_BALANCE_JAN_JUNE_2010.MONTH_END_DATE                            AS ME_DATE,
    dbo.INV_BEG_BALANCE_JAN_JUNE_2010.BEGINNING_BALANCE                          AS BEG_BAL,
    dbo.INV_BEG_BALANCE_JAN_JUNE_2010.CURRENT_COST          AS CRNT_COST,
    dbo.RECVSKU#.RCQTY                         AS REC_QTY,
    0                              AS SHIP_QTY,
    dbo.RECVSKU#.RCDATE                         AS REC_DATE,
    ''                              AS SHIP_DATE
    FROM        
    dbo.INV_BEG_BALANCE_JAN_JUNE_2010 LEFT OUTER JOIN
    dbo.RECVSKU# ON
    dbo.INV_BEG_BALANCE_JAN_JUNE_2010.SEASON = dbo.RECVSKU#.RCSEAS AND
    dbo.INV_BEG_BALANCE_JAN_JUNE_2010.STYLE = dbo.RECVSKU#.RCSTYL AND
    dbo.INV_BEG_BALANCE_JAN_JUNE_2010.DIVISION = dbo.RECVSKU#.RCDIVN
    WHERE    
    (dbo.INV_BEG_BALANCE_JAN_JUNE_2010.MONTH_END_DATE = '20100228')
    AND (dbo.RECVSKU#.RCDATE >= '20100301') AND (dbo.RECVSKU#.RCDATE <= '20100331')
    AND dbo.INV_BEG_BALANCE_JAN_JUNE_2010.DIVISION = 'AAA'
    union
    SELECT
    dbo.SHIPSKU#.SCDIVN                    AS COMPANY,
    dbo.SHIPSKU#.SCSEAS                    AS SEASON,
    dbo.SHIPSKU#.SCSTYL                    AS STYLE,
    ''                                                       AS ME_DATE,
    0                                                  AS BEG_BALE,
    dbo.MITMAS.MMPUPR                                                        AS CRNT_COST,
    0                                                AS REC_QTY,
    dbo.SHIPSKU#.SCQTY                                                     AS SHIP_QTY,
    ''                         AS REC_DATE,
    dbo.SHIPSKU#.SCDATE                                                      AS SHIP_DATE
    FROM dbo.SHIPSKU#
    LEFT OUTER JOIN dbo.MITMAS ON dbo.SHIPSKU#.SCSKU# = dbo.MITMAS.MMITNO
    WHERE dbo.SHIPSKU#.SCDATE>='20100301' AND dbo.SHIPSKU#.SCDATE <='20100331'
    AND  dbo.SHIPSKU#.SCDIVN = 'AAA'

    hi Sharon,
    if you use a "UNION ALL" instead of a union does that give you better performance?
    jamie

  • IN, OUT using a stored procedure block

    need to write a query to exec stored procedure in plsql
    product id --> i/p
    product info & customer info --> o/p
    tables --> products, customers.
    columns in products table --> Product_id, pname, sdate, prize, customer_id.
    columns in customers table -->customer_id, product_id, cname, address.
    plz guide me thanks.......

    Mohan1312 wrote:
    need to write a query to exec stored procedure in plsql
    product id --> i/p
    product info & customer info --> o/p
    tables --> products, customers.
    columns in products table --> Product_id, pname, sdate, prize, customer_id.
    columns in customers table -->customer_id, product_id, cname, address.
    plz guide me thanks.......what do the "-->" signify?
    Do you speak SQL? We speak SQL. in future please post more SQL so we can understand you.
    How to ask question
    SQL and PL/SQL FAQ

  • How to passing array as parameter to oracle stored procedure from JPA

    Hi All,
    I need to call a stored proc in Oracle that accepts an array as input parameter.
    Pls let me know how should i call it from my JPA. Is this even possible without using JDBC directly?
    i keep getting the ff error:
    wrong number or types of arguments in call to ....
    my code is something like this:
    String[] myArr...
    Query query = em.createNativeQuery("BEGIN myStoredProc(:arr); END;");
    query.setParameter("arr", myArr);
    Thanks in advance.

    I also fail to get this done my code till now is:
    PLSQL Function:
    function getHtml(pWhere VARCHAR2 DEFAULT NULL,
    pColSort HTP.STRINGARRAY) return clob is
    begin
    errorhndl.Log(pMessage => 'called');
    htp.prn('das ist der test
    for i in 1 .. pColSort.count loop
    htp.p('
    pColSort['||i||']: '||pColSort(i));
    end loop;
    htp.prn('
    <table> <tr> <td> max1.0 </td> <td> max2.0 </td> </tr>');
    htp.prn('<tr> <td> max1.1 </td> <td> max2.1 </td> </tr> </table>');
    htp.prn('test ende');
    return htp.gHtpPClob;
    exception
    when others then
    null;
    end getHtml;
    PLSQL TYPE: (in HTP package - self created - but could be anywhere else too)
    type STRINGARRAY is table of varchar2(256) index by binary_integer;
    JAVA DOA:
    public class ShowReportDOAImpl implements ShowReportDOA {
         private JdbcTemplate jdbcTemplate;
         private SimpleJdbcCall procShowReport;
         public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
              this.jdbcTemplate = jdbcTemplate;
              procShowReport = new SimpleJdbcCall(this.jdbcTemplate)
              .withCatalogName("Show_Report")
              .withFunctionName("getHtml")
              .withoutProcedureColumnMetaDataAccess()
              .declareParameters(
                   new SqlParameter("pWhere", Types.VARCHAR),
                   new SqlParameter("pColSort", Types.ARRAY, "HTP.STRINGARRAY"),
                   new SqlOutParameter("RETURN", Types.CLOB)
         public String readReport(Long id, ParameterHelper ph) {
              String[] sortCol = {"max", "michi", "stefan"};
              String pWhere = "fritz";
              MapSqlParameterSource parms = new MapSqlParameterSource();
              parms.addValue("pWhere", pWhere);
              parms.addValue("pColSort", sortCol, Types.ARRAY, "HTP.STRINGARRAY");
    parms.addValue("pColSort", Arrays.asList(sortCol), Types.ARRAY, "HTP.STRINGARRAY");
    Clob clob = procShowReport.executeFunction(Clob.class, parms);
    String clobString = "";
    try {
         System.out.println("length: "+new Long(clob.length()).intValue());
                   clobString = clob.getSubString(1, new Long(clob.length()).intValue());
              } catch (SQLException e) {
                   e.printStackTrace();
    return clobString;
    EXCEPTION IS:
    org.springframework.jdbc.UncategorizedSQLException: CallableStatementCallback; uncategorized SQLException for SQL [{? = call SHOW_REPORT.GETHTML(?, ?)}]; SQL state [null]; error code [17059]; Konvertierung zu interner Darstellung nicht erfolgreich: [max, michi, stefan]; nested exception is java.sql.SQLException: Konvertierung zu interner Darstellung nicht erfolgreich: [max, michi, stefan]
         org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)
         org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
         org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
         org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:969)
         org.springframework.jdbc.core.JdbcTemplate.call(JdbcTemplate.java:1003)
         org.springframework.jdbc.core.simple.AbstractJdbcCall.executeCallInternal(AbstractJdbcCall.java:391)
         org.springframework.jdbc.core.simple.AbstractJdbcCall.doExecute(AbstractJdbcCall.java:354)
         org.springframework.jdbc.core.simple.SimpleJdbcCall.executeFunction(SimpleJdbcCall.java:154)
         at.ontec.cat.config.doa.ShowReportDOAImpl.readReport(ShowReportDOAImpl.java:47)
         at.ontec.cat.http.ShowReport.doGet(ShowReport.java:80)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
         org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:113)
         org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    root cause
    java.sql.SQLException: Konvertierung zu interner Darstellung nicht erfolgreich: [max, michi, stefan]
         oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:124)
         oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:161)
         oracle.jdbc.driver.DatabaseError.check_error(DatabaseError.java:860)
         oracle.sql.ARRAY.toARRAY(ARRAY.java:209)
         oracle.jdbc.driver.OraclePreparedStatement.setObjectCritical(OraclePreparedStatement.java:7767)
         oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:7448)
         oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:7836)
         oracle.jdbc.driver.OracleCallableStatement.setObject(OracleCallableStatement.java:4586)
         org.apache.commons.dbcp.DelegatingPreparedStatement.setObject(DelegatingPreparedStatement.java:166)
         org.apache.commons.dbcp.DelegatingPreparedStatement.setObject(DelegatingPreparedStatement.java:166)
         org.springframework.jdbc.core.StatementCreatorUtils.setValue(StatementCreatorUtils.java:356)
         org.springframework.jdbc.core.StatementCreatorUtils.setParameterValueInternal(StatementCreatorUtils.java:216)
         org.springframework.jdbc.core.StatementCreatorUtils.setParameterValue(StatementCreatorUtils.java:127)
         org.springframework.jdbc.core.CallableStatementCreatorFactory$CallableStatementCreatorImpl.createCallableStatement(CallableStatementCreatorFactory.java:212)
         org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:947)
         org.springframework.jdbc.core.JdbcTemplate.call(JdbcTemplate.java:1003)
         org.springframework.jdbc.core.simple.AbstractJdbcCall.executeCallInternal(AbstractJdbcCall.java:391)
         org.springframework.jdbc.core.simple.AbstractJdbcCall.doExecute(AbstractJdbcCall.java:354)
         org.springframework.jdbc.core.simple.SimpleJdbcCall.executeFunction(SimpleJdbcCall.java:154)
         at.ontec.cat.config.doa.ShowReportDOAImpl.readReport(ShowReportDOAImpl.java:47)
         at.ontec.cat.http.ShowReport.doGet(ShowReport.java:80)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
         org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:113)
         org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    Please help!!
    Please help!!

Maybe you are looking for

  • Int to ASCII

    When I try to convert int values to ASCII code, some of the characters are displayed as "?". For example value 144. How can I display those characters correctly?

  • Partitioning - query on large table v. query accessing several partitions

    Hi, We are using partitioning on a large fact table, however, in deciding partitioning strategy looking for advice regarding queries which have to access several partitions versus query against a large table. What is quicker - a query which acccesses

  • New Collection from links/images in current document - is this possible?

    Our team includes PC and Mac users. We have CS5.5 - InDesign v7.5.3 I'm currently running Win7 This might be a post for the Bridge forum, but since we want the workflow to begin with InDesign... I did try searching here, there, and within Exchange fo

  • How toset maximum order qty in sales order

    Dear Gurus,                  how to set maximum order qty in sales order level ,  my target qty is 100000 nos,  against this i will do billing  , when it reaches 100000 nos , system should not allow to create outbound or billing , how to achive this.

  • Lightroom Adjustment Brush

    My adjustments regardless of the effect I choose suddently are showing up on the photo in red color.  What can I do to get the adjustment brush back to normal operation?