Troubleshooting Oracle array type names in JDBC calls

Hi,
There are several threads in this forum about people having trouble with the array SQL type names that the Oracle JDBC driver recognizes (e.g., in a call setting up PLSQL procedure OUT parameters like "call.registerOutParameter(1, Types.ARRAY, "VARCHAR_NESTED_TAB_TYP");"). I've seen at least the following threads:
* vinay saini's "accessing package defined datatypes in oracle from JDBC" thread (Re: Heterogeneous Connectivity to SQL Server from 8.0.5
* fwelland's "PL/SQL Tables as IN parameters???" thread (Re: entity relationship/model of database diagram
* Ernesto Marquina's "Table Type as OUT parameter" thread (Re: Changing namespace
* Nazneen Nahid's "Oracle PL/SQL type defined within a package can't be passed from JAVA" thread (Re: BI Beans Graph in JSp
* vinay saini's "mapping Table/VARRAY data type to JDBC data type" thread (Re: 9.0.3 unable to find session bean for AM
I'm stuck in the middle of this myself, and found that something useful to look at is the PLSQL procedure that the driver uses to determine whether the type is there. You can run the following test PLSQL block with your schema name and type name to check on the database side whether it will work:
declare
schemaname varchar(255);
typename varchar(255);
typoid raw(255);
version integer;
tds long raw;
lds long raw;
begin
schemaname := 'MKT2_SMD9';
typename := 'VARCHAR_NESTED_TAB_TYP';
dbms_output.put_line('Result for '||schemaname||','||typename||'='||
dbms_pickler.get_type_shape(schemaname, typename, typoid, version, tds, lds));
end;
If the procedure returns 0, then the JDBC code should have no trouble picking up the array type and handling your call. If the procedure returns a nonzero number, the JDBC code using the same schemaname and typename will probably fail. This at least allows you to try a number of different schema and type names with the application and driver layers eliminated. Unfortunately, I have no idea how get_type_shape works, and it doesn't seem to be documented in Oracle's 9i docs, so I can't shed any light on why some things work and others don't.
Jim

I guess, in hibernate, in order to make it serialized object, try using set/collection implementation.

Similar Messages

  • Calling a stored proc that has a parameter of a user-defined (array) type

    Hi,
    Hope someone can help me on this, because I am really struggling...
    From a c-program, I am calling stored procedures using the OCI Interface. Everything is OK, when using the standard types (integer, string, date), but I am encountering problems when one of the parameters is of a type that is defined in the database as an array. My application calls multiple array-type parameters in one call, but for the sake of simplicity, I created a test application to only use one.
    The following call is working (but it needs to be called using the OCI functions):
    BEGIN
    p_test_table_num (pin_num1 => T_ARRAY_EH_DEP(1,2,3));
    END;
    My first step was to have the following combination:
    statement: begin p_test_table_num(:pin_num1);end;
    parameter: pin_num1
    value: t_array_eh_dep(1,2,3)
    That lead to the error (when executing the statement): wrong number or types of arguments
    Second idea (after a lot of browsing):
    statement: begin p_test_table_num(t_array_eh_dep(:pin_num1));end;
    parameter: pin_num1
    value: 1,2,3
    This leads to the error: numeric or value error: number precision too large.
    My bind function call looks like:
    if (res = OCIBindByName(stmthp, &bndArray[parCount], errhp, (text *) curPar,
    -1, (dvoid *) curVal, (sb4) sizeof(curVal), SQLT_NUM, (dvoid *) 0,
    (ub2 *) 0, (ub2) 0, (ub4) 0, (ub4 *) 0, OCI_DEFAULT) != OCI_SUCCESS){
    checkerr(errhp, "OCIBindByName", res);
    OCIHandleFree(stmthp, OCI_HTYPE_STMT);
    return -1;
    (in this function curPar is the name of the parameter and curVal contains the value)
    I also investigated the BindArrayOfStruct, but I concluded that this is to execute a stored procedure multiple times using different values for the parameters, and that is not what I want.
    I really hope someone can give me a direction to look in. I also need to call string and date arrays in the same way...
    Thanks
    Margit

    For those who are interested, I found the solution myself...
    To use any user-defined type, you need to perform the following steps:
    1. OCIBindByPos or OCIBindByName as you would bind a normal parameter
    2. OCITypeByName to get a reference to the type definition in Oracle
    3. OCIObjectNew to create a reference to the array (OCI_TYPECODE_VARRAY)
    4. Assign a value to the column, for instance use OCIStringAssignText, OCINumberFromInt, OCIDateFromText
    5. OCICollAppend ( to add the value from step 4 to collection)
    6. OCIBindObject
    7. OCIStmtExecute
    8. OCITransCommit
    Example:
    if (res = OCIBindByName(stmthp, &bndArray[parCount], errhp, (text *) curPar,
    -1, (dvoid *) curVal, (sb4) sizeof(curVal), SQLT_NTY, (dvoid *) 0,
    (ub2 *) 0, (ub2) 0, (ub4) 0, (ub4 *) 0, OCI_DEFAULT) != OCI_SUCCESS){
    checkerr(errhp, "OCIBindByName", res);
    OCIHandleFree(stmthp, OCI_HTYPE_STMT);
    return -1;
    if (res = OCITypeByName(envhp, errhp, svchp,
    (CONST text *) currentUserName, (ub4) strlen((CONST char *) currentUserName), /*schema*/
    (CONST text *) "T_ARRAY_EH_DEP", (ub4) strlen((CONST char *) "T_ARRAY_EH_DEP"), /* type */
    (CONST text *) 0, (ub4) 0, OCI_DURATION_SESSION, OCI_TYPEGET_HEADER,
    &type_array_eh_dep) != OCI_SUCCESS){
    checkerr(errhp, "OCITypeByName", res);
    OCIHandleFree(stmthp, OCI_HTYPE_STMT);
    return -1;
    OCIArray* eh_dep_array = (OCIArray*)0;
    OCINumber eh_dep_num;
    OCIObjectNew(envhp, errhp, svchp, OCI_TYPECODE_VARRAY, type_array_eh_dep,
    (dvoid*) 0, OCI_DURATION_DEFAULT, TRUE, (dvoid**)&eh_dep_array);
    /* get the values from the incoming array */
    curArrayItem = SOM_AtrValGetStrList(arrayValuesListMem,
    arrayValuesListAtr, arrayValueCount);
    do {
    if (STR_Eq(curArrayItem, "NULL")){
    OCICollAppend(envhp, errhp, (CONST dvoid *)0, &null_ind,
    (OCIArray*) eh_dep_array);
    else{
    tmpInt = atoi(curArrayItem);
    OCINumberFromInt(errhp, &tmpInt, sizeof(int), OCI_NUMBER_SIGNED,
    &eh_dep_num);
    OCICollAppend(envhp, errhp, (CONST dvoid *)&eh_dep_num, (CONST dvoid *) 0,
    (OCIArray*) eh_dep_array);
    arrayValueCount = arrayValueCount + 1;
    curArrayItem = SOM_AtrValGetStrList(arrayValuesListMem,
    arrayValuesListAtr, arrayValueCount);
    printf( "curArrayItem = %s\n", curArrayItem );
    } while (STR_Eq(curArrayItem, "%%%") == falseCN);
    arrayValueCount = arrayValueCount + 1; /* skip the %%% */
    if (res = OCIBindObject(bndArray[parCount], errhp,
    (OCIType *)type_array_eh_dep, (dvoid **) &eh_dep_array,
    (ub4 *) 0, (dvoid **) 0, (ub4 *) 0) != OCI_SUCCESS){
    checkerr(errhp, "OCIBindObject", res);
    OCIHandleFree(stmthp, OCI_HTYPE_STMT);
    return -1;
    }

  • Oracle Arrays and getVendorConnection API and Class Cast Exception

    I 've gone through various threads relating to the topic of Oracle Arrays and the getVendorConnecton API call to avoid the class Cast Exception.. i ve used all these but am still facing the problem...
    I would appreciate it if some one could resolve the following queries :
    I am using Weblogic 8.1 SP5 with oracle 8i
    1. I read that the need to use the getVendorConnection API to make pl/sql proc calls with oracle arrays from the WL Server wont be required to avoid classCastException...
    I tried to use the connection from the WL connection pool ..but it didnot work....I used the getVendorConnection API ..which also doesnot seem to work..
    I got the Heurisitc Hazard exception...I used the Oracle 9i driver ie ojdbc14.jar ...after this the exception is not coming but still the code doesnt seem to work...
    the snippet of the code is pasted below :
    ~~~~~~~~~~~~~~~~~~~~~~~code is : ~~~~~~~~~~~~~~~~~~~
    /*below :
    logicalCon is the Connection from the WL connection pool
    JDBCcon is the JDBC connection. */
    <div> try </div>
    <div>{ </div>
    <div>
    <b>vendorConn</b> = ((WLConnection)logicalCon).getVendorConnection();
    </div>
    <div>
    //Calling the procedure
    </div>
    <div>
    //java.util.Map childMap1 = JDBCcon.getTypeMap();
    </div>
    <div>
    java.util.Map childMap1 = <b>vendorConn</b>.getTypeMap();
    </div>
    <div>
    childMap1.put("SST_ROUTE_ENTRY", Class.forName("svm.stport.ejb.StaticRouteEntry"));
    </div>
    <div>
    //JDBCcon.setTypeMap(childMap1);
    <b>vendorConn</b>.setTypeMap(childMap1);
    </div>
    <div>
    // Create an oracle.sql.ARRAY object to hold the values
    </div>
    <div>
    /*oracle.sql.ArrayDescriptor arrayDesc1 = oracle.sql.ArrayDescriptor.createDescriptor("SST_ROUTE_ENTRY_ARR", JDBCcon); */
    </div>
    <div>
    oracle.sql.ArrayDescriptor arrayDesc1 =
    oracle.sql.ArrayDescriptor.createDescriptor("SST_ROUTE_ENTRY_ARR", <b>vendorConn</b>); // here if i use the JDBCcon it works perfectly.... <u>^%^%^%</u>
    </div>
    <div>
    code to fill in the sst route entry array....
    .....arrayValues1 */
    </div>
    <div>
    /* oracle.sql.ARRAY array1 = new oracle.sql.ARRAY(arrayDesc1, JDBCcon, arrayValues1); */
    </div>
    <div>
    oracle.sql.ARRAY array1 = new oracle.sql.ARRAY(arrayDesc1, <b>vendorConn</b>, arrayValues1);
    </div>
    <div>
    callStatement = logicalCon.prepareCall( "? = call procName(?, ?, ?)");
    </div>
    <div>
    /* ..code to set the ?s ie array1 */
    </div>
    <div>
    callStatement.execute();
    </div>
    <div>
    }catch(Exceptio e){
    </div>
    <div>
    }</div>
    <div>
    finally </div>
    </div>{</div>
    <div>System.out.println(" I ve come to finally"); </div>
    <div>}</div>
    <div>
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~code snippet ends here ~~~~~~~~~~~~~~``
    </div>
    I have observed that the control immediately comes to the finally block after the call to the createDescriptor line above with <u>^%^%^%</u> in the comment. If i use the JDBCCon in this line...it works perfectly fine.
    Any pointers to where anything is getting wrong.
    I have jst set the vendorCon to null in the end of the file and not closed it. Subsequently i have closed the logicalCon. This has been mentioned in some of the thread in this forum also.
    Thanks,
    -jw

    Jatinder Wadhwa wrote:
    I 've gone through various threads relating to the topic of Oracle Arrays and the getVendorConnecton API call to avoid the class Cast Exception.. i ve used all these but am still facing the problem...
    I would appreciate it if some one could resolve the following queries :
    I am using Weblogic 8.1 SP5 with oracle 8i
    1. I read that the need to use the getVendorConnection API to make pl/sql proc calls with oracle arrays from the WL Server wont be required to avoid classCastException...
    I tried to use the connection from the WL connection pool ..but it didnot work....I used the getVendorConnection API ..which also doesnot seem to work..
    I got the Heurisitc Hazard exception...I used the Oracle 9i driver ie ojdbc14.jar ...after this the exception is not coming but still the code doesnt seem to work...
    the snippet of the code is pasted below :
    ~~~~~~~~~~~~~~~~~~~~~~~code is : ~~~~~~~~~~~~~~~~~~~Hi. Show me the whole exception and stacktrace if you do:
    try
    vendorConn = ((WLConnection)logicalCon).getVendorConnection();
    java.util.Map childMap1 = vendorConn.getTypeMap();
    childMap1.put("SST_ROUTE_ENTRY" Class.forName("svm.stport.ejb.StaticRouteEntry"));
    vendorConn.setTypeMap(childMap1);
    oracle.sql.ArrayDescriptor arrayDesc1 =
    oracle.sql.ArrayDescriptor.createDescriptor("SST_ROUTE_ENTRY_ARR",
    vendorConn);
    oracle.sql.ARRAY array1 = new oracle.sql.ARRAY(arrayDesc1, vendorConn, arrayValues1);
    callStatement = logicalCon.prepareCall( "? = call procName(? ? ?)");
    callStatement.execute();
    }catch(Exception e){
    e.printStackTrace();
    finally
    try{logicalCon.close();}catch(Exception ignore){}
    System.out.println(" I ve come to finally");
    /*below :
    logicalCon is the Connection from the WL connection pool
    JDBCcon is the JDBC connection. */
    <div> try </div>
    <div>{ </div>
    <div>
    <b>vendorConn</b> = ((WLConnection)logicalCon).getVendorConnection();
    </div>
    <div>
    //Calling the procedure
    </div>
    <div>
    //java.util.Map childMap1 = JDBCcon.getTypeMap();
    </div>
    <div>
    java.util.Map childMap1 = <b>vendorConn</b>.getTypeMap();
    </div>
    <div>
    childMap1.put("SST_ROUTE_ENTRY", Class.forName("svm.stport.ejb.StaticRouteEntry"));
    </div>
    <div>
    //JDBCcon.setTypeMap(childMap1);
    <b>vendorConn</b>.setTypeMap(childMap1);
    </div>
    <div>
    // Create an oracle.sql.ARRAY object to hold the values
    </div>
    <div>
    /*oracle.sql.ArrayDescriptor arrayDesc1 = oracle.sql.ArrayDescriptor.createDescriptor("SST_ROUTE_ENTRY_ARR", JDBCcon); */
    </div>
    <div>
    oracle.sql.ArrayDescriptor arrayDesc1 =
    oracle.sql.ArrayDescriptor.createDescriptor("SST_ROUTE_ENTRY_ARR", <b>vendorConn</b>); // here if i use the JDBCcon it works perfectly.... <u>^%^%^%</u>
    </div>
    <div>
    code to fill in the sst route entry array....
    .....arrayValues1 */
    </div>
    <div>
    /* oracle.sql.ARRAY array1 = new oracle.sql.ARRAY(arrayDesc1, JDBCcon, arrayValues1); */
    </div>
    <div>
    oracle.sql.ARRAY array1 = new oracle.sql.ARRAY(arrayDesc1, <b>vendorConn</b>, arrayValues1);
    </div>
    <div>
    callStatement = logicalCon.prepareCall( "? = call procName(?, ?, ?)");
    </div>
    <div>
    /* ..code to set the ?s ie array1 */
    </div>
    <div>
    callStatement.execute();
    </div>
    <div>
    }catch(Exceptio e){
    </div>
    <div>
    }</div>
    <div>
    finally </div>
    </div>{</div>
    <div>System.out.println(" I ve come to finally"); </div>
    <div>}</div>
    <div>
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~code snippet ends here ~~~~~~~~~~~~~~``
    </div>
    I have observed that the control immediately comes to the finally block after the call to the createDescriptor line above with <u>^%^%^%</u> in the comment. If i use the JDBCCon in this line...it works perfectly fine.
    Any pointers to where anything is getting wrong.
    I have jst set the vendorCon to null in the end of the file and not closed it. Subsequently i have closed the logicalCon. This has been mentioned in some of the thread in this forum also.
    Thanks,
    -jw

  • Invoking stored procedure that returns array(oracle object type) as output

    Hi,
    We have stored procedures which returns arrays(oracle type) as an output, can anyone shed some light on how to map those arrays using JPA annotations? I tried using jdbcTypeName but i was getting wrong type or argument error, your help is very much appreciated. Below is the code snippet.
    JPA Class:
    import java.io.Serializable;
    import java.sql.Array;
    import java.util.List;
    import javax.persistence.Entity;
    import javax.persistence.Id;
    import org.eclipse.persistence.annotations.Direction;
    import org.eclipse.persistence.annotations.NamedStoredProcedureQuery;
    import org.eclipse.persistence.annotations.StoredProcedureParameter;
    * The persistent class for the MessagePublish database table.
    @Entity
    @NamedStoredProcedureQuery(name="GetTeamMembersDetails",
         procedureName="team_emp_maintenance_pkg.get_user_team_roles",
         resultClass=TeamMembersDetails.class,
         returnsResultSet=true,
         parameters={  
         @StoredProcedureParameter(queryParameter="userId",name="I_USER_ID",direction=Direction.IN,type=Long.class),
         @StoredProcedureParameter(queryParameter="employeeId",name="I_EMPLOYEEID",direction=Direction.IN,type=Long.class),
         @StoredProcedureParameter(queryParameter="TEAMMEMBERSDETAILSOT",name="O_TEAM_ROLES",direction=Direction.OUT,jdbcTypeName="OBJ_TEAM_ROLES"),
         @StoredProcedureParameter(queryParameter="debugMode",name="I_DEBUGMODE",direction=Direction.IN,type=Long.class)
    public class TeamMembersDetails implements Serializable {
         private static final long serialVersionUID = 1L;
    @Id
         private long userId;
         private List<TeamMembersDetailsOT> teamMembersDetailsOT;
         public void setTeamMembersDetailsOT(List<TeamMembersDetailsOT> teamMembersDetailsOT) {
              this.teamMembersDetailsOT = teamMembersDetailsOT;
         public List<TeamMembersDetailsOT> getTeamMembersDetailsOT() {
              return teamMembersDetailsOT;
    Procedure
    PROCEDURE get_user_team_roles (
    i_user_id IN ue_user.user_id%TYPE
    , o_team_roles OUT OBJ_TEAM_ROLES_ARRAY
    , i_debugmode IN NUMBER :=0)
    AS
    OBJ_TEAM_ROLES_ARRAY contains create or replace TYPE OBJ_TEAM_ROLES_ARRAY AS TABLE OF OBJ_TEAM_ROLES;
    TeamMembersDetailsOT contains the same attributes defined in the OBJ_TEAM_ROLES.

    A few things.
    You are not using a JDBC Array type in your procedure, you are using a PLSQL TABLE type. An Array type would be a VARRAY in Oracle. EclipseLink supports both VARRAY and TABLE types, but TABLE types are more complex as Oracle JDBC does not support them, they must be wrapped in a corresponding VARRAY type. I assume your OBJ_TEAM_ROLES is also not an OBJECT TYPE but a PLSQL RECORD type, this has the same issue.
    Your procedure does not return a result set, so "returnsResultSet=true" should be "returnsResultSet=false".
    In general I would recommend you change your stored procedure to just return a select from a table using an OUT CURSOR, that is the easiest way to return data from an Oracle stored procedure.
    If you must use the PLSQL types, then you will need to create wrapper VARRAY and OBJECT TYPEs. In EclipseLink you must use a PLSQLStoredProcedureCall to access these using the code API, there is not annotation support. Or you could create your own wrapper stored procedure that converts the PLSQL types to OBJECT TYPEs, and call the wrapper stored procedure.
    To map to Oracle VARRAY and OBJECT TYPEs the JDBC Array and Struct types are used, these are supported using EclipseLink ObjectRelationalDataTypeDescriptor and mappings. These must be defined through the code API, as there is currently no annotation support.
    I could not find any good examples or doc on this, your best source of example is the EclipseLink test cases in SVN,
    http://dev.eclipse.org/svnroot/rt/org.eclipse.persistence/trunk/foundation/eclipselink.core.test/src/org/eclipse/persistence/testing/tests/plsql/
    http://dev.eclipse.org/svnroot/rt/org.eclipse.persistence/trunk/foundation/eclipselink.core.test/src/org/eclipse/persistence/testing/tests/customsqlstoredprocedures/
    James : http://www.eclipselink.org

  • Trying to pass Oracle array/object type to Java

    I have a Java class with two inner classes that are loaded into Oracle:
    public class PDFJ
        public static class TextObject
            public String font_name;
            public int font_size;
            public String font_style;
            public String text_string;
        public static class ColumnObject
            public int left_pos;
            public int right_pos;
            public int top_pos;
            public int bottom_pos;
            public int leading;
            public TextObject[] column_texts;
    }I have object types in Oracle as such that bind to the Java classes:
    CREATE OR REPLACE TYPE "PROGRAMMER"."PDFJ_TEXT" AS OBJECT
    EXTERNAL NAME 'PDFJ$TextObject'
    LANGUAGE JAVA
    USING SQLData(
      "FONT_NAME" VARCHAR2(25) EXTERNAL NAME 'font_name',
      "FONT_SIZE" NUMBER EXTERNAL NAME 'font_size',
      "FONT_STYLE" VARCHAR2(1) EXTERNAL NAME 'font_style',
      "TEXT_STRING" VARCHAR2(4000) EXTERNAL NAME 'text_string'
    CREATE OR REPLACE TYPE "PROGRAMMER"."PDFJ_TEXT_ARRAY" AS
      TABLE OF "PROGRAMMER"."PDFJ_TEXT";
    CREATE OR REPLACE TYPE "PROGRAMMER"."PDFJ_COLUMN" AS OBJECT
    EXTERNAL NAME 'PDFJ$ColumnObject'
    LANGUAGE JAVA
    USING SQLData(
      "LEFT_POS" NUMBER EXTERNAL NAME 'left_pos',
      "RIGHT_POS" NUMBER EXTERNAL NAME 'right_pos',
      "TOP_POS" NUMBER EXTERNAL NAME 'top_pos',
      "BOTTOM_POS" NUMBER EXTERNAL NAME 'bottom_pos',
      "LEADING" NUMBER EXTERNAL NAME 'leading',
      "COLUMN_TEXTS" "PROGRAMMER"."PDFJ_TEXT_ARRAY" EXTERNAL NAME 'column_texts'
    CREATE OR REPLACE TYPE "PROGRAMMER"."PDFJ_COLUMN_ARRAY" AS
        TABLE OF "PROGRAMMER"."PDFJ_COLUMN";
    /I successfully (as far as I know) build a PDFJ_COLUMN_ARRAY object in a PL/SQL procedure. The PDFJ_COLUMN_ARRAY contains PDFJ_COLUMN objects; each of those objects contains a PDFJ_TEXT_ARRAY of PDFJ_TEXT objects (Example: pdf_column_array(i).pdf_text_array(i).text_string := 'something';). In this procedure, I pass this PDFJ_COLUMN_ARRAY as a parameter to a Java function. I assume the Java function parameter is supposed to be a oracle.sql.ARRAY object.
    I cannot figure out how to decompose this generic ARRAY object into a ColumnObject[] array. I also tried Googling and searching the forums, but I can't figure out matching search criteria. I was wondering if anyone here knows anything about passing user-defined Oracle type objects to a Java function and retrieving the user-defined Java class equivalents that they are supposedly mapped to--especially a user-defined array type of user-defined object types containing another user-defined array type of user-defined object types.

    Ok. I will try asking on the JDBC forum. So, don't
    flame me for cross-posting. :PWe won't, if over there you just post basically a
    link to this one.
    sigh Guess what, he did it the flame-deserving way. It's crossposted at:
    http://forum.java.sun.com/thread.jspa?threadID=602805
    <flame level="mild">Never ceases to amaze me how people don't think that posting a duplicate rather than a simple link isn't wasteful, as people could end up answering in both of them, not seeing each other's answers</flame>

  • Problem using Oracle Object Types and Arrays.

    I'm currently trying to work with oracle object types in java and I'm running into some issues when trying to add an item to an array.
    The basic idea is that I have a header object and a detail object (both only containing an ID and a description). Inside of my java code I'm trying to add a new detail line to the header that has been retrieved from the database.
    Here's what I'm working with.
    --Oracle Objects:
    CREATE OR REPLACE TYPE dtl_obj AS OBJECT
        detail_id INTEGER,
        header_id INTEGER,
        detail_desc VARCHAR2(300)
    CREATE TYPE dtl_tab AS TABLE OF dtl_obj;
    CREATE OR REPLACE TYPE hdr_obj AS OBJECT
        header_id INTEGER,
        src VARCHAR(30),
        details dtl_tab
    CREATE TYPE hdr_tab AS TABLE OF hdr_obj;
    /--Java test methods
         public static void main(String[] args) throws SQLException,
                   ClassNotFoundException
              // Initialize the objects
              Test t = new Test();
              t.connect(); //Connects to the database
              //The oracle connection will be accessible through t.conn
              // Create the oracle call
              String query = "{? = call get_header(?)}";
              OracleCallableStatement cs = (OracleCallableStatement) t.conn.prepareCall(query);
              cs.registerOutParameter(1, OracleTypes.ARRAY, "HDR_TAB"); //Register the out parameter and associate it with our oracle type
              int[] hdrs = { 240 }; //we just want one for testing.
              ArrayDescriptor descriptor = ArrayDescriptor.createDescriptor(
                        "ARRAY_T", t.conn);
              oracle.sql.ARRAY oHdrs = new ARRAY(descriptor, t.conn, hdrs);
              cs.setARRAY(2, oHdrs); //Set the headers to retrieve
              // Execute the query
              cs.executeQuery();
              try
                   ARRAY invArray = cs.getARRAY(1);
                   // Start the retrieval process
                   Class cls = Class.forName(Header.class.getName());
                   Map<String, Class<?>> map = t.conn.getTypeMap();
                   map.put(Header._SQL_NAME, cls);
                   Object[] invoices = (Object[]) invArray.getArray();
                   ArrayList<Header> invs = new ArrayList(
                             java.util.Arrays.asList(invoices));
                   if (invs != null)
                        for (Header inv : invs)
                             System.out.println(inv.getHeaderId() + " " + inv.getSrc());
                             t.addDetail(inv, "new line");
                             for (Detail dtl : inv.getDetails().getArray()) // Exception thrown here
    //                              java.sql.SQLException: Fail to construct descriptor: Invalid arguments
    //                              at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
    //                              at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:162)
    //                              at oracle.jdbc.driver.DatabaseError.check_error(DatabaseError.java:861)
    //                              at oracle.sql.StructDescriptor.createDescriptor(StructDescriptor.java:128)
    //                              at oracle.jpub.runtime.MutableStruct.toDatum(MutableStruct.java:109)
    //                              at com.pcr.tst.Detail.toDatum(Detail.java:40)
    //                              at oracle.jpub.runtime.Util._convertToOracle(Util.java:151)
    //                              at oracle.jpub.runtime.Util.convertToOracle(Util.java:138)
    //                              at oracle.jpub.runtime.MutableArray.getDatumElement(MutableArray.java:1102)
    //                              at oracle.jpub.runtime.MutableArray.getOracleArray(MutableArray.java:550)
    //                              at oracle.jpub.runtime.MutableArray.getObjectArray(MutableArray.java:689)
    //                              at oracle.jpub.runtime.MutableArray.getObjectArray(MutableArray.java:695)
    //                              at com.pcr.tst.DetailTable.getArray(DetailTable.java:76)
    //                              at com.pcr.tst.Test.main(Test.java:91)
                                  System.out.println(dtl.getDetailDesc());
              catch (Exception ex)
                   System.out.println("Error while retreiving header");
                   ex.printStackTrace();
              public void addDetail(Header hdr, String desc) throws Exception
              if (hdr == null)
                   throw new Exception("header not initialized");
              // Convert the current list to an ArrayList so we can easily add to it.
              ArrayList<Detail> dtlLst = new ArrayList<Detail>();
              dtlLst.addAll(java.util.Arrays.asList(hdr.getDetails().getArray()));
              // Create the new detail
              Detail dtl = new Detail();
              dtl.setDetailDesc(desc);
              // add the new detail
              dtlLst.add(dtl);
              Detail[] ies = new Detail[dtlLst.size()];
              ies = dtlLst.toArray(new Detail[0]);
              DetailTable iet = new DetailTable(ies);
              hdr.setDetails(iet);
         }I know its the addDetail method causing the issue because if I comment out the t.addDetail(inv, "new line"); call it works fine.
    Message was edited by:
    pcristini

    Oracle® Database Object-Relational Developer's Guide
    Also note that object relational database design is often less performant and scalable than relational. It is not very often used in production environments.
    However, the object orientated programming feature that is provided with Oracle object feature set are used and can make development and interfaces a lot easier.
    So in a nutshell. Say no to ref and nested table columns. Say yes to most of the other object features. IMO of course...

  • How to use oracle collection type with JDBC?

    I try to use oracle collection type in java program. So I made some package and java program, however Java program was not found "package.collectiontype"(JDBC_ERP_IF_TEST.NUM_ARRAY) . please, show me how to use this.
    Java Version : Java 1.4
    JDBC Driver : Oracle Oci Driver
    DB: Oracle 9i
    No 1. Package
    ===========================================
    create or replace package JDBC_ERP_IF_TEST AS
    type NUM_ARRAY is table of number;
    procedure JDBC_ERP_IF_ARRAY_TEST(P_NUM_ARRAY IN NUM_ARRAY, ERR_NO OUT NUMBER, ERR_TEXT OUT VARCHAR2);
    procedure TEST(ABC IN NUMBER);
    END JDBC_ERP_IF_TEST;
    ==================================================
    No 2. Package Body
    ===============================================
    CREATE OR REPLACE package BODY JDBC_ERP_IF_TEST is
    procedure JDBC_ERP_IF_ARRAY_TEST(p_num_array IN NUM_ARRAY,
    ERR_NO OUT NUMBER,
    ERR_TEXT OUT VARCHAR2) is
    begin
    ERR_NO := 0;
    ERR_TEXT := '';
    dbms_output.enable;
    for i in 1 .. p_num_array.count() loop
    dbms_output.put_line(p_num_array(i));
    insert into emp (empno) values (p_num_array(i));
    commit;
    end loop;
    EXCEPTION
    WHEN OTHERS THEN
    ERR_NO := SQLCODE;
    ERR_TEXT := ERR_TEXT ||
    ' IN JDBC INTERFACE TEST FOR ORACLE ERP OPEN API..';
    ROLLBACK;
    RETURN;
    end JDBC_ERP_IF_ARRAY_TEST;
    procedure TEST(ABC IN NUMBER) IS
    begin
    insert into emp(empno) values (ABC);
    commit;
    end TEST;
    end JDBC_ERP_IF_TEST;
    ===============================================
    NO 3. Java Program
    ===============================================
    ArrayDescriptor descriptor = ArrayDescriptor.createDescriptor("JDBC_ERP_IF_TEST.NUM_ARRAY", getConnection());
    ARRAY array = new ARRAY(descriptor, getConnection(), arrs);
    cstmt = getConnection().prepareCall(LQueryFactory.getInstance().get("Meta/Basic/testJdbcErpArrayIf").getSql());
    cstmt.setArray(1, array);
    cstmt.registerOutParameter(2, Types.INTEGER);
    cstmt.registerOutParameter(3, Types.VARCHAR);
    ====================================================
    couldn't find this phase => JDBC_ERP_IF_TEST.NUM_ARRAY
    what can i do for this package and program? please help me..

    Something like this:
    create or replace type t_record as  object (
    id number,
    no number
    CREATE or replace type t_table AS TABLE OF t_record;
    set serveroutput on
    declare
      v_table t_table := t_table();
      v_t1 t_table := t_table();
    begin
      v_table.extend(1);
      v_table(1).ID := 1;
      v_table(1).No := 10;
      v_table.extend(1);
      v_table(2).ID := 2;
      v_table(2).ID := 20;
      SELEC t_record (ID,NO) BULK COLLECT INTO v_t1
      from TableA
      FROM TABLEA
      WHERE ID IN (select t.ID from table(v_Table) t);
      for i in 1..v_t1.count loop
        dbms_output.put_line(v_t1(i).ID);
        dbms_output.put_line(v_t1(i).No);
      end loop;
    end;
    /Untested!
    P;
    Edited by: bluefrog on Mar 5, 2010 5:08 PM

  • Oracle 8i database hangs for the same amount during JDBC calls.

    Hi all,
    I have a Oracle 8i database on solaris. The database hangs for exactly 61 seconds for a random jdbc call from my Java application, i mean there is no particular pattern or a JDBC call for which the database hangs. If i choose to wait for 61 seconds it returns the results from the database but if i try to access the database with another query(SQL Plus) the first query starts executing immediately. Is that a database configuration problem or some thing else.
    And i also get some exceptions occasionally( Maximum Open Cursors exception). Are these two related?
    Any feedback is appreciated.
    Thanks
    Hugo Victor

    I have uninstalled Oracle 8i.
    Removed all the services from Windows services by deleting corresponding registry entries and deleted the Oracle folder.
    I have reinstalled Oracle 8i, this time i changed the name of global database to oracledb.
    I channged the tnsnames.ora file from DevSuite appropriately as:
    # tnsnames.ora Network Configuration File: C:\DevSuiteHome_1\network\admin\tnsnames.ora
    # Generated by Oracle configuration tools.
    EXTPROC_CONNECTION_DATA =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = mscserver)(PORT = 1521))
    (CONNECT_DATA =
    (SERVICE_NAME = ORACLEDB)
    Still it can't login using scott/tiger authentication.
    What may be the problem? Please help.
    -Sameer

  • Oracle.sql.ARRAY incompatible with weblogic.jdbc.vendor.oracle.OracleArray

    Hi,
    I am facing following issue in my one environment. but in other environment same class path is working fine. I have compared all jar and classpath for both weblogic server.
    I am using weblogic 11g.
    27 Mar 2013 15:21:09,507 ERROR XXXServlet:293 - oracle.sql.ARRAY incompatible with weblogic.jdbc.vendor.oracle.OracleArray
    java.lang.ClassCastException: oracle.sql.ARRAY incompatible with weblogic.jdbc.vendor.oracle.OracleArray
    at com.emc.nems.wsd.ui.beans.reports.mpapi.FacilityBeanType.nullSafeGet(FacilityBeanType.java:126)
    at org.hibernate.type.CustomType.nullSafeGet(CustomType.java:128)
    at org.hibernate.type.AbstractType.hydrate(AbstractType.java:105)
    at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2114)
    at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1404)
    at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1332)
    at org.hibernate.loader.Loader.getRow(Loader.java:1230)
    at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:603)
    at org.hibernate.loader.Loader.doQuery(Loader.java:724)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
    at org.hibernate.loader.Loader.doList(Loader.java:2232)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129)
    at org.hibernate.loader.Loader.list(Loader.java:2124)
    at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:312)
    at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1723)
    at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:165)
    at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:175)
    at com.emc.nems.oms.dao.hibernate.util.OMSHibBaseDAO.executeNamedQueryWithoutTransaction(Unknown Source)
    at com.emc.nems.wsd.dao.hibernate.reports.mpapi.MpapiReportHibDAO.findMCR020(Unknown Source)
    at com.emc.nems.wsd.ui.handler.reports.ReportsHandler.getMPAPIData(Unknown Source)
    at com.emc.nems.wsd.ui.servlets.reports.mpapi.MpapiServlet.executeReport(XXXServlet.java:1009)
    at com.emc.nems.wsd.ui.servlets.reports.mpapi.MpapiServlet.generateAuditFile(XXXServlet.java:318)
    at com.emc.nems.wsd.ui.servlets.reports.mpapi.MpapiServlet.execute(XXXServlet.java:273)
    at com.emc.nems.wsd.ui.servlets.reports.mpapi.MpapiServlet.doGet(XXXServlet.java:207)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    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.ServletStubImpl.execute(ServletStubImpl.java:183)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3731)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3695)
    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:2285)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2184)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1459)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    Regards,
    Abhishek

    Creating my Oracle connection works fine ... code as follows:
    <i>Context ctxt = getInitialContext();
    DataSource dataSource = (DataSource) ctxt.lookup(poolName);
    Connection conn = dataSource.getConnection();
    OracleConnection oracleConn = (OracleConnection)((WLConnection)conn).getVendorConnection();</i>
    I also have reviewed documentation:
    http://e-docs.bea.com/wls/docs81/jdbc/thirdparty.html. In section 'Using OracleStruct Extension Methods' it highlights that
    <i>java.sql.Struct struct =(weblogic.jdbc.vendor.oracle.OracleStruct)(rs.getObject(2));</i>
    None of the documentation actually mentions <b>oracle.sql.STRUCT</b>. For Weblogic to truely provide support for Oracle it needs an easy way of converting to this data type. At present I cannot interact with Oracle APIs until I can create an oracle.sql.STRUCT.

  • Oracle defined array type

    Hi,
    I am trying to pass an input parameter to a stored procedure as oracle defined array type. The input parameter will be stored as an array_varchar type which is defined by our own in our oracle 9i. Can anyone tell me how ? I've been looking for solution for 2 days and still dont know how.
    Thanks.
    yves

    The solution described in Passing Array of UDT or Collection as IN OUT using OracleDbType.InputOutput
    is working for me.
    Edited by: stzueger on Jan 2, 2012 10:32 AM

  • How to implement the JDBC call over SSL on Oracle?

    I searched the forums and google. It seems to support Oracle 9i JDBC call, Thin driver can not work and we should use OCI.
    I referenced OTN Oracle java example about the SSL, it talked about the security socket but not anythingabout JDBC. http://download-west.oracle.com/docs/cd/B10501_01/network.920/a96573/asoappf.htm#634403
    Who can provide a clear description and resource URL to tell how to make a simple implementation on JDBC over SSL.
    Thanks a lot.

    That article you referenced is referring to the JVM that runs when one runs java stored procedures. It has nothing to do with JDBC.
    You have a unusual requirement (probabaly originated as the same place as your alias.)
    Most of the time SSL is not needed for the database because the database and the applications that talk to it are already on a secured network.
    You can investigate some third party drivers, I believe I recall seeing that one of them does SSL.
    Alternatively you might look into a secure VPN connection. The connection travels over IP and tunnels other traffic through it. Given that the tunned itself is secure, the contents are as well.

  • JDBC calling an Oracle PL/SQL Package?

    Does anyone know how to have JDBC call an Oracle PL/SQL Package?
    Thanks, Jon

    Review the CallableStatement object in the JDBC Developers Guide

  • How to map Oracle ORDImage type, what is the JDBC-type ?

    Hello,
    I have a field in my Oracle database that has the type ORDSYS.ORDIMAGE. How can I map this in the standardjbosscmp-jdbc.xml file of JBOSS (in the part of the oracle 9i type-mappings)?
    The java type is "oracle.ord.im.OrdImage", but what is the jdbc-type ? Do I have to include extra oracle files in some directories of Jboss ?
    <mapping>
    <java-type>oracle.ord.im.OrdImage</java-type>
    <jdbc-type>?</jdbc-type>
    <sql-type>?</sql-type>
    </mapping>
    Thanks!!!
    Greetz J

    I've never used JBOSS, but, could the jsbc type indicate the jdbc driver to use?
    The sql type is ORDSYS.ORDIMAGE, but I am not sure what JBOSS is looking for...

  • Wrong number or types of arguments in call to procedure name

    assuming i have this pl/sql code:
    CREATE OR REPLACE PACKAGE MyPackage AS
    TYPE tab_array IS TABLE OF VARCHAR2(300);
    PROCEDURE my_procedure(in_values IN tab_array);
    END MyPackage;
    CREATE OR REPLACE PACKAGE BODY MyPackage AS
    PROCEDURE my_procedure(in_values IN tab_array) IS
    BEGIN
    DBMS_OUTPUT.PUTLINE('This is only a test');
    END my_procedure;
    END MyPackage;
    when i tried typing this on SQL*Plus
    execute mypackage.my_procedure('value1, value2, value3');
    it gives an error like:
    PLS-00306: wrong number or types of arguments in call to 'MY_PROCEDURE'
    PL/SQL: Statement ignored
    Is my parameters incorrect? What should the parameter be? Please give me a sample code.
    Thanks.

    Hi,
    1. typing error: there should be an underline.
    i.e. DBMS_OUTPUT.PUT_LINE('This is only a test');
    2. Since the tab_array type is user defined (although
    it is VARCHAR2), When the package is called, it cannot
    recognize what you pass in even if you declare it in
    the calling block.
    You should create it as global type, then this type
    can be visible to all other PL/SQL, stored procedure &
    stored package. you can type the following in the SQL/PLUS:
    SQL> CREATE TYPE tab_array AS TABLE OF VARCHAR2(300);
    2 /
    3. Remove the declaration line for the tab_array in the package
    and package body. If you declare it locally in the package,
    it will override the global one and cannot be recognized again.
    So just remove it. it should be compiled and run.
    Hope you succeed.
    Thanks.

  • ORA-06553: PLS-306: wrong number or types of arguments in call to 'EDN_DEQU

    Hi,
    I have installed Oracle fusion 11g on windows vista SP1 system. I have followed all the steps provided in the Oracle fusion installation guide.
    After installation when i tried to start the SOA server i'm continously getting the below warning message in the log file.
    [2009-11-27T03:18:23.203+05:30] [soa_server1] [WARNING] [SOA-31013] [oracle.integration.platform.blocks.event.saq] [tid: oracle.integration.platform.blocks.executor.WorkManagerExecutor$1@291d84] [userId: <anonymous>] [ecid: 0000IKmTpBfB5Ewr0CyWMF1B3jQf00000B,0] [APP: soa-infra] Error handling message (rolling back).[[
    java.sql.SQLException: ORA-06553: PLS-306: wrong number or types of arguments in call to 'EDN_DEQUEUE_OAOO_DELIVERY'
         at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
         at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133)
         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:206)
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455)
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)
         at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1034)
         at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:191)
         at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:950)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1223)
         at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3386)
         at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3487)
         at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:3858)
         at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1374)
         at weblogic.jdbc.wrapper.PreparedStatement.execute(PreparedStatement.java:98)
         at oracle.integration.platform.blocks.event.saq.SAQBusinessEventBus.readOAOODelivery(SAQBusinessEventBus.java:1222)
         at oracle.integration.platform.blocks.event.saq.SAQBusinessEventBus.handleSingleOAOODelivery(SAQBusinessEventBus.java:690)
         at oracle.integration.platform.blocks.event.saq.SAQBusinessEventBus.handleQueueEvents(SAQBusinessEventBus.java:614)
         at oracle.integration.platform.blocks.event.saq.SAQBusinessEventBus.access$000(SAQBusinessEventBus.java:76)
         at oracle.integration.platform.blocks.event.saq.SAQBusinessEventBus$1.run(SAQBusinessEventBus.java:279)
         at oracle.integration.platform.blocks.executor.WorkManagerExecutor$1.run(WorkManagerExecutor.java:77)
         at weblogic.work.j2ee.J2EEWorkManager$WorkWithListener.run(J2EEWorkManager.java:171)
         at java.lang.Thread.run(Thread.java:619)
    I have restarted everything and tried again which resulted in the same scenario.
    Anyone,Please help me to troubleshoot this and walk me through this issue.Thanks in advance!.

    Hi to all,
    I have the same problem after a fresch installation of the SOA SUite on a Windows XP.
    After both the admin server and the SOA Server for the domain started correctly then the huge amount of errors
    <ORA-06553: PLS-306: ....>
    is preventing any work on the dual core PC.
    Who can help ?
    best regards
    ############## traces SOA_server console ###############
    <Dec 16, 2009 10:09:10 AM CET> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to ADMIN>
    <Dec 16, 2009 10:09:10 AM CET> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RESUMING>
    <Dec 16, 2009 10:09:10 AM CET> <Warning> <Server> <BEA-002611> <Hostname "venus", maps to multiple IP addresses: 192.168
    .0.52, 192.168.0.41>
    <Dec 16, 2009 10:09:10 AM CET> <Notice> <Server> <BEA-002613> <Channel "Default[1]" is now listening on 192.168.0.41:800
    1 for protocols iiop, t3, ldap, snmp, http.>
    <Dec 16, 2009 10:09:10 AM CET> <Notice> <Server> <BEA-002613> <Channel "Default" is now listening on 192.168.0.52:8001 f
    or protocols iiop, t3, ldap, snmp, http.>
    <Dec 16, 2009 10:09:10 AM CET> <Notice> <Server> <BEA-002613> <Channel "Default[2]" is now listening on 127.0.0.1:8001 f
    or protocols iiop, t3, ldap, snmp, http.>
    <Dec 16, 2009 10:09:10 AM CET> <Notice> <WebLogicServer> <BEA-000330> <Started WebLogic Managed Server "soa_server1" for
    domain "domain1" running in Production Mode>
    INFO: WLSFabricKernelInitializer$1.handleNotification ......received server running notification. proceeding with compo
    site deployments
    INFO: WLSFabricKernelInitializer$2.run --------->deploying composite model: default/HelloWorldComposite!1.0*53efe7eb-0cc
    6-4fd4-a4c7-72429e842d89
    <Dec 16, 2009 10:09:13 AM CET> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING>
    <Dec 16, 2009 10:09:13 AM CET> <Notice> <WebLogicServer> <BEA-000360> <Server started in RUNNING mode>
    INFO: SSLSocketFactoryManagerImpl.getKeystoreLocation SOA Keystore location: C:/Oracle/MIDDLE~1/HOME_1~1/USER_P~1/domain
    s/domain1/config/fmwconfig/default-keystore.jks
    INFO: SSLSocketFactoryManagerImpl.getKeystorePassword Obtained null or empty keystore password
    INFO: SSLSocketFactoryManagerImpl.getKeyPassword Obtained null or empty key password
    INFO: SSLSocketFactoryManagerImpl.getSSLSocketFactory SOA-20160
    INFO: DeploymentEventPublisher.invoke Publishing deploy event for default/HelloWorldComposite!1.0*53efe7eb-0cc6-4fd4-a4c
    7-72429e842d89
    INFO: WLSFabricKernelInitializer$2.run -------> Done deploying composites. took 1 seconds.
    Dec 16, 2009 10:09:16 AM oracle.integration.platform.blocks.event.saq.SAQBusinessEventBusMessages errorHandlingMessage
    WARNING: Error handling message (rolling back).
    java.sql.SQLException: ORA-06553: PLS-306: wrong number or types of arguments in call to 'EDN_DEQUEUE_OAOO_DELIVERY'
    at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
    at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:206)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1034)
    at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:191)
    at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:950)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1223)
    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3386)
    at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3487)
    at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:3858)
    at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1374)
    at weblogic.jdbc.wrapper.PreparedStatement.execute(PreparedStatement.java:98)
    at oracle.integration.platform.blocks.event.saq.SAQBusinessEventBus.readOAOODelivery(SAQBusinessEventBus.java:12
    22)
    at oracle.integration.platform.blocks.event.saq.SAQBusinessEventBus.handleSingleOAOODelivery(SAQBusinessEventBus
    .java:690)
    at oracle.integration.platform.blocks.event.saq.SAQBusinessEventBus.handleQueueEvents(SAQBusinessEventBus.java:6
    14)
    at oracle.integration.platform.blocks.event.saq.SAQBusinessEventBus.access$000(SAQBusinessEventBus.java:76)
    at oracle.integration.platform.blocks.event.saq.SAQBusinessEventBus$1.run(SAQBusinessEventBus.java:279)
    at oracle.integration.platform.blocks.executor.WorkManagerExecutor$1.run(WorkManagerExecutor.java:77)
    at weblogic.work.j2ee.J2EEWorkManager$WorkWithListener.run(J2EEWorkManager.java:171)
    at java.lang.Thread.run(Thread.java:619)
    ################ traces WebLogic admin server ######################
    starting weblogic with Java version:
    java version "1.6.0_11"
    Java(TM) SE Runtime Environment (build 1.6.0_11-b03)
    Java HotSpot(TM) Client VM (build 11.0-b16, mixed mode)
    Starting WLS with line:
    C:\Oracle\MIDDLE~1\HOME_1~1\JDK160~1\bin\java -client -Xms512m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m -Dweblo
    gic.Name=AdminServer -Djava.security.policy=C:\Oracle\MIDDLE~1\HOME_1~1\WLSERV~1.3\server\lib\weblogic.policy -Xverify:
    none -da -Dplatform.home=C:\Oracle\MIDDLE~1\HOME_1~1\WLSERV~1.3 -Dwls.home=C:\Oracle\MIDDLE~1\HOME_1~1\WLSERV~1.3\serve
    r -Dweblogic.home=C:\Oracle\MIDDLE~1\HOME_1~1\WLSERV~1.3\server -Ddomain.home=C:\Oracle\MIDDLE~1\HOME_1~1\USER_P~1\doma
    ins\domain1 -Doracle.home=C:\Oracle\Middleware\home_11gR1\Oracle_SOA1 -Djrf.version=11.1.1 -Dorg.apache.commons.logging.
    Log=org.apache.commons.logging.impl.Jdk14Logger -Djrockit.optfile=C:\Oracle\Middleware\home_11gR1\Oracle_SOA1\modules\or
    acle.jrf_11.1.1\jrocket_optfile.txt -Doracle.security.jps.config=C:\Oracle\MIDDLE~1\HOME_1~1\USER_P~1\domains\domain1\co
    nfig\fmwconfig\jps-config.xml -Djava.protocol.handler.pkgs=oracle.mds.net.protocol -Dweblogic.alternateTypesDirectory=C
    :\Oracle\Middleware\home_11gR1\Oracle_SOA1\modules\oracle.ossoiap_11.1.1,C:\Oracle\Middleware\home_11gR1\Oracle_SOA1\mod
    ules\oracle.oamprovider_11.1.1 -Dsso.filter.enable=true -Doracle.security.jps.policy.migration.validate.principal=false
    -Dsoa.archives.dir=C:\Oracle\Middleware\home_11gR1\Oracle_SOA1\soa -Dsoa.instance.home=C:\Oracle\MIDDLE~1\HOME_1~1\USE
    R_P~1\domains\domain1 -Dtangosol.coherence.clusteraddress=227.7.7.7 -Dtangosol.coherence.log=jdk -Djavax.xml.soap.Messag
    eFactory=oracle.j2ee.ws.saaj.soap.MessageFactoryImpl -Dcom.sun.management.jmxremote -Djava.protocol.handler.pkgs="oracle
    .mds.net.protocol|oracle.fabric.common.classloaderurl.handler|oracle.fabric.common.uddiurl.handler" -Dweblogic.transacti
    on.blocking.commit=true -Dweblogic.transaction.blocking.rollback=true -Dem.oracle.home=C:\Oracle\Middleware\home_11gR1\O
    racle_SOA1 -Djava.awt.headless=true -Dweblogic.management.discover=true -Dwlw.iterativeDev= -Dwlw.testConsole= -Dwlw.lo
    gErrorsToConsole= -Dweblogic.ext.dirs=C:\Oracle\MIDDLE~1\HOME_1~1\patch_wls1031\profiles\default\sysext_manifest_classpa
    th;C:\Oracle\MIDDLE~1\HOME_1~1\patch_oepe1031\profiles\default\sysext_manifest_classpath weblogic.Server
    <Dec 16, 2009 10:02:02 AM CET> <Info> <WebLogicServer> <BEA-000377> <Starting WebLogic Server with Java HotSpot(TM) Clie
    nt VM Version 11.0-b16 from Sun Microsystems Inc.>
    <Dec 16, 2009 10:02:03 AM CET> <Info> <Management> <BEA-141107> <Version: WebLogic Server 10.3.1.0 Thu Jun 11 00:26:56
    EDT 2009 1227385 >
    <Dec 16, 2009 10:02:07 AM CET> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STARTING>
    <Dec 16, 2009 10:02:07 AM CET> <Info> <WorkManager> <BEA-002900> <Initializing self-tuning thread pool>
    <Dec 16, 2009 10:02:08 AM CET> <Notice> <Log Management> <BEA-170019> <The server log file C:\Oracle\Middleware\home_11g
    R1\user_projects\domains\domain1\servers\AdminServer\logs\AdminServer.log is opened. All server side log events will be
    written to this file.>
    <Dec 16, 2009 10:02:17 AM CET> <Notice> <Security> <BEA-090082> <Security initializing using security realm myrealm.>
    <Dec 16, 2009 10:02:34 AM CET> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STANDBY>
    <Dec 16, 2009 10:02:34 AM CET> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STARTING>
    <Dec 16, 2009 10:02:47 AM CET> <Warning> <J2EE> <BEA-160195> <The application version lifecycle event listener oracle.se
    curity.jps.wls.listeners.JpsAppVersionLifecycleListener is ignored because the application em is not versioned.>
    Dec 16, 2009 10:03:12 AM org.apache.beehive.netui.util.logging.Logger error
    SEVERE: ServletContainerAdapter manager not initialized correctly.
    Dec 16, 2009 10:03:30 AM org.apache.myfaces.trinidadinternal.config.GlobalConfiguratorImpl init
    WARNING: Configurator services already initialized.
    ADF Library non-OC4J post-deployment (millis): 78
    <Dec 16, 2009 10:03:42 AM CET> <Notice> <Log Management> <BEA-170027> <The Server has established connection with the Do
    main level Diagnostic Service successfully.>
    <Dec 16, 2009 10:03:43 AM CET> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to ADMIN>
    <Dec 16, 2009 10:03:43 AM CET> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RESUMING>
    <Dec 16, 2009 10:03:43 AM CET> <Warning> <Server> <BEA-002611> <Hostname "venus", maps to multiple IP addresses: 192.168
    .0.52, 192.168.0.41>
    <Dec 16, 2009 10:03:43 AM CET> <Notice> <Server> <BEA-002613> <Channel "Default[2]" is now listening on 127.0.0.1:7001 f
    or protocols iiop, t3, ldap, snmp, http.>
    <Dec 16, 2009 10:03:43 AM CET> <Notice> <Server> <BEA-002613> <Channel "Default[1]" is now listening on 192.168.0.41:700
    1 for protocols iiop, t3, ldap, snmp, http.>
    <Dec 16, 2009 10:03:43 AM CET> <Notice> <Server> <BEA-002613> <Channel "Default" is now listening on 192.168.0.52:7001 f
    or protocols iiop, t3, ldap, snmp, http.>
    <Dec 16, 2009 10:03:43 AM CET> <Notice> <WebLogicServer> <BEA-000329> <Started WebLogic Admin Server "AdminServer" for d
    omain "domain1" running in Production Mode>
    <Dec 16, 2009 10:03:43 AM CET> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING>
    <Dec 16, 2009 10:03:43 AM CET> <Notice> <WebLogicServer> <BEA-000360> <Server started in RUNNING mode>
    ###############################################################################################

Maybe you are looking for

  • How do I add products to the existing catalog?

    I logon to Catalog management tool, but nowhere do I see how do I see option to edit the existing catalog(the sample catalog, part of commerce server template). (I have tried logging as administrator/password), search does not show me the sample stor

  • While creating a Sales Order , service order is being created

    1) VA02  -->  given some number for order  (71009759 valid sales order for service ) 2) trying to create a material ( say SERVICE K in my case and qty 1) 3) now i press save button 4) now i go to IW32 a new service order is being created there. where

  • Variable binding for a projection

    The 11.14. Projection Variables example shows how to bind a collection element variable in the query filter for enabling its projection : Query query = pm.newQuery (Magazine.class, "price < 5 " + "&& coverArticle.subtitles.contains (ttl)"); query.set

  • MIFI Liberate 1.4 update issues?

    My MIFI Liberate pushed the software update to 1.4 Tuesday of this week. It imediately started refusing the update, and finally I got it updated after about 3 master resets. After the update, the MIFI no longer stays registered to the HSPA+ network.

  • Deleting one filed from itab cpmaring duplicates

    Hi,   I have one final table with 8 columns as Billing document ,   date,   net amount  ,   tax amount, Gross amount,  Cform serial no. ,   c form no.  ,  c form amount   from above table i want to delete  only c form amount if it is duplicate  compa