Passing varrays as parameters to a PLSQL procedure .

Hi all,
I have defined the following procedure :
TYPE t_pc_list IS VARRAY(10) OF VARCHAR2(20);
PROCEDURE get_pc_list (address IN VARCHAR2, code IN VARCHAR2,pc_list IN t_pc_list ) AS
BEGIN
NULL;
END get_pc_list;
But when calling it is allways saying : Error: PLS-00306: wrong number or types of arguments in call to 'GET_PC_LIST' .
Best Regards.

Use the same type. Try this code
create or replace package imp_pack
as
  TYPE t_pc_list IS VARRAY(10) OF VARCHAR2(20);
  procedure get_pc_list(addressId IN VARCHAR2, areaCode IN VARCHAR2,pc_list OUT t_pc_list );
end imp_pack;
create or replace package body imp_pack
is
  PROCEDURE get_pc_list(addressId IN VARCHAR2, areaCode IN VARCHAR2,pc_list OUT t_pc_list )
  AS
  BEGIN
    NULL;
  END get_pc_list;
end imp_pack;
create or replace package control_pack
as
  procedure get_pc_list;
end;
create or replace package body control_pack
as
  PROCEDURE get_pc_list
  IS
    pc_list_a imp_pack.t_pc_list;
    pc_list_b imp_pack.t_pc_list;
    ls_address_id_a VARCHAR2(30);
    ls_area_code_a VARCHAR2(30);
    ls_address_id_b VARCHAR2(30);
    ls_area_code_b VARCHAR2(30);
  BEGIN
    imp_pack.get_pc_list(ls_address_id_a,ls_area_code_a,pc_list_a);
    null;
  END get_pc_list;
end control_pack;
/

Similar Messages

  • Using VARRAYs as parameters to a Stored Procedure

    I'm trying to pass a VARRAY as an IN/OUT parameter into a simple stored procedure by doing the following ..
    call.addNamedInOutputArgument(.., .., .., oracle.sql.ARRAY.class);
    I'm using a DataReadQuery. I set the call in the query, bind all parameters and add the IN/OUT argument to the query (i.e. query.addArgument(<name>)). Then I create an oracle.sql.ArrayDescriptor to describe the ARRAY.
    ArrayDescriptor ad = ArrayDescriptor.createDescriptor(<name of VARRAY>, <connection>);
    The VARRAY is of size 1 whose type is INTEGER. I create an ARRAY of Integer objects.
    Integer fields[1] = new Integer[1];
    fields[0] = new Integer(2);
    ARRAY a = new ARRAY(ad, <connection>, fields);
    I create a Vector of parameters and add the ARRAY to it. Then I execute the query ..
    Object result = session.executeQuery(<query>, <Vector>);
    When I execute the query I keep getting an ORA-06550: wrong number or types of arguments in call to <stored procedure>. Any help would be appreciated. Thanks. -Michael-

    The workaround above using JDBC directly to call store procedures using VARRAY types is still probably your best solution.
    In TopLink 10.1.3 there is a new API on StoredProcedureCall that allows passing the JDBC type code which should allow binding of VARRAY output parameters.
    addNamedInOutputArgument(String procedureParameterName, String inArgumentFieldName, String outArgumentFieldName, int type, String typeName) {                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Remote debugging plsql procedures in jdeveloper using J2EE container

    I have a J2EE application which is connected to an oracle database .For debugging purposes ,can i remotely debug my plsql stored procedures when an action comes from the J2EE server . That is, can i control a call from the server by using breakpoints in my plsql stored procedures so that i can see the run time parameters to the plsql procedures and so

    Yes you can. See : http://blogs.oracle.com/shay/2005/12/20#a58

  • Calling procedures multiple times passing rum time parameters

    hii,
    i ve this small prob with my procedure..my proc is
    CREATE or replace PROCEDURE sad(star_val number,dept_id number) IS
    BEGIN
    update dept set star=star_val where department_id=dept_id;
    END;
    and i call this proc using a loop and give the values at runtime..
    declare
    v_count number(3);
    begin
    v_count := 4;
    loop
    sad(&value,&dept);
    v_count := v_count-1;
    exit when v_count=0;
    end loop;
    end;
    this procedure runs only once with out looping 3 times..can anybody help me out..

    .... passing rum time parameters ......
    programming in the caribbeans must be wonderful
    anyway : how do you know it ran only once ?
    most probably it ran 5 times doing the same update defined by &value,&dept
    ahh, now I get it, you believe you'll be asked again and again to enter values for &value,&dept .
    Sorry, no can do, PLSQL is not interactive
    further reading at http://tahiti.oracle.com

  • Datatype of parameters defined in PLSQL function and procedures (packages)

    Hi,
    Require help with this one.
    We have written a unit test generator given a PLSQL package name (and several other unit test attributes). This it does by looking at metadata from user_arguments.
    We have hit upon a issue with %ROWTYPE parameters.
    It apparently splits such arguments into data_level = 0 (the actual ROWTYPE parameter) and data_level = 1 (the individual components of the ROWTYPE) in user_arguments table.
    From the data_level = 0 row, i am unable to retrieve the name of the table of which the ROWTYPE is hinged to.
    I am looking for this information to be able to declare a variable, initialize it and pass it over to the package.function / procedure being tested.
    Is there a way i can retrieve this information (what's the table name its %ROWTYPE of) ?
    Thanks,
    Krishnan

    We have written a unit test generator given a PLSQL package name (and several other unit test attributes)Nice.
    Is there a way i can retrieve this information (what's the table name its %ROWTYPE of) ?Unfortunately not that I know of, the underlying anchored datatype is not recorded in USER_ARGUMENTS or the underlying SYS.ARGUMENT$.
    Assuming such types were declared at package specification it would be theoretically possible to do this lookup by exploiting the DIANA interface (DIUTIL, DIANA and PIDL packages) but that would be a significant undertaking. Alternatively I suppose you could consider parsing the source code but this again would be a significant undertaking and would not support wrapped code.
    The good news is that the compiler does not require that an identically anchored record is passed to the function/procedure, rather the declaration of the attributes of the record must match. In which case you can (simplistically) just declare a local record type with the argument_name, data_type, data_precision, data_scale and/or data_length from USER_ARGUMENTS level 1 then declare a variable of that type and pass it to the function/procedure under test. I say simplistically because there is (albeit rather rarely used) support for nested record types in PL/SQL, hence levels > 1 may exist in USER_ARGUMENTS.
    Edited by: padderz on 30-Mar-2011 02:27

  • Passing Variable Number of Parameters to Cobol Stored Procedure

    Hi. I have a web front end that needs to access several different tables via Cobol stored procedures. It seems simple enough to call the stored procedures straight away (DAO Pattern perhaps?) but my boss is insistent on having an intermediate Cobol program that decides which table to access. I think he at a bigger picture than I can see.
    The problem lies in the number of parameters that need to be passed to the stored procedures; some need 3, others needs 5, a few need 4. The only two solutions that I can think of are to pass EVERYTHING (we're talking 50 parameters or so) to the intermediate stored procedure and then pulling only what is needed from that data set to access the desired table. Solution number two involves passing everything to a temp table and then pulling what is needed from it. The former solution seems a little cleaner but still involves passing a lot of parameters. If Cobol could handle some sort of dynamic memory allocation (Vector) there seems to be a possible solution there. Though, as far as I know, that isn't possible.
    Any ideas are much appreciated.
    Thanks in advance,
    Chris

    Hi Saurabh,
    The method in which stored procedures are called on form submit is something as follows.
    Let us take your scenario of a form which has multiple checkboxes and a submit button. On clicking the submit button, this form data is submitted using either get or post. The form's submit action invokes a procedure.
    The HTML form code will look something like this..
    htp.formOpen( curl => 'URL /myProcedure',
    cmethod => 'post' );
    htp.formCheckbox( cname => 'myCheckbox'
    cvalue => 'A');
    htp.formCheckbox( cname => 'myCheckbox'
    cvalue => 'B');
    htp.formCheckbox( cname => 'myCheckbox'
    cvalue => 'C');
    htp.formSubmit( cname => 'myButton',
    cvalue => 'OK');
    Now, whenever the submit button is clicked, all these form values are passed to our stored procedure 'myProcedure'.
    "myProcedure" looks something like this.
    procedure myProcedure
    myCheckbox IN sys.owa_util.vc_arr,
    myButton IN VARCHAR2
    is
    begin
    end myProcedure;
    The point to be noted here is that the name of the variable being passed in the procedure is the same as the name of the HTML element being created in the HTML form. So, there is a direct mapping between the elements in the HTML form and the procedure parameters.
    Another noteworthy point is that since you have multiple checkboxes in your HTML form, it is impractical to name all the checkboxes differently and then pass those many parameters to your procedure (Imagine a scenario where there are a hundred check-boxes in an HTML form!). So portal allows you to give the same name (cname) to all the checkboxes in your HTML form, and if multiple checkboxes are checked, it will return all the checkbox values in an array (Note the usage of "myCheckbox IN sys.owa_util.vc_arr" in myProcedure).
    You can check out this link for more information.
    Re: retrieving data from fields
    Thanks,
    Ashish.

  • Problem with database adapter on plsql procedure with in/out parameters

    running BPEL 10.1.3.1 and using the database adapter on a plsql procedure with in/out parameters I get errors
    the plsql procedure:
    create or replace procedure proc_with_clob_inout_parameter(
    p_string in varchar2,
    p_clob in out clob)
    is
    begin
    p_clob := p_string;
    end proc_with_clob_inout_parameter;
    In BPEL I call this procedure. When I only assign a value to the p_string parameters (in a BPEL assign) all is well. When I also assign a value to the p_clob parameter the error occurs:
    <part name="summary">
    <summary>
    file:/ora1/app/oracle/as101.3/bpel/domains/digitaaldossier/tmp/.bpel_janb_inout_1.0_f6908ccf864581b7265c362444e88075.tmp/twee.wsdl
    [ twee_ptt::twee(InputParameters,OutputParameters) ] - WSIF JCA Execute of
    operation 'twee' failed due to: Error while trying to prepare and execute
    an API.
    An error occurred while preparing and executing the
    JANB.PROC_WITH_CLOB_PARAMETER2 API. Cause: java.sql.SQLException: Parameter
    Type Conflict [Caused by: Parameter Type Conflict]
    ; nested exception is:
    ORABPEL-11811
    Error while trying to prepare and execute an API.
    An error occurred while preparing and executing the
    JANB.PROC_WITH_CLOB_INOUT_PARAMETER API. Cause: java.sql.SQLException: Parameter
    Type Conflict [Caused by: Parameter Type Conflict]
    Check to ensure that the API is defined in the database and that the
    parameters match the signature of the API. Contact oracle support if error
    is not fixable.
    </summary>
    </part>
    In BPEL 10.1.2.0 this isn't a problem. I tested it against a 10.2.0.1 and a 10.2.0.2 database and in both situations I get the error with BPEL 10.1.3.1 and no error with BPEL 10.1.2.0
    it appears to be a problem in the database adapter...
    anyone with the same problems and/or a solution?

    Not of any use to you, but we had exactly the same problem on Friday when we applied AS 10.1.2.2 Patchset on top of BPEL 10.1.2.0.2.
    The clob in our pl/sql proc wan't declared as in/out but for some reasons JDeveloper had created a clob on the Output Parameter type in the db partner link xsd. I removed this and it worked. This code had been untouched , and working fine, for months.
    I'll be raising an SR today.
    Rob J

  • Passing multiple parameters to an Oracle procedure

    I'm having trouble passing multiple parameters to a stored procedure in Crystal Reports 2008 (12.2.0.290).
    I'm using an OLE DB (ADO) connection to an Oracle 10g database.
    I have created a stored procedure that has 3 parameters (in out sys_refcursor, in varchar2, in varchar2) and conforms to all of Crystal Reports' requirements for stored procedures.
    When I select my stored procedure in the Database Expert, it prompts me to enter values for both varchar2 parameters. I enter values and everything seems fine. I close the Database Expert.
    Now the stored procedure is listed in the Field Explorer, but I cannot expand the list of fields. There is a plus sign next to the stored procedure, but clicking on it does nothing. I do not get any error messages.
    If I remove one of the parameters from the stored procedure and try again, everything works fine. I've also tried using a variety of parameter types, but this problem occurs every time there are 2 or more parameters (3 including the ref cursor).
    Please help.

    Try a different Database driver...

  • How to pass int array as an IN parameter to PLSQL Procedure

    Hi,
    How to pass int array in java to a stored procedure througn jdbc
    and what type of data type I should declare to this IN parameter
    in PLSQL Procedure.
    Thanks,
    Simi

    Hi,
    The best way to do what you want depends on what you want.  Start by describing what you need to do.  It's best to post some sample data (CREATE TABLE and INSERT statments) and what results you want from that sample data.  (See the forum FAQ: https://forums.oracle.com/message/9362002)
    If you have ideas about how to do the job (e.g., populating a temporary table) it can be helpful to include those, too, but distinguish clearly between WHAT you need to do and HOW you might do it.
    As Bencol suggested, a SYS_REFCURSOR might be the best way to pass back the results.
    Since you didn't post your table, or even describe what you wanted to do with it, I'll illustrate using scott.emp, which is probably on your system.
    Say you wanted a procedure that took a DATE as an argument, and returned a some designated columns (empno, ename and hiredate in the example below) for all employees hired on or after the given DATE.  You might write a procedure like this:
    CREATE OR REPLACE PROCEDURE  hired_since
    (   start_date  IN   DATE
    ,   out_data    OUT  SYS_REFCURSOR
    AS
    BEGIN
        OPEN out_data FOR
            SELECT  empno, ename, hiredate
            FROM    scott.emp
            WHERE   hiredate  >= start_date;
    END  hired_since;
    SHOW ERRORS
    You can test it in SQL*Plus like this:
    VARIABLE   c REFCURSOR
    EXEC  hired_since (DATE '1982-01-01', :c);
    PRINT :c
    The output I got from this test was:
         EMPNO ENAME      HIREDATE
          7788 SCOTT      19-APR-87
          7876 ADAMS      23-MAY-87
          7934 MILLER     23-JAN-82

  • Call from Java Plsql Procedure with VArray as Out Parameter

    Hi,
    I have a Java web application(Tomcat server) that call a plsql procedure with Varray as OUT parameter.
    The Plsql code is perfectly compiled.
    When i run the application, I get the following error msg in my Tomcat window:
    java.sql.SQLException: ORA-06530: Reference to uninitialized composite
    ORA-06512: at "SEMS1.PACK_SEMSADMIN_OFFEREDJOBS", line 102
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
    at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
    at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573)
    at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891)
    at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:109
    3)
    at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2047)
    at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1940)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2709)
    at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:589)
    at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStat
    {color:#0000ff}
    Doubt: Do I need to declare ArrayDescriptors to retrieve the VArray from the Plsql procedure.
    I think the below statement is enough; we need ArrayDescriptors only when we we wish to send a Plsql Object or Varray from Java code to the procedure. Plz correct me if not so.
    dbCallableStatement.execute();
    ARRAY SimpleOUTArray = (ARRAY) ((OracleCallableStatement) dbCallableStatement).
    getObject(Integer.parseInt(arlParameterOutIndex.get(i).toString()));{color}
    I am unable to realize where the mistake is?
    {color:#800000}
    {color}{color:#800000}
    VARRAY AND PROC DETAILS:
    TYPE STRUCT_JOB_DETAILS AS OBJECT
    APPL_NO NUMBER (10),
    S_FNAME VARCHAR2 (32 Byte),
    S_MI VARCHAR2 (32 Byte),
    S_LNAME VARCHAR2 (32 Byte),
    APPL_DATE DATE,
    DESCRIPTION VARCHAR2 (100 Byte),
    S_UCID VARCHAR2 (8 Byte)
    TYPE VARRAY_JOB_DETAILS IS VARRAY(100) OF STRUCT_JOB_DETAILS;{color}
    {color:#800000}PROCEDURE:{color}
    {color:#800000}CREATE OR REPLACE PACKAGE PACK_SEMSADMIN_OFFEREDJOBS
    AS
    TYPE Generic_Cursor_Type IS REF CURSOR;
    --TYPE varray_job_detail is VARRAY(100) OF STRUCT_JOB_DETAILS;
    --va_varray_job_detail varray_job_detail := varray_job_detail();
    va_varray_job_detail VARRAY_JOB_DETAILS := VARRAY_JOB_DETAILS();
    PROCEDURE Admin_Jobs_Offered_Rtr
    ic_status IN VARCHAR2,
    or_offered_jobs OUT Generic_Cursor_Type,
    va_varray_job_detail OUT VARRAY_JOB_DETAILS
    CREATE OR REPLACE PACKAGE BODY PACK_SEMSADMIN_OFFEREDJOBS
    AS
    PROCEDURE Admin_Jobs_Offered_Rtr
    ic_status IN VARCHAR2,
    or_offered_jobs OUT Generic_Cursor_Type,
    va_varray_job_detail OUT VARRAY_JOB_DETAILS
    AS
    vc_query VARCHAR2(15000) := '';
    vc_query_1 VARCHAR2(15000) := '';
    counter NUMBER := 1;
    vc_no NUMBER := 0;
    or_applicants_list Generic_Cursor_Type;
    TYPE type_appln_list IS RECORD
    job_no NUMBER(10),
    job_title VARCHAR2(50 BYTE),
    account_no VARCHAR2(10 BYTE),
    head_fname VARCHAR2(32 BYTE),
    head_minitial VARCHAR2(10 BYTE),
    head_lname VARCHAR2(32 BYTE),
    num NUMBER
    vn_appln_list type_appln_list;
    TYPE type_job_offered IS RECORD
    APPL_NO NUMBER (10),
    S_FNAME VARCHAR2 (32),
    S_MI VARCHAR2 (32),
    S_LNAME VARCHAR2 (32),
    APPL_DATE DATE,
    DESCRIPTION VARCHAR2 (100),
    S_UCID VARCHAR2 (8)
    vn_job_offered type_job_offered;
    BEGIN
    vc_query := vc_query || ' SELECT jobs.job_no,job_title, account_no, head_fname, head_minitial, head_lname, num';
    vc_query := vc_query || ' FROM jobs, ( ' ;
    vc_query := vc_query || ' SELECT jobs.job_no,count(*) as num' ;
    vc_query := vc_query || ' FROM student_apps ,jobs ' ;
    vc_query := vc_query || ' WHERE jobs.job_no = student_apps.job_no' ;
    vc_query := vc_query || ' AND (student_apps.status in (''o'',''t'')) '; --|| ic_status || ')' ;
    vc_query := vc_query || ' AND jobs.status not in (''z'', ''Z'')' ;
    vc_query := vc_query || ' GROUP BY jobs.job_no' ;
    vc_query := vc_query || ' ) no_apps_off' ;
    vc_query := vc_query || ' WHERE jobs.job_no = no_apps_off.job_no' ;
    dbms_output.put_line('Executed Query_1');
    va_varray_job_detail := VARRAY_JOB_DETAILS();
    va_varray_job_detail.extend(100);
    OPEN or_offered_jobs FOR vc_query;
    LOOP
    FETCH or_offered_jobs INTO vn_appln_list;
    EXIT WHEN or_offered_jobs%NOTFOUND;
    vc_query_1 := '';
    vc_query_1 := vc_query_1 || ' SELECT stud_apps.appl_no APPL_NO, stud_apps.s_fname S_FNAME, ';
    vc_query_1 := vc_query_1 || ' stud_apps.s_mi S_MI, stud_apps.s_lname S_LNAME, ';
    vc_query_1 := vc_query_1 || ' stud_apps.appl_date APPL_DATE, look_up.description DESCRIPTION, ' ;
    vc_query_1 := vc_query_1 || ' stud_apps.s_ucid S_UCID ' ;
    vc_query_1 := vc_query_1 || ' FROM student_apps stud_apps,jobs jbs,lookup look_up' ;
    vc_query_1 := vc_query_1 || ' WHERE stud_apps.status in (''o'',''t'') '; --(' || ic_status || ') ' ;
    vc_query_1 := vc_query_1 || ' AND jbs.job_no = stud_apps.job_no' ;
    vc_query_1 := vc_query_1 || ' AND jbs.status not in (''z '', ''Z'')' ;
    vc_query_1 := vc_query_1 || ' AND stud_apps.status = look_up.code ' ;
    vc_query_1 := vc_query_1 || ' AND look_up.type = ''st''' ;
    vc_query_1 := vc_query_1 || ' AND stud_apps.job_no = ''' || vn_appln_list.job_no || ''' ' ;
    vc_query_1 := vc_query_1 || ' ORDER BY appl_date' ;
    dbms_output.put_line('Executed Query_2');
    OPEN or_applicants_list FOR vc_query_1;
    LOOP
    FETCH or_applicants_list INTO vn_job_offered;
    EXIT WHEN or_applicants_list%NOTFOUND;
    va_varray_job_detail(counter).APPL_NO := vn_job_offered.APPL_NO;
    va_varray_job_detail(counter).S_FNAME := vn_job_offered.S_FNAME;
    va_varray_job_detail(counter).S_MI := vn_job_offered.S_MI;
    va_varray_job_detail(counter).S_LNAME := vn_job_offered.S_LNAME;
    va_varray_job_detail(counter).APPL_DATE := vn_job_offered.APPL_DATE;
    va_varray_job_detail(counter).DESCRIPTION := vn_job_offered.DESCRIPTION;
    va_varray_job_detail(counter).S_UCID := vn_job_offered.S_UCID;
    counter := counter + 1;
    END LOOP; --end of FOR
    CLOSE or_applicants_list;
    END LOOP; -- end of FETCH
    END Admin_Jobs_Offered_Rtr;
    END PACK_SEMSADMIN_OFFEREDJOBS;
    /{color}
    Reqire help plzzzz !!!
    Thanks.

    Originally posted by JDBC Development Team:
    It's very similar to other datatype except that it uses OracleTypes.ARRAY typecode and the value is mapped to a oracle.sql.ARRAY instance. The code looks as follows --
    cstmt.registerOutParameter (idx, OracleTypes.ARRAY, "VARRAY_TYPE_NAME_HERE");
    cstmt.execute ();
    ARRAY array = (ARRAY) cstmt.getObject (idx);
    Thanks for your reply.
    I have to use:-
    OracleCallableStatement cs1 = (OracleCallableStatement )conn.prepareCall
    ( "{call proj_array(?)}" ) ;
    for retrieving a collection as an OUT parameter.
    This gives me the errors:-
    C:\jdbc\VarraySQL.java:0: The method oracle.jdbc2.Blob getBlob(int) declared in class oracle.jdbc.driver.OracleCallableStatement cannot override the method of the same signature declared in interface java.sql.CallableStatement. They must have the same return type.
    import java.sql.*;
    ^
    C:\jdbc\VarraySQL.java:0: The method oracle.jdbc2.Array getArray(int) declared in class oracle.jdbc.driver.OracleCallableStatement cannot override the method of the same signature declared in interface java.sql.CallableStatement. They must have the same return type.
    import java.sql.*;
    ^
    C:\jdbc\VarraySQL.java:0: The method oracle.jdbc2.Clob getClob(int) declared in class oracle.jdbc.driver.OracleCallableStatement cannot override the method of the same signature declared in interface java.sql.CallableStatement. They must have the same return type.
    import java.sql.*;
    ^
    C:\jdbc\VarraySQL.java:0: The method oracle.jdbc2.Ref getRef(int) declared in class oracle.jdbc.driver.OracleCallableStatement cannot override the method of the same signature declared in interface java.sql.CallableStatement. They must have the same return type.
    import java.sql.*;
    ^
    How do I get rid of these errors?
    null

  • Passing multidimensional array to plsql procedure

    hi ,
    is there any way to pass a two dimensional array of different data types to plsql procedure as a parameter?
    In other words, is it possible to pass a set or records or a datatable as a single parameter to plsql procedure?
    Because I am using a dataset selected with odp.net in my client and I am modifying the data in different datatables contained in the dataset.At the moment, the modified datatables are saved by seperating each column as a sepearate array and passing each column array as a seperate parameter to a stored procedure. But, I would like to change it in a way to pass each datatable as a single parameter to the stored procedure.
    I would appreciate any solution/suggestion/hint in regard to this problem
    thanks in advance,
    Prabhakar.

    If your Java array is of a base type (String, int, etc.) and you are using the OCI driver, you can use OracleCallableStatement.setPlSqlTable(). (I'm doing this from memory so the method name may be slightly different.)
    The method takes a Java array and converts it to a PL/SQL table before passing it to the stored procedure.

  • Passing values to between Pages from a PLSQL Procedure in third Page

    Hello,
    I have a form divided into 3 pages. The first Page is used to select Template which is used to call a screen Page 54 and Page 55 (Wizard Based screen).
    From Page 55 (third page) of my application, When I click on Finish Button (Submit Button), a PLSQL Procedure is called which inserts values in 5 to 6 tables on a schema. The Success message include Article &DOCID. successfully Added.
    When I return to the first Page which is Page 24, it displays no value for DOCID.
    Sample Example =
    DECLARE
    DOCID VARCHAR2(30);
    BEGIN
    INSERT INTO SURE_DOCUMENT
    DOCUMENT_ID
    , DOCUMENT_TYPE
    , TITLE
    , STATUS
    , DISTRIBUTION
    , ARCHIVE_REVIEW_DATE
    , CONTENT_TYPE
    , IMPACT
    , SKILL_LEVEL
    , SOURCE
    , SERVER_MIN_VERSION
    , SERVER_MAX_VERSION
    , REFRESH_INTERVAL
    , LAST_REFRESH
    , FOLDER_ID
    , TOPIC_ID
    , NOTE_POSITION
    , OWNING_SITE
    , MODIFY_NUMBER
    , VERSION_STRING
    , ALIAS
    , EXTKEY
    , FORMAT_MODIFIER
    , DELETED
    , CREATED_BY
    , CREATED_DATE
    , CREATED_SITE
    , UPDATED_BY
    , UPDATED_DATE
    , UPDATED_SITE
    VALUES
    ( SURE_DOCUMENT_SEQ.NEXTVAL || '.1'
    , :ARTICLE_TYPE
    , :TITLE
    , :STATUS
    , :DISTRIBUTION
    , SYSDATE
    , 'TEXT/PLAIN'
    , 'LOW'
    , 'NOVICE'
    , 'ADHOC'
    , :RDBMS_MIN_VERSION
    , :RDBMS_MAX_VERSION
    , NULL
    , NULL
    , :FOLDER
    , :TOPIC
    , NULL
    , 1
    , 1
    , NULL
    , NULL
    , NULL
    , NULL
    , 'N'
    , HTMLDB_CUSTOM_AUTH.GET_USER
    , SYSDATE
    , 1
    , HTMLDB_CUSTOM_AUTH.GET_USER
    , SYSDATE
    , 1
    COMMIT;
    SELECT SURE_DOCUMENT_SEQ.CURRVAL INTO DOCID FROM DUAL;
    INSERT INTO SURE_DOCUMENT_CONTRIBUTORS
    DOCUMENT_ID
    , SURE_SEQUENCE
    , USER_ID
    , CONTRIBUTION_DATE
    , CONTRIBUTION_ROLE
    , MODIFY_NUMBER
    , REASON
    , DELETED
    , CREATED_BY
    , CREATED_DATE
    , CREATED_SITE
    , UPDATED_BY
    , UPDATED_DATE
    , UPDATED_SITE
    VALUES
    ( DOCID
    , 1
    , 'SKOPPALK.UK'
    , SYSDATE
    , 'Contributing Author'
    , 1
    , 'Contributing Author'
    , 'N'
    , HTMLDB_CUSTOM_AUTH.GET_USER
    , SYSDATE
    , 1
    , HTMLDB_CUSTOM_AUTH.GET_USER
    , SYSDATE
    , 1
    INSERT INTO SURE_DOCUMENT_LANGUAGES
    DOCUMENT_ID
    , SURE_SEQUENCE
    , LANGUAGE
    , DELETED
    , CREATED_BY
    , CREATED_DATE
    , CREATED_SITE
    , UPDATED_BY
    , UPDATED_DATE
    , UPDATED_SITE
    VALUES
    ( DOCID
    , 1
    , 'USAENG'
    , 'N'
    , HTMLDB_CUSTOM_AUTH.GET_USER
    , SYSDATE
    , 1
    , HTMLDB_CUSTOM_AUTH.GET_USER
    , SYSDATE
    , 1
    INSERT INTO KREW_WORKFLOW
    DOCUMENT_ID
    , PRIORITY
    , OWNER
    , REVIEWER
    , MODERATOR
    , ASSIGNED_DATE
    , DUE_DATE
    , CHECKED_OUT_BY
    , CHECKED_OUT_DATE
    , VERSION_STRING
    , DESCRIPTION
    , AUTHORS
    , COMMENTS
    , UPD_DATE
    , COPYSTATUS
    , COPYDISTRIBUTION
    , COPYFOLDERID
    VALUES
    DOCID
    , 3
    , DECODE(:OWNERS, NULL, 'UNASSIGNED',:OWNERS)
    , DECODE(:REVIEWER, NULL, 'UNASSIGNED',:REVIEWER)
    , DECODE(:MODERATOR, NULL, 'UNASSIGNED',:MODERATOR)
    , SYSDATE
    , SYSDATE + 7
    , NULL
    , NULL
    , 'SKOPPALK.UK'
    , :TITLE
    , :AUTHORS
    , :COMMENTS
    , SYSDATE
    , :STATUS
    , :DISTRIBUTION
    , :FOLDER
    INSERT INTO SURE_DOCUMENT_KEYWORDS
    DOCUMENT_ID
    , SURE_SEQUENCE
    , KEYWORD_TYPE
    , KEYWORD
    , DELETED
    , CREATED_BY
    , CREATED_DATE
    , CREATED_SITE
    , UPDATED_BY
    , UPDATED_DATE
    , UPDATED_SITE
    VALUES
    ( DOCID
    , 1
    , 'NOTE'
    , :KEYWORDS
    , 'N'
    , HTMLDB_CUSTOM_AUTH.GET_USER
    , SYSDATE
    , 1
    , HTMLDB_CUSTOM_AUTH.GET_USER
    , SYSDATE
    , 1
    INSERT INTO SURE_DOCUMENT_REFERENCES
    DOCUMENT_ID
    , SURE_SEQUENCE
    , REFERENCE_SOURCE
    , REFERENCE_DOCUMENT_ID
    , REFERENCE_TYPE
    , REFERENCE_DESCRIPTION
    , DELETED
    , CREATED_BY
    , CREATED_DATE
    , CREATED_SITE
    , UPDATED_BY
    , UPDATED_DATE
    , UPDATED_SITE
    VALUES
    ( DOCID
    , 1
    , 'NOTE'
    , DOCID || '.1'
    , 'NOTE'
    , :REFERENCES
    , 'N'
    , HTMLDB_CUSTOM_AUTH.GET_USER
    , SYSDATE
    , 1
    , HTMLDB_CUSTOM_AUTH.GET_USER
    , SYSDATE
    , 1
    INSERT INTO SURE_DOCUMENT_PLATFORMS
    DOCUMENT_ID
    , SURE_SEQUENCE
    , PLATFORM_ID
    , MIN_VERSION
    , MAX_VERSION
    , DELETED
    , CREATED_BY
    , CREATED_DATE
    , CREATED_SITE
    , UPDATED_BY
    , UPDATED_DATE
    , UPDATED_SITE
    VALUES
    ( DOCID
    , 1
    , :PLATFORMS
    , NULL
    , NULL
    , 'N'
    , HTMLDB_CUSTOM_AUTH.GET_USER
    , SYSDATE
    , 1
    , HTMLDB_CUSTOM_AUTH.GET_USER
    , SYSDATE
    , 1
    INSERT INTO SURE_DOCUMENT_PRODUCTS
    DOCUMENT_ID
    , SURE_SEQUENCE
    , PRODUCT_ID
    , COMPONENT_ID
    , MIN_VERSION
    , MAX_VERSION
    , DELETED
    , CREATED_BY
    , CREATED_DATE
    , CREATED_SITE
    , UPDATED_BY
    , UPDATED_DATE
    , UPDATED_SITE
    VALUES
    ( DOCID
    , 1
    , :PRODUCTS
    , NULL
    , NULL
    , NULL
    , 'N'
    , HTMLDB_CUSTOM_AUTH.GET_USER
    , SYSDATE
    , 1
    , HTMLDB_CUSTOM_AUTH.GET_USER
    , SYSDATE
    , 1
    COMMIT;
    END;
    The Success message is as follows:
    Article &DOCID. Created/Updated Successfully

    Shivanand,
    There's no need to post that much code when you could create a very short test case that demonstrates only the problem you are having.
    You're using &NAME. notation on something that isn't a page or application item. You can't reference PL/SQL variables that way (or any other way) outside the PL/SQL scope. For your situation, you could create a page item named P55_DOCID and assign it a value in the PL/SQL process (:P55_DOCID := DOCID;), then reference &P55_DOCID. in HTML areas like the success message.
    Scott

  • Using PLSQL procedure with parameter in AQ

    hi,
    we need to run a PLSQL procedure(asynchronously) with in parameters using oracle AQ.
    can someone give me simple example/hint?
    Many thanks

    Since you mention dbms_job, can you use dbms_scheduler since you can pass in parms? You can schedule the job to run "now" and while it may have a slight delay starting up due to available processes for the scheduler and system load, it will run as soon as it can.
    What are you trying to accomplish in your environment? I'm not following why you want to allow a user to schedule any DB procedure. A certain set yes, all, no.
    You could create a generic AQ structure where it is passed some information regarding what procedure needs to run and what/where the parms are. This driver procedure would then be responsible for calling a random procedure via dynamic SQL. I've never tried passing parms to a procedure via dynamic SQL but recall reading you could do it. I wouldn't recommend this approach unless you have no better options though.

  • Input Parameters to call PLSQL

    Hello all.
    I need to call a PLSQL procedure, using ADF BC. No problem to create the AppModule and call the procedure using a button and a text box in my page (the text box is for a String input parameter). What I need is to use the value from an input text box from a VO as my input parameter. What is the best way to accomplish this?
    What I have done so far:
    1) Created a managed bean, copying the value from text_a (from the VO) to text_b. Text_b is the input text field. But I need to render both text_a and text_b to accomplish this. What is the best practice in this case?
    I am using JDeveloper 11.1.2.1
    Thanks in advance

    I assume, you have created a method in AMImpl that takes the input parameters & that are passed to store procedure.
    1) Create a binding for the inputText component in the managed bean.
    2) Have an actionlistener method for the button in the managed bean. In that method, get handle to the methodAction as operationBinding & set the required parameters and call execute method on the operation binding.
    Thanks,
    Navaneeth

  • PLSQL WANTS TO RUN  WINDOWS PROGRAM FROM PLSQL PROCEDURE

    WANTS TO RUN WINDOWS PROGRAM FROM PLSQL PROCEDURE.
    I want to run EXE file from pl/sql program , i have tried host it does
    work in pl/sql .
    Is there any Solution to this problem
    Thank you

    Hi,
    It sounds like what you are trying to do, is run one mapping in a pre-mapping process of another mapping. You use a wrapper that implements sqlplus_exec_template.sql in PL/SQL. Is that correct?
    I don't think that by the way you execute this mapping, it ends up in the context of the process flow. The reason is because according to Warehouse Builder the mapping is being invoked standalone (through the wrapper that implements the template). As a result, the context in which Warehouse Builder would log the messages is lost.
    What I suggest you do (assuming I understand the problem correctly), is run the mapping as a separate mapping in the process flow. Because in the current release we do not support passing output parameters in the process flow, you will have to (temporarily) store the results of the first mapping in a table and pick it up from there in the other mapping. In the next major release (autumn 2004) we will support passing parameters between activities.
    Thanks,
    Mark.

Maybe you are looking for

  • Remove orhpaned master references?

    Hello all, A while back i deleted a folder from Finder containing multiple images and the referenced masters in Aperture became orphaned. I then opened aperture and deleted the orphaned masters (i deleted the folder after importing the images into th

  • How to Create an XML using Abap Objects

    Hi there, who has an example how to create an XML Document from an internal table using abap objects e.g. Class CL_XML_DOCUMENT_BASE ? any feedback is welcome. thanks Johann

  • Select with too many where conditions not working fine....equal to and not

    Hi Everyone,   I am getting rows into internal table lt_mseg even if this where condition like this werks NE gs_t001w-werks in below code is true. It looks like it's not excluding if not equal to gs_t001w-werks. Is anything wrong in below code? pleas

  • How to edit big amount of files correctly?

    Hi. During summer I've captured 120 GB of video material on my GoPro camera. I started to add files I want to take clips from as sequences and marked parts which I would like cut later - took me awhile but this way I could know where are the best par

  • Zoom shortcuts on Reader 10.1.1 and Mac OS 10.6

    Hello, I'm using Mac OS 10.6.8 and Reader 10.1.1. Ever since I upgraded to Adobe Reader 10 I have had problems with the zoom shortcuts (i.e. command +  , command -). Instead of zooming, command+ rotates the document, and command- simply does nothing.