Need help on syntax of PL/SQL Table type

Hi Everyone
I have the following Procedure
DECLARE
TYPE ln_empno IS TABLE OF NUMBER;
ln_empno1 ln_empno;
dml_errors EXCEPTION;
PRAGMA EXCEPTION_INIT (dml_errors, -24381);
ERRORS NUMBER;
BEGIN
UPDATE emp
SET empno = empno
RETURN empno
BULK COLLECT INTO ln_empno1;
FORALL idx IN 1 .. ln_empno1.COUNT SAVE EXCEPTIONS
INSERT INTO t1
VALUES (ln_empno1 (idx));
EXCEPTION
WHEN dml_errors
THEN
ERRORS := SQL%BULK_EXCEPTIONS.COUNT;
FOR i IN 1 .. ERRORS
LOOP
DBMS_OUTPUT.put_line ( 'Error '
|| i
|| ' occurred during '
|| 'iteration '
|| SQL%BULK_EXCEPTIONS (i).ERROR_INDEX
DBMS_OUTPUT.put_line ( 'Oracle error is '
|| SQLERRM (-SQL%BULK_EXCEPTIONS (i).ERROR_CODE
END LOOP;
END;
This will collect the single column, I am not able to get the syntax to create a record containg empno and ename and bulk collect into a collection type.
Can anyone help me to execute this procedure for ln_empno as a record of empno and ename.
Thanks in Advance
-Ahmed

Also,
If you want it as an update then why not just alter as per my example... e.g.
SQL> ed
Wrote file afiedt.buf
  1  DECLARE
  2    TYPE lt_emp_rec IS RECORD (empno NUMBER, deptno NUMBER);
  3    TYPE lt_emp IS TABLE OF lt_emp_rec INDEX BY PLS_INTEGER;
  4    lr_emp lt_emp;
  5  BEGIN
  6    UPDATE emp
  7    SET deptno = deptno+10
  8    RETURNING empno, deptno
  9    BULK COLLECT INTO lr_emp;
10    FOR idx IN 1 .. lr_emp.COUNT
11    LOOP
12      DBMS_OUTPUT.PUT_LINE('EmpNo: '||to_char(lr_emp(idx).empno)||' ::: DeptNo: '||to_char(lr_emp(idx).deptno));
13    END LOOP;
14* END;
SQL> /
EmpNo: 7369 ::: DeptNo: 30
EmpNo: 7499 ::: DeptNo: 40
EmpNo: 7521 ::: DeptNo: 40
EmpNo: 7566 ::: DeptNo: 30
EmpNo: 7654 ::: DeptNo: 40
EmpNo: 7698 ::: DeptNo: 40
EmpNo: 7782 ::: DeptNo: 20
EmpNo: 7788 ::: DeptNo: 30
EmpNo: 7839 ::: DeptNo: 20
EmpNo: 7844 ::: DeptNo: 40
EmpNo: 7876 ::: DeptNo: 30
EmpNo: 7900 ::: DeptNo: 40
EmpNo: 7902 ::: DeptNo: 30
EmpNo: 7934 ::: DeptNo: 20
PL/SQL procedure successfully completed.
SQL>Was that so hard?

Similar Messages

  • Passing parameters to PL/SQL table types

    Hi Everybody,
    I have one question about passing PL/SQL tables types and tabs as IN parameter in procedure.I am working in 11.2.0.2.0 environment. I am stuck on how to pass those values to procedure.Please find below more details:
    Table 1:
    CREATE TABLE ITEMS
    ITEM_ID VARCHAR2(40 BYTE) NOT NULL,
    ITEM_NAME VARCHAR2(40 BYTE),
    SERIAL NUMBER(2),
    ADDED_ON DATE);
    Table 2:
    CREATE TABLE ITEM_ACTIVITY_INFO
    ITEM_ID VARCHAR2(40 BYTE) NOT NULL,
    ACCOUNT_TYPE VARCHAR2(1 BYTE),
    ID_NUMBER NUMBER(3),
    ACTIVATION_DATE DATE);
    Table 3:
    CREATE TABLE ITEM_GROUP
    GROUP_ID NUMBER(2) NOT NULL,
    ITEM_ID VARCHAR2(40 BYTE),
    GROUP_TYPE VARCHAR2(20 BYTE),
    GROUP_DATE DATE);
    Table 4:
    CREATE TABLE ITEM_ADDRESS
    GROUP_ID NUMBER(2) NOT NULL,
    NAME VARCHAR2(60 BYTE),
    ADDRESS VARCHAR2(100));
    Following types are created:
    CREATE OR REPLACE TYPE ITEMS_TYPE AS OBJECT
    ITEM_ID VARCHAR2(40 BYTE),
    ITEM_NAME VARCHAR2(40 BYTE),
    SERIAL NUMBER(2),
    ADDED_ON DATE);
    CREATE OR REPLACE TYPE ITEM_ACTIVITY_TYPE AS OBJECT
    ITEM_ID VARCHAR2(40 BYTE),
    ACCOUNT_TYPE VARCHAR2(1 BYTE),
    ID_NUMBER NUMBER(3),
    ACTIVATION_DATE DATE);
    CREATE OR REPLACE TYPE ITEM_GROUP_COMP_TYPE AS OBJECT
    GROUP_ID NUMBER(2) NOT NULL,
    ITEM_ID VARCHAR2(40 BYTE),
    GROUP_TYPE VARCHAR2(20 BYTE),
    GROUP_DATE DATE
    ITEM_ADDRESS_IN ITEM_ADDRESS_TYPE);
    CREATE OR REPLACE TYPE ITEM_ADDRESS_TYPE AS OBJECT
    GROUP_ID NUMBER(2),
    NAME VARCHAR2(60 BYTE),
    ADDRESS VARCHAR2(100));
    CREATE OR REPLACE TYPE ITEM_GROUP_COMP_TAB AS TABLE OF ITEM_GROUP_COMP_TYPE;
    Create or replace procedure ITEM_ADD_CHANGE(
    ITEM_IN IN ITEMS_TYPE,
    ITEM_ACTIVITY_IN IN ITEM_ACTIVITY_TYPE,
    ITEM_GROUP_IN IN ITEM_GROUP_COMP_TAB,
    ITEM_OUT IN OUT ITEMS.ITEM_ID%TYPE);
    Above are the paramteres we are passing to procedure.
    I need help in how to pass parameters to above procedure. All comments and responses will be highly appreciated. Thanks everyone for going through the post. Please let me know if more more information is required on this problem.
    Regards
    Dev

    Billy  Verreynne  wrote:
    Types used in this fashion, only make sense if the table is based on the type. It makes very little sense to have a table structure and then to duplicate the structure using a type.
    The 2 structures may be defined the same. But they are NOT interchangeable and requires one to be converted to the other to use. This is not sensible in my view. It is far easier in that case to simply use the PL/SQL macro +%RowType+ to create a duplicate structure definition - one that can natively be used for touching that table, without conversions required.
    If you do want to use types, define the type, then define the table of that type, adding the required constraints (pk, fk, not null, check) to the table's definition.Billy:
    Just curious, why do you say it makes very little sense to have a type modeled on a table? I do that a lot. In my case, I am getting the values from an external program, not building them manually, but it makes a lot of sense to me.
    One application where I do this a lot has a java front-end that parses HL7 messages. Each message contains at least minimal information about a variable number of entities (and often several rows for an entity) in the database, and must be processed as a single atomic trasnaction. So, rather than have potentially hundreds of parameters to the "main" driver procedures for different message types I created a set of types more or less identical to the tables representing the entities. The java program parses the mesasge and populates the type, then calls the appropriate stored procedure for the message type passing in the populated types. My stored procedure then does inserts/updates or deletes as appropriate over potentially dozens of tables.
    John

  • PL/SQL table type in Forms 4.5

    Hi
    I am trying to use a pl/sql table type variable in Oracle forms 4.5 . I am able to compile this and run it on the database that the application connects to but in forms , it gives me a compilation error.
    Is there some restriction on using this datatype in forms 4.5
    Following is the syntax I am using:
    TYPE block_list_type IS TABLE of VARCHAR2(200) INDEX BY BINARY_INTEGER;
    block_list block_list_type;
    I get fatal syntax error even though the syntax is correct(checked it on the database).
    please let me know if I am doing something wrong.
    thanks a lot

    That explains it!!
    Thanks. My company is on oracle 10.7 and is too reluctant to move to higher versions. They finally bought I2 and are developing their own custom java applications and will phase out 10.7 but are not willing to move to the next version of Oracle !!
    Seems like they are done with Oracle .
    thanks for the input anyways.

  • Passing PL/SQL table type as IN Parameter to DB Adapter

    Hi,
    I have an requirement to pass multiple record values(array of values) to an API from BPEL process.
    For this,
    1) I have created a package procedure having PL/SQL table type variable as IN Parameter.
    2) In the BPEL process, created a DB adpater pointing to the above API.(Created wrapper API impicitly)
    When I intiated the BPEL process passing multiple values, the API is taking only the first value, ignoring rest of the values.
    Any reason, why only the first value is accepted by the API ?
    Thanks,
    Rapp.

    If I understand correctly, JPublisher generates a wrapper API for an underlying API that takes a PL/SQL table as an IN parameter. The wrapper will generate and use a SQL nested table as the type for the IN parameter of the wrapper procedure.
    The DB adapter DOES support nested tables, varrays, and objects as IN parameters of an API. The problem you are seeing is most likely due to the way you are modeling your BPEL process, specifically with respect to your Assign activities.
    When you Assign TO an IN parameter, make sure that you drill down all the way and choose the parameter name in the InputParameters root element. Similarly, when you Assign FROM the API value, you must drill down and choose the name of the OUT parameter in the OutputParameters root element.
    In a Transform activity, you would use the FOR construct on the target side to get the values of the nested table or varray from the source side.

  • Multiple users need to see some documents in SQL table, PHP

    Is there a way to serve up data for a user based on their group assignment?  I have two SQL tables.  The first one has the user login information (username, password, groupID note: multiple users can belong to same GroupID).  The second table has the data that needs to be shown (file name, date, groupID note: multiple files can be assigned to same GroupID).  I need to be able to serve up the file name and date from the second group based on the groupID assigned in the first table.  I know this should be simple, but for some reason I just can't wrap my head around it.  My site is PHP.   Thank you in advance for any help,

    The GroupID you are using is typically used as an access level and used for access and restriction to pages, but the same principles apply here. I would suggest using three groups, with the third meaning both. This value can be stored in a session variable or used when a recordset from the user table is executed on the page. Use this value in your select statement to choose records marked with the same groupID.
      So you'll have three groups, 1, 2 and  3 with three indicating both. However, in the second table, the groupID in those records will still only be assigned to 1 or 2,  so you'll need an OR statement in the SQL to choose both when the access level is 3.

  • Need help about ref cursor using like table

    Hi Guys...
    I am devloping package function And i need help about cursor
    One of my function return sys_refcursor. And the return cursor need to be
    join another table in database . I don't have to fetch all rows in cursor
    All i need to join ref cursor and another table in sql clause
    like below
    select a.aa , b.cc form ( ref_cursor ) A, table B
    where A.dd = B.dd
    I appeciate it in advance

    My understanding is that you have a function that returns a refcursor and is called by a java app.
    Because this is a commonly used bit of code, you also want to reuse this cursor in other bits of sql and so you want to include it like table in a bit of sql and join that refcursor to other tables.
    It's not as easy as you might hope but you can probably achieve this with pipelined functions.
    Is it a direction that code should be going down? yes, eventually. I like the idea of pulling commonly used bits of code into a SQL statement especially into the WITH section, provided it could be used efficiently by the CBO.
    Is it worth the effort given what you have to do currently to implement it? possibly not.
    what else could you do? construct the sql statement independently of the thing that used it and reuse that sql statement rather than the refcursor it returns?
    Message was edited by:
    dombrooks

  • Need help in UPDATE data in SQL Query

    Hi all,
    I am trying to update data in the sql table as per below screenshot but couldn't able to do it. Can anyone help to update the data as I mention in screenshot.Appreciate you help.Thanks.
    Yellow highlighted columns are source
    Green highlighted columns are target
    Colored data should be update as per source data in sql table.Data is not static as it might have more rows to update and query should be bit dynamic.
    Maruthi...

    You have already asked this question once. You did not get any good answers, because you the information you gave was insufficient. And I'm afraid that the information is still in sufficient.
    Or more exactly, from the example you have given, the answer is: can't be done. And the reason it can't be done, is as I explained in response to you first thread: there is no information in the data to from which we can deduce that Clorox Company
    should be under "Week 1-1,K.B,F". The fact that rows are listed in a certain order in the screenshoot is of no importance, because a table is an unordered object.
    But you said in another post that you have a timestamp column. Maybe that column is usable - maybe it is not. But at least it is a key that you have more columns that the ones you show.
    The best way to get help with this type of problems is to post:
    1) CREATE TABLE statement for your table(s).
    2) INSERT statements with sample data.
    3) The desired result given the sample.
    4) A short description of the actual buisness problem you are trying to solve.
    5) Which version of SQL Server you are using.
    This makes it easy to copy and paste into a query window to develop a tested solution. Screenshots with an insufficient amount of data is not going to help you very much.
    Erland Sommarskog, SQL Server MVP, [email protected]

  • Need help with date range searches for Table Sources in SES

    Hi all,
    I need help, please. I am trying to satisfy a Level 1 client requirement for the ability to search for records in crawled table sources by a date and/or date range. I have performed the following steps, and did not get accurate results from Advanced searching for date. Please help me understand what I am doing wrong, and/or if there is a way to define a date search attribute without creating a LOV for a date column. (My tables have 500,00 rows.)
    I am using SES 10.1.8.3 on Windows 32.
    My Oracle 10g Spatial Table is called REPORTS and this table has the following columns:
    TRACKNUM Varchar2
    TITLE Varchar2
    SUMMARY CLOB
    SYMBOLCODE Varchar2
    Timestamp Date
    OBSDATE Date
    GEOM SDO_GEOMETRY
    I set up the REPORTS table source in SES, using TRACKNUM as the Primary Key (unique and not null), and SUMMARY as the CONTENT Column. In the Table Column Mappings I defined TITLE as String and TITLE.
    Under Global Settings > Search Attributes I defined a new Search Attribute (type Date) called DATE OCCURRED (DD-MON-YY).
    Went back to REPORTS source previously defined and added a new Table Column Mapping - mapping OBSDATE to the newly defined DATE OCCURRED (DD-MON-YY) search attribute.
    I then modified the Schedule for the REPORTS source Crawler Policy to “Process All Documents”.
    Schedule crawls and indexes entire REPORTS table.
    In SES Advanced Search page, I enter my search keyword, select Specific Source Group as REPORTS, select All Match, and used the pick list to select the DATE OCCURRED (DD-MON-YY) Attribute Name, operator of Greater than equal, and entered the Value 01-JAN-07. Then the second attribute name of DATE_OCCURRED (DD-MON-YY), less than equals, 10-JAN-07.
    Search results gave me 38,000 documents, and the first 25 I looked at had dates NOT within the 01-JAN-07 / 10-JAN-07 range. (e.g. OBSDATE= 10-MAR-07, 22-SEP-07, 02-FEB-08, etc.)
    And, none of the results I opened had ANY dates within the SUMMARY CLOB…in case that’s what was being found in the search.
    Can someone help me figure out how to allow my client to search for specific dated records in a db table using a single column for the date? This is a major requirement and they are anxiously awaiting my solution.
    Thanks very much, in advance….

    raford,
    Thanks very much for your reply. However, from what I've read in the SES Admin Document is that (I think) the date format DD/MM/YYYY pertains only to searches on "file system" sources (e.g. Word, Excel, Powerpoint, PDF, etc.). We have 3 file system sources among our 25 total sources. The remaining 22 sources are all TABLE or DATABASE sources. The DBA here has done a great job getting the data standardized using the typical/default Oracle DATE type format in our TABLE sources (DD-MON-YY). Our tables have anywhere from 1500 rows to 2 million rows.
    I tested your theory that the dates we are entering are being changed to Strings behind the scenes and on the Advanced Page, searched for results using OBSDATE equals 01/02/2007 in an attempt to find data that I know for certain to be in the mapped OBSDATE table column as 01-FEB-07. My result set contained data that had an OBSDATE of 03-MAR-07 and none containing 01-FEB-07.
    Here is the big issue...in order for my client to fulfill his primary mission, one of the top 5 requirements is that he/she be able to find specific table rows that are contain a specific date or range of dates.
    thanks very much!

  • Need help with disappearing header row in tables

    Hey guys.
    I'm working on a large document with tables (annual report). I have set up table styles with header and body cell styles. When I apply the table style to a table, then convert the first row to header row, the entire header row disappears...!
    If I leave the row as body row and just apply the header cell style to it, it won't disappear. The row will only disappear if I convert it to header row in Indesign.
    I checked the Word doc I imported the text from, the first row of the tables is just normal body row.
    I dunno where to look so I have no idea how to fix this problem. It happens to all the tables. I was supplied this file. I don't particularly want to recreate the file. The original file was created in Creative Clouds and exported to idml for me as I have CS6.
    Has anyone experienced the same problem or know what's the solution? I really need help.
    Thanks in advance.

    It may be on the Table Options dailog box on the section of Headers and Footers> Header: Repeat Header the Skip First is check on.

  • Need help understanding syntax

    Hi,
    I need some help to understand the following syntax .
    PPRAMImpl am = (PPRAMImpl)pageContext.getApplicationModule(webBean); What is this PPARAMImpl?
    I know "am " is a variable . And with pageContext.getApplicationModule(webBean) we are trying to get the AM name for that page, then why do we need to add (PPARAMImpl) before pageContext.getApplicationModule(webBean) ?
    For example in plsql , apps.testpkg.mainproc(param1,param2)
    means
    schema.packagename.procedurename(parameter1,parameter2).
    So can you explain "PPRAMImpl am = (PPRAMImpl)pageContext.getApplicationModule(webBean)" in that manner?
    pageContext.getParameter(EVENT_PARAM))
    What is this ?
    What are the possible values for EVENT_PARAM ? And by the way , I need help on setting a default value for one of my search parameters in a search region .
    Correct me If I am wrong, this is what I thought
    1. EOImpl has setters and getters for that attribute. So call the setter method in controller and set the value , if this is right then I don't know how to right the code ,can you give me some sample code ?
    or
    2. get the view object name and then set the value for that . like viewobject.setattribute('att name',att value'),if this is right then I don't know how to right the code ,can you give me some sample code ?
    Thanks
    Sri.

    Hi,
    No. These are not equal.
    pageContext.getApplicationModule(webBean) return AM of type OAApplicationModule.
    It would be fine if your variable am, is of type OAApplicationModule:
    OAApplicationModule am = pageContext.getApplicationModule(webBean) // this would be fine.
    But as you are using of type PPRAMImpl, you must have to type-cast that externally using:
    PPRAMImpl am = (PPRAMImpl)pageContext.getApplicationModule(webBean);
    If you are still not clear, then refer any java book or google for internal & external type-casting in java.
    --Sushant                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Need help in analyzing size of a table

    Hi,
    We have a table DUMMY_TABLE which has a clob column. We need to reduce the size of the table by updating the clob column. The table statistics before updating the clob column is showing 2MB of size as mentioned below. After we run the update script to update the clob column, the table statistics are as shown below (table size increased to 33MB). Can you please let us know, why is the table size getting increased after the update script.
    Note: Before the update script the clob column has even bigger data.
    Before running the update script:
    Table Size - 2 MB
    Blocks - 256
    Extents - 17
    After
    running the update script:
    Table Size - 33 MB
    Blocks - 4224
    Extents - 48
    The query which we run to get the statistics is: “SELECT * FROM user_segments WHERE segment_name LIKE 'DUMMY_TABLE'”
    Update script for updating clob column is:
    DECLARE
    data1 clob;
    BEGIN
    data1 :='Dear <%UserFirstName%>,
    Below is the password you requested for the <%Company Name%>.
    Password: <%xxx%>
    To access the login page of the <%Company Name%>, please click on the following web-address:
    <%ApplicationURL%><%UserIdentificationValue%>
    If your email software does not support web links (i.e. clicking on the web-address does not take you directly to the <%Company Name%>), copy the above web-address into the "Address" or "Location" bar of your Internet web-browser in order to access the CareerTracker.
    Sincerely,
    Human Resource Department
    <%Company Name%>
    This is an automated email; please do not reply to this email address.';
    UPDATE DUMMY_TABLE SET data = data1;
    END;

    Take the statistics of the tables and check again.
    begin
    DBMS_STATS.gather_table_stats(ownname=>'syslog',tabname=>'logs');
    end;
    Regards
    Asif Kabir

  • Need help with saving data and keeping table history for one BP

    Hi all
    I need help with this one ,
    Scenario:
    When adding a new vendor on the system the vendor is suppose to have a tax clearance certificate and it has an expiry date, so after the certificate has expired a new one is submitted by the vendor.
    So i need to know how to have SBO fullfil this requirement ?
    Hope it's clear .
    Thanks
    Bongani

    Hi
    I don't have a problem with the query that I know I've got to write , the problem is saving the tax clearance certificate and along side it , its the expiry date.
    I'm using South African localization.
    Thanks

  • How to retrieve the values from PL/SQL table types.

    Hi Every one,
    I have the following procedure:
    DECLARE
    TYPE t1 IS TABLE OF emp%ROWTYPE
    INDEX BY BINARY_INTEGER;
    t t1;
    BEGIN
    SELECT *
    BULK COLLECT INTO t
    FROM emp;
    END;
    This procedure works perfectly fine to store the rows of employee in a table type. I am not able to retrieve the values from Pl/SQL table and display it using dbms_output.put_line command.
    Can anybody help me please!!!!!
    Thanks
    Ahmed.

    You mean, you can't add this
    for i in t.first..t.last loop
    dbms_output.put_line(t(i).empno||' '||t(i).ename||' '||t(i).job);
    end loop;or you can't add this
    set serveroutput onor maybe, you are working in third party application where dbms_output is not applicable at all?
    You see, not able like very similar it is not working - both are too vague...
    Best regards
    Maxim

  • Retrieving PL/SQL Table Type returned by stored procedure using Java.

    Hi All,
    I am facing an issue in a Stored Procedure (SP) which returns Table Type, the PL/SQL complex type.
    Below mentioned is how my stored procedure looks like.
    CREATE OR REPLACE package sp_test_pkg as
    TYPE v_value_table_type is table of SW_VALID_CODE.swValue%Type
    index by binary_integer;
    v_swRMAStatus v_value_table_type;
    procedure sp_test
    (locale      in int,
              name      in SW_CODE.swName%Type,
              v_value_table out v_value_table_type,
    batch_size in int,
    out_batch_size in out int,
    status out int);
    end sp_test_lcode_code_pkg;
    My java program to access this stored procedure is as given below:
    import java.sql.*;
    import oracle.jdbc.driver.*;
    public class OracleTest {       
         public static void main(String args[]) {
         Connection con = null;
    OracleCallableStatement cstmt = null;
    String url = "url";
         String userName = "username";     
         String password = "password";
    try
              DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());     
              con = DriverManager.getConnection(url, userName, password);
         cstmt = (OracleCallableStatement)con.prepareCall("begin " +
              "sp_test_pkg.sp_test_pkg(?,?,?,?,?,?); end;");
              cstmt.setInt(1, 1);
         cstmt.setString(2, "Test");
              cstmt.registerOutParameter(3, OracleTypes.ARRAY);
              cstmt.setInt(4, 10);
              cstmt.setInt(5, 1);
              cstmt.registerOutParameter(5, Types.INTEGER);
              cstmt.registerOutParameter(6, Types.INTEGER);
              cstmt.execute();
    } catch(Exception ex) {
    ex.printStackTrace(System.err);
    } finally {
    if(cstmt != null) try{cstmt.close();}catch(Exception _ex){}
    if(con != null) try{con.close();}catch(Exception _ex){}
    When i execute this java program, i get the following error:
    java.sql.SQLException: Parameter Type Conflict: sqlType=2003
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:187)
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:229)
         at oracle.jdbc.driver.OracleCallableStatement.registerOutParameterBytes(OracleCallableStatement.java:245)
         at oracle.jdbc.driver.OracleCallableStatement.registerOutParameter(OracleCallableStatement.java:389)
         at oracle.jdbc.driver.OracleCallableStatement.registerOutParameter(OracleCallableStatement.java:452)
         at OracleTest.main(OracleTest.java:49)
    I am not sure where i am going wrong. I have never worked on such complex types before. I want to retrieve the complex table type returned by the stored procedure using my java source code.
    Can anyone please help me out in resolving this issue?. This is very urgent.

    JDBC does not recognise types declared in PL/SQL. This is documented in the Dev Guide. [Find out more|http://download-west.oracle.com/docs/cd/B10501_01/java.920/a96654/oraarr.htm#1057625].
    The only work around would be to build a wrapper which calls your existing PL/SQL procedures and returns a SQL type instead. Obviously not knowing your precise scenario I have no idea how much work this entails for you. It may be worth building a code generator.
    Cheers, APC
    blog: http://radiofreetooting.blogspot.com

  • Database Adapter does not generate proper output for PL/SQL table type

    Hi,
    I have a DB Adapter to invoke a stored procedure on Oracle which returns a table type.
    I am getting the following output from the adapter:
    </DB_Test_InputVariable><DB_Test_OutputVariable><part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="OutputParameters">
    <db:OutputParameters xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:db="http://xmlns.oracle.com/pcbpel/adapter/db/APPS/BPEL_DB_TEST/XXC_KEMET_TEST_PKG-24GETITEMONH/">
    <ITEM_QTY_UOM_OUT>
    <ITEM_QTY_UOM_OUT_ITEM>
    <SERIAL_NUM>1</SERIAL_NUM>
    <ITEM_QTY_OUT>1</ITEM_QTY_OUT>
    <UOM_OUT>BOX</UOM_OUT>
    </ITEM_QTY_UOM_OUT_ITEM>
    <ITEM_QTY_UOM_OUT_ITEM>
    <SERIAL_NUM>2</SERIAL_NUM>
    <ITEM_QTY_OUT>5</ITEM_QTY_OUT>
    <UOM_OUT>BOX</UOM_OUT>
    </ITEM_QTY_UOM_OUT_ITEM>
    </ITEM_QTY_UOM_OUT>
    </db:OutputParameters>
    </part>
    </DB_Test_OutputVariable>
    When I try to transform it, it tries to select /db:OutputParameters/db:ITEM_QTY_UOM_OUT/db:ITEM_QTY_UOM_OUT_ITEM/db:SERIAL_NUM from it and does not give me any output.
    I assume it's the same issue with namespace prefix.
    If anyone has faced a similar issue or knows how to fix this, please let me know.

    I am using a DB adapter to run a stored procedure for a simple Select Query with a table as my out parameter.This creates an XSD when the partner link is created.The elementFormDefault=qualified is by default formed in the xsd.When i change it to unQualified it returns me compilation error.
    Where do i need to change the root element?
    My output of BPEL(P.S. - I have used synchronous BPEL) on the console is
    Your test request was processed synchronously. It took 359.0milliseconds to finish and generated the following output:
    Value: <ProcessResponsehttp://www.w3.org/2001/XMLSchema-instancehttp://www.example.org>
    <null>
    <null>
    <null>database_K_DKL_NW02</null>
    <null>2008-07-07T00:00:00.000+05:30</null>
    <null>2008</null>
    <null>3435</null>
    <null>http://www.google.com</null>
    </null>
    <null>
    <null>database_config.txt</null>
    <null>2006-03-14T00:00:00.000+05:30</null>
    <null>2006</null>
    <null>342345</null>
    <null>\\01hw180464\MOTO\database_config.txt</null>
    </null>
    <null>
    <null>database_help.txt</null>
    <null>2008-07-01T00:00:00.000+05:30</null>
    <null>2008</null>
    <null>68</null>
    <null>\\01hw180464\MOTO\database_help.txt</null>
    </null>
    <null>
    <null>database_search.txt</null>
    <null>2007-12-03T00:00:00.000+05:30</null>
    <null>2007</null>
    <null>365</null>
    <null>\\01hw180464\MOTO\database_search.txt</null>
    </null>
    </null>
    </ProcessResponse>
    whereas the output shown in Invoke in the visual flow is
    <messages>
    -<Invoke_1_Callin_Db_InputVariable>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="InputParameters">
    -<InputParameters xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/VODAT/BPEL_CALLIN_DB/MOTOROLA_BSC_DB-24VIEW_MOTOROLA/">
    <IN_FILENAME/>
    </InputParameters>
    </part>
    </Invoke_1_Callin_Db_InputVariable>
    -<Invoke_1_Callin_Db_OutputVariable>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="OutputParameters">
    -<db:OutputParameters xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:db="http://xmlns.oracle.com/pcbpel/adapter/db/VODAT/BPEL_CALLIN_DB/MOTOROLA_BSC_DB-24VIEW_MOTOROLA/">
    -<MYCURSOR>
    -<MYCURSOR_ITEM>
    <SOFTWARE_PKGS>database_K_DKL_NW02
    </SOFTWARE_PKGS>
    <CREATION_DATE>2008-07-07T00:00:00.000+05:30
    </CREATION_DATE>
    <CREATION_TIME>2008
    </CREATION_TIME>
    <FILE_SIZE>3435
    </FILE_SIZE>
    <FILE_PATH>http://www.google.com
    </FILE_PATH>
    </MYCURSOR_ITEM>
    -<MYCURSOR_ITEM>
    <SOFTWARE_PKGS>database_config.txt
    </SOFTWARE_PKGS>
    <CREATION_DATE>2006-03-14T00:00:00.000+05:30
    </CREATION_DATE>
    <CREATION_TIME>2006
    </CREATION_TIME>
    <FILE_SIZE>342345
    </FILE_SIZE>
    <FILE_PATH>\\01hw180464\MOTO\database_config.txt
    </FILE_PATH>
    </MYCURSOR_ITEM>
    -<MYCURSOR_ITEM>
    <SOFTWARE_PKGS>database_help.txt
    </SOFTWARE_PKGS>
    <CREATION_DATE>2008-07-01T00:00:00.000+05:30
    </CREATION_DATE>
    <CREATION_TIME>2008
    </CREATION_TIME>
    <FILE_SIZE>68
    </FILE_SIZE>
    <FILE_PATH>\\01hw180464\MOTO\database_help.txt
    </FILE_PATH>
    </MYCURSOR_ITEM>
    -<MYCURSOR_ITEM>
    <SOFTWARE_PKGS>database_search.txt
    </SOFTWARE_PKGS>
    <CREATION_DATE>2007-12-03T00:00:00.000+05:30
    </CREATION_DATE>
    <CREATION_TIME>2007
    </CREATION_TIME>
    <FILE_SIZE>365
    </FILE_SIZE>
    <FILE_PATH>\\01hw180464\MOTO\database_search.txt
    </FILE_PATH>
    </MYCURSOR_ITEM>
    </MYCURSOR>
    </db:OutputParameters>
    </part>
    <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="response-headers">[]
    </part>
    </Invoke_1_Callin_Db_OutputVariable>
    </messages>
    and the output shown in ReplyOutput is :-
    <outputVariable>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload">
    -<ProcessResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.example.org">
    -<MYCURSOR xmlns="">
    -<MYCURSOR_ITEM>
    <SOFTWARE_PKGS>database_K_DKL_NW02
    </SOFTWARE_PKGS>
    <CREATION_DATE>2008-07-07T00:00:00.000+05:30
    </CREATION_DATE>
    <CREATION_TIME>2008
    </CREATION_TIME>
    <FILE_SIZE>3435
    </FILE_SIZE>
    <FILE_PATH>http://www.google.com
    </FILE_PATH>
    </MYCURSOR_ITEM>
    -<MYCURSOR_ITEM>
    <SOFTWARE_PKGS>database_config.txt
    </SOFTWARE_PKGS>
    <CREATION_DATE>2006-03-14T00:00:00.000+05:30
    </CREATION_DATE>
    <CREATION_TIME>2006
    </CREATION_TIME>
    <FILE_SIZE>342345
    </FILE_SIZE>
    <FILE_PATH>\\01hw180464\MOTO\database_config.txt
    </FILE_PATH>
    </MYCURSOR_ITEM>
    -<MYCURSOR_ITEM>
    <SOFTWARE_PKGS>database_help.txt
    </SOFTWARE_PKGS>
    <CREATION_DATE>2008-07-01T00:00:00.000+05:30
    </CREATION_DATE>
    <CREATION_TIME>2008
    </CREATION_TIME>
    <FILE_SIZE>68
    </FILE_SIZE>
    <FILE_PATH>\\01hw180464\MOTO\database_help.txt
    </FILE_PATH>
    </MYCURSOR_ITEM>
    -<MYCURSOR_ITEM>
    <SOFTWARE_PKGS>database_search.txt
    </SOFTWARE_PKGS>
    <CREATION_DATE>2007-12-03T00:00:00.000+05:30
    </CREATION_DATE>
    <CREATION_TIME>2007
    </CREATION_TIME>
    <FILE_SIZE>365
    </FILE_SIZE>
    <FILE_PATH>\\01hw180464\MOTO\database_search.txt
    </FILE_PATH>
    </MYCURSOR_ITEM>
    </MYCURSOR>
    </ProcessResponse>
    </part>
    </outputVariable>
    Can you please tell me why am i getiing null value in my output xml in my BPEL console??
    What is the solution?where do i need to change the db: prefix?

Maybe you are looking for

  • Connection pool utilization -  questions and problems.

    Hi, This is in context to JSP/Java/JPDK based web provider applcation. Appreciate it if anyone can add any input here - 1)After adding dbPersonalization to my JSP portlets I noticed that the connections in my connection pool have maxed out. After the

  • Edit and text and choose from list

    hello, I am trying to create a form that resemle to the purchase order form. In the purchase order form when we select the card code from the choose from list the system fill all the fileds like the name docnum .. with relevant information. i tried t

  • Db 11gR1 11.1.0.7 Certified With EBS 12.1.1 on Windows Server 2003(x64)

    Hi; I just read this and want to share Steven Chan's good news : Database 11gR1 11.1.0.7 Certified With EBS 12.1.1 on Windows Server 2003 (x64) for details please visit : http://blogs.oracle.com/stevenChan/2009/10/database_11107_ebs1211_winx64.html R

  • Editing metadata in a TIFF image

    Hi everyone, I'm trying to edit TIFF image metadata using ImageIO v1.1 APIs, but something goes wrong... For a TIFFImageWriter I get the following results: writer.canInsertEmpty = true writer.canInsertImage = true writer.canRemoveImage = false writer

  • Help! PL/SQL Programming standards

    Hello, I need help from experienced developers urgently. I am in process of applying for new job and I have received two documents from my potential employer (software company). One document represents design and programming standards and other docum