PLS-00306 Reconciling Pl/Sql Package

Reconciling a package is always very painful and time-consuming.
I always get PLS-00306: wrong number or types of arguments in call to 'XYZ'.
Is this a normal behavior from OWB?
My workaround for this problem: Drop Package and Import the package.
Regards Franz

Yes, it is painful. When you deal with Package into OWB.
But, do you have any types of global definition with int your package which has been implemented in the form of transformations. It takes time other than that no problem even changing the parameters with out global definitions.

Similar Messages

  • Unable to generate the XML file through SQL script. getting error PLS-00306

    I am fetching the data from cursor and generating the xml output I am getting the below error.
    When I have checked the cursor query it is fetching the data in to single column.
    Input truncated to 1 characters
    Enter value for 7: EXEC FND_CONC_STAT.COLLECT;
    DBMS_LOB.append (tmp_file, r.core_xml);
    ERROR at line 95:
    ORA-06550: line 95, column 7:
    PLS-00306: wrong number or types of arguments in call to 'APPEND'
    ORA-06550: line 95, column 7:
    PL/SQL: Statement ignored

    Hi Alex,
    thanks for the responce..
    i have fixed the issue
    i have used XMLAttributes to get the value
    SELECT XMLELEMENT (
    NAME "TranACK",
    XMLAttributes ('1' as "TranNum",
    (select distinct to_char(SYSDATE,'yyyy-mm-dd')
    from DUAL) as "PrcDate"),
    XMLFOREST (
    a.PAYMENT_ID AS "PmtID"),
    XMLFOREST (
    a.ACK_TRANSACTION_RECEIVER AS "Name1"),
    XMLFOREST (
    to_char(a.VALUE_DATE,'yyyy-mm-dd') as "ValueDate" ),
    XMLFOREST (
    a.PAYMENT_AMOUNT AS "CurAmt"),
    XMLFOREST (
    a.CURRENCY_CODE AS "CurCode")
    ).getclobval ()
    AS line_xml
    FROM XXWAP_PAYMENT_LINE_TBL a
    where a.PAYMENT_BATCH_ID=P_batch_id;

  • Error PLS-00306 during calling PL/SQL function from Java

    Hi all,
    I am facing a problem during call of oracle PL/SQL function from java using CallableStatement.
    I receive following error message.
    java.sql.SQLException: ORA-06550: line 1, column 13:
    PLS-00306: wrong number or types of arguments in call to 'EXPORT_HIST_ALARMS_FUNC'
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored
    As per above error EXPORT_HIST_ALARMS_FUNC in oracle has this signature.
    CREATE OR REPLACE FUNCTION EXPORT_HIST_ALARMS_FUNC(startDateTime VARCHAR2, endDateTime VARCHAR2, meType VARCHAR2) RETURN VARCHAR2 IS
    END EXPORT_HIST_ALARMS_FUNC;
    Above function I have called following way in java.
    String sql = "begin ?:= EXPORT_HIST_ALARMS_FUNC(?, ?, ?); end;" ;
    CallableStatement cStatement = null;
    cStatement = connection.prepareCall(sql);
    cStatement.registerOutParameter(1,Types.VARCHAR);
    cStatement.setString(2,startDateTime);
    cStatement.setString(3,endDateTime);
    cStatement.setString(4,meType);
    cStatement.execute();
    msg = cStatement.getString(1);
    Actually above function requires three input parameters and one return parameter.
    During execution of above java code it throws SQLException and shows PLS-00306: wrong number or types of arguments in call to 'EXPORT_HIST_ALARMS_FUNC' error.
    I have run this function directly from oracle with three parameters and run successfully and finally it returns string.
    But I am unable to figure out why it doesn't run from above java code.
    Please help regarding this.
    Thanks.
    Regards,
    Shardul Banker

    Try this:
    String sql = "begin ?:= EXPORT_HIST_ALARMS_FUNC(?, ?, ?); end;" ;
    CallableStatement cStatement = null;
    cStatement = connection.prepareCall(sql);
    cStatement.registerOutParameter(1,Types.VARCHAR);
    cStatement.setString(1,startDateTime);
    cStatement.setString(2,endDateTime);
    cStatement.setString(3,meType);
    cStatement.execute();
    msg = cStatement.getString(1);Regards,
    Martijn Teigeler
    Edited by: mTeigeler on Oct 13, 2007 10:22 AM

  • Pl. help debug - PLS-00306: wrong number or types of arguments in call

    Hi,
    I am trying to create a wrapper function to all a procedure in Oracle EBusiness Suite 11i.
    When I compile the following code
    ==========
    CREATE OR REPLACE PROCEDURE gme.KIL_ProcessAlloc IS
    vFileName VARCHAR2(30) := '1006251.csv';
    vLoc VARCHAR2(20) := '/u041/applmgr/opm/opmappl/utllog';
    v_InHandle utl_file.file_type;
    vNewLine VARCHAR2(1000);
    vLineNo PLS_INTEGER;
    c1 PLS_INTEGER;
    c2 PLS_INTEGER;
    c3 PLS_INTEGER;
    c4 PLS_INTEGER;
    c5 PLS_INTEGER;
    c6 PLS_INTEGER;
    c7 PLS_INTEGER;
    c8 PLS_INTEGER;
    c9 PLS_INTEGER;
    c10 PLS_INTEGER;
    c11 PLS_INTEGER;
    c12 PLS_INTEGER;
    c13 PLS_INTEGER;
    c14 PLS_INTEGER;
    c15 PLS_INTEGER;
    c16 PLS_INTEGER;
    c17 PLS_INTEGER;
    c18 PLS_INTEGER;
    c19 PLS_INTEGER;
    c20 PLS_INTEGER;
    c21 PLS_INTEGER;
    c22 PLS_INTEGER;
    c23 PLS_INTEGER;
    c24 PLS_INTEGER;
    c25 PLS_INTEGER;
    c26 PLS_INTEGER;
    c27 PLS_INTEGER;
    c28 PLS_INTEGER;
    c29 PLS_INTEGER;
    c30 PLS_INTEGER;
    c31 PLS_INTEGER;
    c32 PLS_INTEGER;
    c33 PLS_INTEGER;
    c34 PLS_INTEGER;
    TYPE AllocArray IS TABLE OF GME_INVENTORY_TXNS_GTMP%ROWTYPE
    INDEX BY BINARY_INTEGER;
    l_Allocdata AllocArray;
    TYPE MtlDetailArray IS TABLE OF gme_material_details%ROWTYPE
    INDEX BY BINARY_INTEGER;
    l_MtlDetaildata MtlDetailArray;
    TYPE xTranArray IS TABLE OF GME_INVENTORY_TXNS_GTMP%ROWTYPE
    INDEX BY BINARY_INTEGER;
    l_xtrandata xTranArray;
    TYPE defTranArray IS TABLE OF GME_INVENTORY_TXNS_GTMP%ROWTYPE
    INDEX BY BINARY_INTEGER;
    l_deftrandata defTranArray;
    t_messagecount number;
    t_messagelist varchar2(10000);
    t_returnstatus varchar2(1);
    BEGIN
    v_InHandle := utl_file.fopen(vLoc, vFileName, 'r');
    vLineNo := 1;
    LOOP
    BEGIN
    utl_file.get_line(v_InHandle, vNewLine);
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    EXIT;
    END;
    vNewLine := TRANSLATE(vNewLine, 'A''', 'A');
    c1 := INSTR(vNewLine, ',', 1,1);
    c2 := INSTR(vNewLine, ',', 1,2);
    c3 := INSTR(vNewLine, ',', 1,3);
    c4 := INSTR(vNewLine, ',', 1,4);
    c5 := INSTR(vNewLine, ',', 1,5);
    c6 := INSTR(vNewLine, ',', 1,6);
    c7 := INSTR(vNewLine, ',', 1,7);
    c8 := INSTR(vNewLine, ',', 1,8);
    c9 := INSTR(vNewLine, ',', 1,9);
    c10 := INSTR(vNewLine, ',', 1,10);
    c11 := INSTR(vNewLine, ',', 1,11);
    c12 := INSTR(vNewLine, ',', 1,12);
    c13 := INSTR(vNewLine, ',', 1,13);
    c14 := INSTR(vNewLine, ',', 1,14);
    c15 := INSTR(vNewLine, ',', 1,15);
    c16 := INSTR(vNewLine, ',', 1,16);
    c17 := INSTR(vNewLine, ',', 1,17);
    c18 := INSTR(vNewLine, ',', 1,18);
    c19 := INSTR(vNewLine, ',', 1,19);
    c20 := INSTR(vNewLine, ',', 1,20);
    c21 := INSTR(vNewLine, ',', 1,21);
    c22 := INSTR(vNewLine, ',', 1,22);
    c23 := INSTR(vNewLine, ',', 1,23);
    c24 := INSTR(vNewLine, ',', 1,24);
    c25 := INSTR(vNewLine, ',', 1,25);
    c26 := INSTR(vNewLine, ',', 1,26);
    c27 := INSTR(vNewLine, ',', 1,27);
    c28 := INSTR(vNewLine, ',', 1,28);
    c29 := INSTR(vNewLine, ',', 1,29);
    c30 := INSTR(vNewLine, ',', 1,30);
    c31 := INSTR(vNewLine, ',', 1,31);
    c32 := INSTR(vNewLine, ',', 1,32);
    c33 := INSTR(vNewLine, ',', 1,33);
    c34 := INSTR(vNewLine, ',', 1,34);
    -- l_allocdata(vLineNo).sourceno := SUBSTR(vNewLine,1,c1-1);
    -- l_allocdata(vLineNo).sizeno := SUBSTR(vNewLine,c1+1,c2-c1-1);
    -- l_allocdata(vLineNo).status := SUBSTR(vNewLine,c2+1,c3-c2-1);
    -- l_allocdata(vLineNo).latitude := SUBSTR(vNewLine,c3+1,c4-c3-1);
    -- l_allocdata(vLineNo).longitude := SUBSTR(vNewLine,c4+1,c5-c4-1);
    -- l_allocdata(vLineNo).testfor := SUBSTR(vNewLine,c5+1);
    l_allocdata(vLineNo).trans_id := SUBSTR(vNewLine,1,c1-1);
    l_allocdata(vLineNo).item_id := SUBSTR(vNewLine,c1+1,c2-c1-1);
    l_allocdata(vLineNo).co_code := SUBSTR(vNewLine,c2+1,c3-c2-1);
    l_allocdata(vLineNo).orgn_code := SUBSTR(vNewLine,c3+1,c4-c3-1);
    l_allocdata(vLineNo).whse_code := SUBSTR(vNewLine,c4+1,c5-c4-1);
    l_allocdata(vLineNo).lot_id := SUBSTR(vNewLine,c5+1,c6-c5-1);
    l_allocdata(vLineNo).location := SUBSTR(vNewLine,c6+1,c7-c6-1);
    l_allocdata(vLineNo).doc_id := SUBSTR(vNewLine,c7+1,c8-c7-1);
    l_allocdata(vLineNo).doc_type := SUBSTR(vNewLine,c8+1,c9-c8-1);
    l_allocdata(vLineNo).doc_line := SUBSTR(vNewLine,c9+1,c10-c9-1);
    l_allocdata(vLineNo).line_type := SUBSTR(vNewLine,c10+1,c11-c10-1);
    l_allocdata(vLineNo).reason_code := SUBSTR(vNewLine,c11+1,c12-c11-1);
    l_allocdata(vLineNo).trans_date := SUBSTR(vNewLine,c12+1,c13-c12-1);
    l_allocdata(vLineNo).trans_qty := SUBSTR(vNewLine,c13+1,c14-c13-1);
    l_allocdata(vLineNo).trans_qty2 := SUBSTR(vNewLine,c14+1,c15-c14-1);
    l_allocdata(vLineNo).qc_grade := SUBSTR(vNewLine,c15+1,c16-c15-1);
    l_allocdata(vLineNo).lot_status := SUBSTR(vNewLine,c16+1,c17-c16-1);
    l_allocdata(vLineNo).trans_stat := SUBSTR(vNewLine,c17+1,c18-c17-1);
    l_allocdata(vLineNo).trans_um := SUBSTR(vNewLine,c18+1,c19-c18-1);
    l_allocdata(vLineNo).trans_um2 := SUBSTR(vNewLine,c19+1,c20-c19-1);
    l_allocdata(vLineNo).completed_ind := SUBSTR(vNewLine,c20+1,c21-c20-1);
    l_allocdata(vLineNo).staged_ind := SUBSTR(vNewLine,c21+1,c22-c21-1);
    l_allocdata(vLineNo).gl_posted_ind := SUBSTR(vNewLine,c22+1,c23-c22-1);
    l_allocdata(vLineNo).event_id := SUBSTR(vNewLine,c23+1,c24-c23-1);
    l_allocdata(vLineNo).text_code := SUBSTR(vNewLine,c24+1,c25-c24-1);
    l_allocdata(vLineNo).transaction_no := SUBSTR(vNewLine,c25+1,c26-c25-1);
    l_allocdata(vLineNo).action_code := SUBSTR(vNewLine,c26+1,c27-c26-1);
    l_allocdata(vLineNo).material_detail_id := SUBSTR(vNewLine,c27+1,c28-c27-1);
    l_allocdata(vLineNo).organization_id := SUBSTR(vNewLine,c28+1,c29-c28-1);
    l_allocdata(vLineNo).locator_id := SUBSTR(vNewLine,c29+1,c30-c29-1);
    l_allocdata(vLineNo).subinventory := SUBSTR(vNewLine,c30+1,c31-c30-1);
    l_allocdata(vLineNo).alloc_um := SUBSTR(vNewLine,c31+1,c32-c31-1);
    l_allocdata(vLineNo).alloc_qty := SUBSTR(vNewLine,c32+1,c33-c32-1);
    l_allocdata(vLineNo).def_trans_ind := SUBSTR(vNewLine,c33+1,c34-c33-1);
    vLineNo := vLineNo+1;
    END LOOP;
    utl_file.fclose(v_InHandle);
    FOR i IN 1..vLineNo-1 loop
    GME_API_PUB.insert_line_allocation (
         1,
         100,
         FALSE,
         True,
         l_allocdata(i),
         null,
         null,
         false,
         false,
         false,
         l_MtlDetailData,
         l_xtrandata,
         l_deftrandata,
         t_messagecount,
         t_messagelist,
         t_returnstatus);
    end loop;
         IF (t_returnstatus <> 'S') THEN
    for i IN 1 .. t_messagecount LOOP
    dbms_output.put_line('The text is '||FND_MSG_PUB.get(i,t_messagelist));
    END LOOP;
    END IF;
    -- COMMIT;
    EXCEPTION
    WHEN OTHERS THEN
    RAISE;
    END KIL_ProcessAlloc;
    ===============
    I get this
    Warning: Procedure created with compilation errors.
    SQL> sho err
    Errors for PROCEDURE GME.KIL_PROCESSALLOC:
    LINE/COL ERROR
    145/8 PLS-00306: wrong number or types of arguments in call to
    'INSERT_LINE_ALLOCATION'
    145/8 PL/SQL: Statement ignored
    =================
    The package specs of GME_API_PU is under:
    ===============
    PROCEDURE insert_line_allocation (
    p_api_version IN NUMBER := gme_api_pub.api_version
    ,p_validation_level IN NUMBER := gme_api_pub.max_errors
    ,p_init_msg_list IN BOOLEAN := FALSE
    ,p_commit IN BOOLEAN := FALSE
    ,p_tran_row IN gme_inventory_txns_gtmp%ROWTYPE
    ,p_lot_no      IN     VARCHAR2 DEFAULT NULL
    ,p_sublot_no      IN     VARCHAR2 DEFAULT NULL
    ,p_create_lot     IN BOOLEAN DEFAULT FALSE
    ,p_ignore_shortage     IN BOOLEAN DEFAULT FALSE
    ,p_scale_phantom     IN BOOLEAN DEFAULT FALSE
    ,x_material_detail     OUT gme_material_details%ROWTYPE
    ,x_tran_row     OUT gme_inventory_txns_gtmp%ROWTYPE
    ,x_def_tran_row     OUT gme_inventory_txns_gtmp%ROWTYPE
    ,x_message_count OUT NUMBER
    ,x_message_list OUT VARCHAR2
    ,x_return_status     OUT VARCHAR2);
    GME_API_PUB.insert_line_allocation
    ===========
    What am I doing wrong...why am I getting PLS-00306.
    Can someone help?
    Thank you
    Sundar
    [email protected]

    Hi John,
    Thanks a ton - a nice Christmas gift. Thank you for being a Santa :-).
    I used the same subscript as the one used for in parameter and the procedure compiled without errors.
    A corollary: If (any of the) Out parameter is null (all columns of the row/array), will the array row element still be stored ? May be I cross the bridge when I come to it.
    Merry Christmas.
    Sundar

  • Notification with user defined type results in PLS-00306: wrong number..

    I created a user defined type TLogMessage:
    CREATE OR REPLACE TYPE TLogMessage AS OBJECT
    module VARCHAR2(4000),
    severity NUMBER,
    message VARCHAR2(4000)
    I also created a multi-consumer queue using this type as payload.
    My callback procedure in the package PK_SYST_LOGMESSAGE is defined as follows:
         PROCEDURE DefaultLoggerCallback(
              context          RAW,
              reginfo          SYS.AQ$_REG_INFO,
              descr          SYS.AQ$_DESCRIPTOR,
              payload          RAW,
              payload1     NUMBER
    Finally, I registered the callback procedure as follows:
              DBMS_AQADM.ADD_SUBSCRIBER(
                   queue_name      => QUEUE_NAME,
                   subscriber      => SYS.AQ$_AGENT(
                                            name => 'default_logger',
                                            address => NULL,
                                            protocol => NULL
              DBMS_AQ.REGISTER(
                   SYS.AQ$_REG_INFO_LIST(
                        SYS.AQ$_REG_INFO(
                             name          => QUEUE_NAME || ':default_logger',
                             namespace     => DBMS_AQ.NAMESPACE_AQ,
                             callback     => 'plsql://MTDX.PK_SYST_LOGMESSAGE.DefaultLoggerCallback',
                             context          => HEXTORAW('FF')
                   1
    However, when I put a message in the queue using this procedure:
         PROCEDURE LogMessage(
              pModule          VARCHAR2,
              pSeverity     NUMBER,
              pMessage     VARCHAR2
         IS
              vMessage               TLogMessage;
              vEnqueueOptions          DBMS_AQ.ENQUEUE_OPTIONS_T;
              vMsgProperties          DBMS_AQ.MESSAGE_PROPERTIES_T;
              vMessageHandle          RAW(16);
         BEGIN
              vMessage := TLogMessage(module => pModule, severity => pSeverity, message => pMessage);
              vEnqueueOptions.visibility := DBMS_AQ.IMMEDIATE;
              vMsgProperties.correlation := pModule;
              vMsgProperties.priority := -pSeverity;
              -- Enqueue the message to all subscribers
              DBMS_AQ.ENQUEUE(
                   queue_name               => QUEUE_NAME,
                   enqueue_options          => vEnqueueOptions,
                   message_properties     => vMsgProperties,
                   payload                    => vMessage,
                   msgid                    => vMessageHandle
         EXCEPTION
              WHEN no_subscribers THEN
                   -- No subscribers on the queue; ignore
                   NULL;
         END;
    I can see the message in the queue, by querying the queue view. I can also see that Oracle tried to call my callback procedure, because in the trace file I see the following:
    *** 2009-02-13 08:52:25.000
    *** ACTION NAME:() 2009-02-13 08:52:24.984
    *** MODULE NAME:() 2009-02-13 08:52:24.984
    *** SERVICE NAME:(SYS$USERS) 2009-02-13 08:52:24.984
    *** SESSION ID:(609.3387) 2009-02-13 08:52:24.984
    Error in PLSQL notification of msgid:4F7962FEDD3B41FA8D9538F0B38FCDD1
    Queue :"MTDX"."LOGMESSAGE_QUEUE"
    Consumer Name :DEFAULT_LOGGER
    PLSQL function :MTDX.PK_SYST_LOGMESSAGE.DefaultLoggerCallback
    : Exception Occured, Error msg:
    ORA-00604: Fout opgetreden bij recursief SQL-niveau 2.
    ORA-06550: Regel 1, kolom 7:
    PLS-00306: Onjuist aantal of type argumenten in aanroep naar 'DEFAULTLOGGERCALLBACK'..
    ORA-06550: Regel 1, kolom 7:
    PL/SQL: Statement ignored.
    So.. how many parameters does Oracle expect, and of what type? Is there any way to find out? What is wrong with my code?

    Ok, found it... I had defined the last parameter of the callback procedure as 'payload1' (that is: 'payload-ONE') instead of 'payloadl' ('payload-ELL'). It all works like a charm now.
    What a way to waste two whole days!

  • PLS-00306: wrong number or types of arguments in call in a for loop

    Dear all
    I recently put up another post about the same error message but as the message now relates to another part of my programme and, in my mind at least, a different conceptual idea, I thought I should start a new top. If that is not right thing to have done then please let me know. I am working in 10.2.
    I am trying to pass through multiple variables. When I run the code at the end of this question I get an error message:
    PLS-00306: wrong number or types of arguments in call to 'CUR_MAP_LIST'This relates to the line:
    FOR var_map_list IN cur_map_list (par_map_list (n))I think the reason the error message comes up is because par_map_list is a associate array / PL/SQL table and cur_map_list is based on %rowtype. Although I could be wrong. However I am not sure what I should be doing so that I don't get such an error message.
    I was reading through page 623 on Web Development 9i (by Brown; pub. McGrew-Hill) and pages 357-358 of Oracle Web Application Programming for PL/SQL Developers (by Boardman, Caffrey, Morse, Rosenzweig; pub. Prentice Hall), in order to try and write my code. As well as Oracle's Application Developer’s Guide - Fundamentals (Release 2), page 11-6. In particular the Web Development book uses the following:
    create or replace procedure query_department
    (in_dept_no owa_util.ident_arr)
    is
    cursor dept_cursor (nbt_dept_no emp.deptno%TYPE) is
    select empno, ename, mgr, sal, comm
    from scott.emp
    where deptno = nbt_dept_no;
    begin
      for x in 1 .. in_dept_no.count loop
        for dept_rec in dept_cursor(in_dept_no (x)) loop
        end loop;
      end loop;
    end;In that example the cursor selects empno, ename, mgr, sal and comm from emp. So if it is doing that the cursor must be of a VARCHAR2 and NUMBER data type. What I don't understand is the for dept_rec in part. For a start I am not sure where dept_rec comes from? If it is a NUMBER data type, how can the in_dept_no, which is a owa_util.ident_arr associate array / PL/SQL data type work with it. Unfortunately because the example is incomplete and doesn't include procedures relating to the in variables, I am unable to run it and try and learn from what it is doing, so that I can try and relate the concept to my own work.
    My programme is as follows. There may be other errors in the code not relating to this error. If so I hope to find these and resolve them once I understand what I should be doing here:
    --Global variables--
    gvar_mapviewer_host VARCHAR2(56) := 'http://tiger.iso.port.ac.uk:7785/mapviewer/omserver';
    gvar_proc_host VARCHAR2(56) := 'http://tiger.iso.port.ac.uk:7785/www/geg50160';
    gvar_xml_request VARCHAR2(100) :='?xml_request=<?xml version="1.0" standalone="yes"?>';
    --Main calling programming--
    PROCEDURE MAPS AS
    empty owa_util.ident_arr;
    var_xml_theme VARCHAR2(32767);
    BEGIN
    PROCMAPLIST (empty, var_xml_theme);
    END maps;
    --create checkboxes--
    PROCEDURE PROCCHECKLIST
    (par_check_list IN OUT owa_util.ident_arr,
      par_xml_theme OUT VARCHAR2
      AS
       CURSOR cur_map_list IS
        SELECT MT.map_title
               MI.map_id
               OMSN.map_sheet_number_id
               WRMF.web_raster_map_id
         FROM MAP_TITLE MT
              MAP_INFO MI
              MAP_SHEET_NUMBER OMSN,
              WEB_RASTER_MAP_FILE WRMF,
          WHERE MI.map_title_id = MT.map_title_id
          AND   MI.map_id = OMSN.map_id
          AND   WRMF.map_id = MI.map_id
          AND   WRMF.map_sheet_number_id = OMSN.map_sheet_number_id;
        var_map_list cur_map_list%ROWTYPE;
        var_xml_theme VARCHAR2(32767);
    BEGIN
    htp.htmlOpen;
    htp.headOpen;
    htp.headClose;
    htp.bodyOpen;
    htp.print('<FORM METHOD = "post"
                     ACTION = "'||gvar_proc_host||'.mappackage.procdisplay">');
        htp.print('<FIELDSET>
                     <LEGEND> Select the maps you wish to display </LEGEND>');
      FOR n IN 1 .. par_map_list.COUNT
      LOOP
      FOR var_map_list IN cur_map_list (par_map_list (n))
      LOOP
    htp.print('       <UL>
                       <LI>
                        <LABEL FOR = "WRMF'||
                                      var_map_list.web_raster_map_id||'">
                         <INPUT type = "checkbox"
                                id = "WRMFB'||
                                      var_map_list.web_raster_map_id||'"
                                name = "WRMFB'||
                                        var_map_list.web_raster_map_id||'"
                                value = "'||var_map_list.web_raster_map_id||'"
                                />
                                 Map title: '|| var_map_list.map_title||'<BR>
                                 Sheet number: '||var_map_list.map_sheet_number||'');
                        htp.print('</LABEL>
                       </LI>
                      </UL>');
        END LOOP;
      END LOOP;
         htp.print('</FIELDSET>');
         htp.print('<p>
                     <INPUT TYPE = "submit"
                            NAME = "Display&nbspselected&nbspmaps"
                            VALUE = "Display selected maps" />
                      </FORM>');
    htp.bodyClose;
    END PROCCHECKLIST;Thank you for reading. Kind regards
    Tim

    Dear everyone
    I have now resolved the problems I was having with multiple values and checkboxes, thanks to comments in this thread, read large chucks of Oracle PL/SQL Programming by Steve Feuerstein and suddenly realising where I am going wrong in terms of thinking.
    For a start, I when I was dealing with the multiple values, I was trying to get PL/SQL to pass them out. Of course this is done by the action part of the input form. Although I have not done much web coding, I did know about this. However because I was so engrossed in trying to understand how multiple values work, I didn't relate the two ideas. I even mind mapping the problem and still didn't get it.
    I also did not think to change my the action from post command to get, so that I could see what was coming out. However that would not have made too much of a difference because the other problem I had was related to where sub programmes were declared. The function which received the values was privately declared, and not in the package spec. This meant the web browser could not find the function as that can only make use of the programmes declared publicly.
    Once I made these changes, as well as correcting other minor typing mistakes, the values passed through as expected. The only other mistake I made was to include the name option after the submit input type. In my case I did not need to submit the value of that button. The revised code is as follows. In this version I replaced the function with a procedure that simply prints the checkbox values to screen. I have also made the input form action get, instead of post, so that the values can be seen in the web browser address bar:
    create or replace
    PACKAGE MAPSITE AS
    PROCEDURE MAPS;
    PROCEDURE PROCCHECKLIST
    (par_check_list IN OUT OWA_UTIL.IDENT_ARR
    PROCEDURE PROCDISPLAY
    (maplist IN OUT OWA_UTIL.IDENT_ARR);
    END MAPSITE;
    create or replace
    PACKAGE BODY MAPSITE AS
    --Global variables--
    gvar_mapviewer_host VARCHAR2(56) := 'http://tiger.iso.port.ac.uk:7785/mapviewer/omserver';
    gvar_proc_host VARCHAR2(56) := 'http://tiger.iso.port.ac.uk:7785/www/geg50160';
    gvar_xml_request VARCHAR2(100) :='?xml_request=<?xml version="1.0" standalone="yes"?>';
    --Main calling programming--
    PROCEDURE MAPS AS
    empty owa_util.ident_arr;
    BEGIN
    PROCCHECKLIST (empty);
    END MAPS;
    --create checkboxes--
    PROCEDURE PROCCHECKLIST
    (par_check_list IN OUT owa_util.ident_arr
      AS
       CURSOR cur_map_list IS
        SELECT MT.map_title,
               MI.map_id,
               OMSN.map_sheet_number_id,
               WRMF.web_raster_map_id
         FROM MAP_TITLE MT,
              MAP_INFO MI,
              MAP_SHEET_NUMBER OMSN,
              WEB_RASTER_MAP_FILE WRMF
          WHERE MI.map_title_id = MT.map_title_id
          AND   MI.map_id = OMSN.map_id
          AND   WRMF.map_id = MI.map_id
          AND   WRMF.map_sheet_number_id = OMSN.map_sheet_number_id;
    BEGIN
    htp.htmlOpen;
    htp.headOpen;
    htp.headClose;
    htp.bodyOpen;
    htp.print('<FORM METHOD = "post"
                     ACTION = "'||gvar_proc_host||'.mappackage.procdisplay">');
        htp.print('<FIELDSET>
                     <LEGEND> Select the maps you wish to display </LEGEND>');
      FOR var_map_list IN cur_map_list
      LOOP
    htp.print('       <UL>
                       <LI>
                        <LABEL FOR = "WRMF'||
                                      var_map_list.web_raster_map_id||'">
                         <INPUT type = "checkbox"
                                id = "WRMFB'||
                                      var_map_list.web_raster_map_id||'"
                                name = "maplist"
                                CHECKED = "' ||
                                           par_map_list ||'"
                                value = "'||var_map_list.web_raster_map_id||'"
                                />
                                 Map title: '|| var_map_list.map_title||'<BR>
                                 Sheet number: '||var_map_list.map_sheet_number||'');
                        htp.print('</LABEL>
                       </LI>
                      </UL>');
        END LOOP;
         htp.print('</FIELDSET>');
         htp.print('<p>
                     <INPUT TYPE = "submit"
                            VALUE = "Display selected maps" />
                      </FORM>');
    htp.bodyClose;
    END PROCCHECKLIST;
    ---PROCDISPLAY PROCEDURE---
    PROCEDURE PROCDISPLAY (maplist IN OUT owa_util.ident_arr)
    IS
    BEGIN
    FOR n IN 1..maplist.COUNT
    LOOP
      htp.print('Checkbox value i.e. var_map_list.web_raster_map_id is: ' ||maplist(n)||'
    <P>');
    END LOOP;
    END PROCDISPLAY;
    END MAPSITE;Kind regards
    Tim

  • PLS-00306 Error

    Hi All,
    I am totally new to PL/SQL development. Sorry for any stupid doubts.
    I am trying to create a package which has a function with few in and one out parameters. When I try to compile the package, it throws me the following:
    : PLS-00306: wrong number or types of arguments in call to 'GET_COMBINATION_ID'.
    Below is my package:
    TYPE SegmentArray is table of varchar2(200) INDEX BY BINARY_INTEGER;
    create or replace
    PACKAGE BODY xx_fnd_flex_ext_pkg
    as
    FUNCTION xx_get_comb_id(v_app_short_name      IN VARCHAR2,
                   v_key_flex_code     IN VARCHAR2,
                   v_structure_number     IN NUMBER,
                   v_validation_date     IN DATE,
    v_n_segments IN NUMBER,
                   v_segments IN SegmentArray,
                   v_combination_id     OUT NUMBER,
    v_data_set IN NUMBER DEFAULT -1)
    RETURN VARCHAR2 IS
    temp BOOLEAN;
    ccid NUMBER;
    BEGIN
    temp := apps.fnd_flex_ext.get_combination_id(application_short_name => v_app_short_name,
    key_flex_code => v_key_flex_code,
    structure_number => v_structure_number,
    validation_date => v_validation_date,
    n_segments => v_n_segments,
    segments => v_segments,
    combination_id => ccid,
    data_set => v_data_set);
    v_combination_id := ccid;
    if(temp = true)
    then return 'TRUE';
    end if;
    if(temp = false)
    then return('FALSE');
    end if;
    END xx_get_comb_id;
    END xx_fnd_flex_ext_pkg;
    The apps.fnd.flex.get_combination_id and my custom function takes exactly the same parameters. But its failing somewhere. Pls help me on this.
    Thanks,
    Sreeram Kosaraju.

    Hi,
    The segments parameter of apps.fnd_flex_ext.get_combination_id seems to have a user-defined dataype SegmentArray. That datatype is probably owned by the apps schema, perhaps defined in the fnd_flex_ext package.
    Even if you find out how that datatype was defined, and you define one exactly like it in your own schema, they will be different datatypes.
    Without seeing the documentation or code for apps.fnd_flex_ext, I can't tell what you should be doing.
    It might be something as simple as using apps.fnd_flex_ext.SegmentArray (instead of your own SegmentArray) in all of your declarations.

  • PLS-00306

    Hey All
    I am using microsoft reporting services 2000, to develop a report. I am using a stored procedure to fetch data from the oracle DB and display on the report GUI.
    Initially it was working when my signature was something like this:
    PROCEDURE danger_cards (
              startDate IN DATE,
              endDate IN DATE,
              serviceCenter IN VARCHAR2,
    dangerCards OUT staging_reports.REFERENCE_CURSOR)
    but when i changed the signature to :
    PROCEDURE danger_cards (
              startDate IN DATE,
              endDate IN DATE,
              serviceCenter IN VARCHAR2,
    errorMessage OUT VARCHAR2,
    dangerCards OUT staging_reports.REFERENCE_CURSOR)
    it is giving this error:
    Could not generate a list of fields for the query
    Check the query syntax or click Refresh Fields on the query toolbar.
    ORA-06550: Line 1, Column 7:
    PLS-00306: wrong number or types of arguments in call to 'STAGING_REPORTS.DANGER_CARDS'
    ORA-06550: Line 1, Column 7:
    PL/SQL : Statement ignored
    Since it was working before, and not now, i presume me adding the out field errorMessage in the signature as an OUT param is the reason.
    Please let me know, what might be the reason for such kind of an error.
    The body of the stored proc currently looks like this:
    PACKAGE BODY "STAGING_REPORTS" AS
    PROCEDURE danger_cards (
              startDate IN DATE,
              endDate IN DATE,
              serviceCenter IN VARCHAR2,
    errorMessage OUT VARCHAR2,
    dangerCards OUT staging_reports.REFERENCE_CURSOR)
    IS
    dangerCard AD_REPORT_DANGER_CARDS_VW%ROWTYPE;
    date_range EXCEPTION;
    PRAGMA EXCEPTION_INIT(date_range, -20999);
    BEGIN
    errorMessage := '';
    IF(startDate > endDate)
    THEN
    raise_application_error(-20999,'Please Specify An End Date Greater Or Equal To The Start Date');
    END IF;
              OPEN dangerCards
              FOR
                   SELECT      *
                   FROM AD_REPORT_DANGER_CARDS_VW
                   WHERE COMPLETION_DTE >= TO_CHAR(startDate,'YYYYMMDD')
                   AND
                   COMPLETION_DTE <= TO_CHAR(endDate,'YYYYMMDD')
                   AND
                   (SERVICE_AREA_GEO_CD = serviceCenter);
    EXCEPTION
    WHEN date_range THEN
    errorMessage := SQLERRM;
    END staging_reports_danger_cards;
    END staging_reports;

    Hi,
    If you have a look at the error message:PLS-00306: wrong number or types of arguments in call to 'STAGING_REPORTS.DANGER_CARDS'you'll notice that the error is when calling the procedure. You should check the whole package and other ones too for calls of the DANGER_CARDS procedure.
    Just issue:SELECT NAME, TEXT
    FROM DBA_SOURCE
    WHERE UPPER(TEXT) LIKE '%DANGER_CARDS%';and sort the result in order to check against the proc definition. You can also paste this query output here, or the whole package code, in order for us to diagnose it more precisely.
    Regards,
    Yoann.

  • Urgent : ADO / OraOLEDB gives random PLS-00306: wrong number or types of arguments

    Hi people,
    Using our production environment of Win2K AS, IIS 5.0 --> Win2K AS, COM+ / ADO, Oracle OLE DB 9i --> Solaris Oracle 9i we have a month of trace logs telling us that some calls to our PL/SQL package methods have the "PLS-00306: wrong number or types of arguments".
    Closer examination of our development systems also revealed these errors that seem to occur fairly randomly. (No recompiles in the database [at least according to USER_OBJECT.TIMESTAMP] and no invalid packages or schema objects).
    One call on a session will succeed (so there aren't any obvious syntax or data range boundary issues) and then with no obvious reason, a second call to the same package method will fail with the error message in the subject.
    Anyone else seen this behaviour and know of a fix?
    Thanks
    Lachlan Pitts

    Hi,
    The temp in the package and the temp in the anonymous block that calls the package are two different data types. They (coincidentally) have exactly the same number and type of elements, just as they (coincidentally) have exactly the same name, but they are still different.
    Since the type is declare in the package head, you can reference it from oputside the package. You don't have to create a similar type in the calling block: just reference the package type, like this:
    declare
      v_out pkg_1.temp;
    begin
        pkg_1.DoSomething( 'a', 'b',  v_out);
        dbms_output.put_line(v_out.val1);
    end;

  • PLS-00306: wrong number or types of arguments in call to 'BEFOREREPORTTRIGG

    Hello..
    Hopefully a quick one for somebody..
    Getting following error message..
    [052710_034807986][][EXCEPTION] SQLException encounter while executing data trigger....
    java.sql.SQLException: ORA-06550: line 4, column 20:
    PLS-00306: wrong number or types of arguments in call to 'BEFOREREPORTTRIGGER'
    ORA-06550: line 4, column 1:
    PL/SQL: Statement ignored....when I'm trying to call a trigger in a XSL script that is used to create a XML PUblisher report to run in ORACLE Financials..
    Anyway, Procedure header & Spec at fault is..
    CREATE OR REPLACE PACKAGE Subixclt IS
    FUNCTION BeforeReportTrigger(p_order_by IN VARCHAR2) RETURN VARCHAR2;
    ordered  VARCHAR2(50);
    raisedby VARCHAR2(50);
    status VARCHAR2(50);
    claimant VARCHAR2(50);
    expense_date_from DATE;
    expense_date_to DATE;
    END;
    CREATE OR REPLACE PACKAGE BODY Subixclt IS
    FUNCTION BeforeReportTrigger(p_order_by IN VARCHAR2)RETURN VARCHAR2 IS
    BEGIN
    DECLARE
    ordered  VARCHAR2(50);
    raisedby VARCHAR2(50);
    status VARCHAR2(50);
    claimant VARCHAR2(100);
    expense_date_from DATE;
    expense_date_to DATE;
    BEGIN
    IF (p_order_by='Expense Report Number') THEN
         ordered :='order by 1 asc;';
      ELSIF (p_order_by='Person Claiming') THEN
         ordered :='order by 2 asc;';
      ELSIF (p_order_by='Submit Date') THEN
      ordered :='order by 4 asc;';
      END IF;
    RETURN(p_order_by);
    END;
    END;
    END;PLease ask if yous need any further info..
    muchos gracias..
    Steven

    OK people sorry - I trust this is what you'll need..
    This is the data template where the call to the trigger is placed..
    <?xml version="1.0" encoding="utf-8"?>
    <dataTemplate name="UofS_OutstandngExpenses_Report" defaultPackage="SUBIXCLT" dataSourceRef="FINDEV" version="1.0">
    <properties>
    <property name="xml_tag_case"       value="upper" />
    <property name="include_parameters" value="true"  />
    <property name="debug_mode"         value="on"    />
    </properties>
    <parameters>
    <parameter name="claimant" dataType="character" />
    <parameter name="expense_date_from" dataType="date" />
    <parameter name="expense_date_to" dataType="date" />
    <parameter name="raisedby" dataType="character" />
    <parameter name="status" dataType="character" />
    </parameters>
    <dataQuery> 
    <sqlStatement name="Q1">
    <![CDATA[
    SELECT DISTINCT
    erh.invoice_num,
    pap.full_name EMP_CLAIMING,
    DECODE(NVL(erh.expense_status_code, 'Not yet Submitted (NULL)'), 'CANCELLED', 'CANCELLED',
         'EMPAPPR', 'Pending Individuals Approval',      'ERROR', 'Pending System Administrator Action',
         'HOLD_PENDING_RECEIPTS     ', 'Hold Pending Receipts', 'INPROGRESS', 'In Progress', 'INVOICED', 'Ready for Payment',
         'MGRAPPR', 'Pending Payables Approval', 'MGRPAYAPPR', 'Ready for Invoicing', 'PAID', 'Paid',
         'PARPAID', 'Partially Paid',     'PAYAPPR', 'Payables Approved',     'PENDMGR', 'Pending Manager Approval',
         'PEND_HOLDS_CLEARANCE', 'Pending Payment Verification',     'REJECTED', 'Rejected',     'RESOLUTN',     'Pending Your Resolution',
         'RETURNED',     'Returned',     'SAVED',     'Saved',     'SUBMITTED',     'Submitted',     'UNUSED',     'UNUSED',
         'WITHDRAWN','Withdrawn',     'Not yet Submitted (NULL)') "EXPENSE_STATUS" ,
    NVL(TO_CHAR(erh.report_submitted_date,'dd-MON-yyyy'),'NULL') SUBMIT_DATE,
    NVL(TO_CHAR(erh.expense_last_status_date,'dd-MON-yyyy'),'NULL') LAST_UPDATE,
    erh.override_approver_name ER_Approver,
    fu.description EXP_ADMIN,
    erh.total,
    erh.description 
    FROM
    AP_EXPENSE_REPORT_HEADERS_all erh,
    per_all_people_f pap, fnd_user fu
    WHERE erh.employee_id = pap.person_id
    AND fu.user_id = erh.created_by
    AND NVL(erh.expense_status_code, 'Not yet Submitted') NOT IN  ('MGRAPPR', 'INVOICED', 'PAID', 'PARPAID')
    AND pap.full_name = NVL(:claimant, pap.full_name)
    AND TRUNC(erh.report_submitted_date) BETWEEN NVL(:expense_date_from, '01-JAN-1999') AND NVL(:expense_date_to,'31-DEC-2299')
    AND fu.description = NVL(:raisedby,fu.description)
    AND erh.expense_status_code = NVL(:status,erh.expense_status_code) &ordered]]>
    </sqlStatement>
    </dataQuery>
    <dataTrigger name="beforeReportTrigger" source="SUBIXCLT.beforeReportTrigger"/>
    <dataStructure>
    <group name="G_XP_CLM_TRACKNG" source="Q1">
    <element name="INVOICE_NUM" value="INVOICE_NUM" />
    <element name="EMP_CLAIMING" value="EMP_CLAIMING" />
    <element name="EXPENSE_STATUS" value="EXPENSE_STATUS" />
    <element name="SUBMIT_DATE" value="SUBMIT_DATE" />
    <element name="LAST_UPDATE" value="LAST_UPDATE" />
    </group>
    </dataStructure>
    </dataTemplate>..when I try to run the Concurrent Program (ORACLE uses a Java Program to run it somehow..) this is the log file produced (note, I dont use the parameter &ordered that the trigger is for)..
    XDO Data Engine Version No: 5.6.3
    Resp: 20707
    Org ID : 102
    Request ID: 2481618
    All Parameters: raisedby=:status=:claimant=:expense_date_from=:expense_date_to=:p_order_by=
    Data Template Code: SUBIXCLT
    Data Template Application Short Name: PO
    Debug Flag: N
    {raisedby=, p_order_by=, claimant=, expense_date_to=, expense_date_from=, status=}
    Calling XDO Data Engine...
    [052810_033436415][][STATEMENT] Start process Data
    [052810_033436416][][STATEMENT] Process Data ...
    [052810_033436418][][STATEMENT] Executing data triggers...
    [052810_033436418][][STATEMENT] BEGIN
    SUBIXCLT.claimant := :claimant ;
    SUBIXCLT.expense_date_from := :expense_date_from ;
    SUBIXCLT.expense_date_to := :expense_date_to ;
    SUBIXCLT.raisedby := :raisedby ;
    SUBIXCLT.status := :status ;
    :XDO_OUT_PARAMETER := 1;
    END;
    [052810_033436421][][STATEMENT] 1: :
    [052810_033436421][][STATEMENT] 2:null :
    [052810_033436421][][STATEMENT] 3:null :
    [052810_033436422][][STATEMENT] 4: :
    [052810_033436422][][STATEMENT] 5: :
    [052810_033436504][][STATEMENT] Executing data triggers...
    [052810_033436504][][STATEMENT] Declare
    l_flag Boolean;
    BEGIN
    l_flag := SUBIXCLT.beforeReportTrigger ;
    if (l_flag) then
    :XDO_OUT_PARAMETER := 1;
    end if;
    end;
    [052810_033436518][][EXCEPTION] SQLException encounter while executing data trigger....
    java.sql.SQLException: ORA-06550: line 4, column 20:
    PLS-00306: wrong number or types of arguments in call to 'BEFOREREPORTTRIGGER'
    ORA-06550: line 4, column 1:
    PL/SQL: Statement ignored
         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:590)
         at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1973)
         at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1119)
         at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2191)
         at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:2064)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2989)
         at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:658)
         at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:736)
         at oracle.apps.xdo.dataengine.XMLPGEN.executeTriggers(XMLPGEN.java:650)
         at oracle.apps.xdo.dataengine.XMLPGEN.processData(XMLPGEN.java:263)
         at oracle.apps.xdo.dataengine.XMLPGEN.processXML(XMLPGEN.java:215)
         at oracle.apps.xdo.dataengine.XMLPGEN.writeXML(XMLPGEN.java:254)
         at oracle.apps.xdo.dataengine.DataProcessor.processDataStructre(DataProcessor.java:390)
         at oracle.apps.xdo.dataengine.DataProcessor.processData(DataProcessor.java:355)
         at oracle.apps.xdo.oa.util.DataTemplate.processData(DataTemplate.java:348)
         at oracle.apps.xdo.oa.cp.JCP4XDODataEngine.runProgram(JCP4XDODataEngine.java:293)
         at oracle.apps.fnd.cp.request.Run.main(Run.java:161)
    +---------------------------------------------------------------------------+
    Executing request completion options...
    +------------- 1) PUBLISH -------------+
    Beginning post-processing of request 2481618 on node FINDEV at 28-MAY-2010 15:34:37.
    Post-processing of request 2481618 failed at 28-MAY-2010 15:34:39 with the error message:
    One or more post-processing actions failed. Consult the OPP service log for details... and OPP service log contains..
    Template code: SUBIXCLT
    Template app:  PO
    Language:      en
    Territory:     GB
    Output type:   PDF
    [5/28/10 3:34:39 PM] [UNEXPECTED] [46385:RT2481618] java.lang.reflect.InvocationTargetException
         at sun.reflect.GeneratedMethodAccessor119.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at oracle.apps.xdo.common.xml.XSLT10gR1.invokeParse(XSLT10gR1.java:566)
         at oracle.apps.xdo.common.xml.XSLT10gR1.transform(XSLT10gR1.java:231)
         at oracle.apps.xdo.common.xml.XSLTWrapper.transform(XSLTWrapper.java:182)
         at oracle.apps.xdo.template.fo.util.FOUtility.generateFO(FOUtility.java:1044)
         at oracle.apps.xdo.template.fo.util.FOUtility.generateFO(FOUtility.java:997)
         at oracle.apps.xdo.template.fo.util.FOUtility.generateFO(FOUtility.java:212)
         at oracle.apps.xdo.template.FOProcessor.createFO(FOProcessor.java:1665)
         at oracle.apps.xdo.template.FOProcessor.generate(FOProcessor.java:975)
         at oracle.apps.xdo.oa.schema.server.TemplateHelper.runProcessTemplate(TemplateHelper.java:5926)
         at oracle.apps.xdo.oa.schema.server.TemplateHelper.processTemplate(TemplateHelper.java:3458)
         at oracle.apps.xdo.oa.schema.server.TemplateHelper.processTemplate(TemplateHelper.java:3547)
         at oracle.apps.fnd.cp.opp.XMLPublisherProcessor.process(XMLPublisherProcessor.java:290)
         at oracle.apps.fnd.cp.opp.OPPRequestThread.run(OPPRequestThread.java:157)
    Caused by: org.xml.sax.SAXParseException: <Line 1, Column 1>: XML-20108: (Fatal Error) Start of root element expected.
         at oracle.xdo.parser.v2.XMLError.flushErrorHandler(XMLError.java:441)
         at oracle.xdo.parser.v2.XMLError.flushErrors1(XMLError.java:303)
         at oracle.xdo.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:343)
         at oracle.xdo.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:285)
         at oracle.xdo.parser.v2.XMLParser.parse(XMLParser.java:289)
         ... 16 moreMany thanks for looking..
    Steven

  • PLS-00306: wrong number or types of arguments in call to 'p_proc'

    Hi,
    This code call a procedure which takes a VARRAY type as parameter. I face this error
    when i compile the code.
    java.sql.SQLException: ORA-06550: Line 1, column 7 :
    PLS-00306: wrong number or types of arguments in call to 'p_proc'
    ORA-06550: Line 1, column 7 :
    PL/SQL: Statement ignored
    someone can tell what's wrong. Below, you have the source code used in this test case
    a sample code is welcome.
    import java.sql.*;
    import oracle.sql.*;
    import oracle.jdbc.oracore.Util;
    import oracle.jdbc.*;
    import java.math.BigDecimal;
    public class ArrayExample3 {
    public static void main(String args[]) throws Exception {
    // Register the Oracle JDBC driver
    DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
    // Connect to the database
    Connection conn =
    DriverManager.getConnection("jdbc:oracle:thin:@Anais:1521:BLB",
    "candide", "candide");
    // It's faster when auto commit is off
    conn.setAutoCommit(false);
    // create a new ARRAY object
    int elements[] = {300, 400, 500, 600};
    ArrayDescriptor desc = ArrayDescriptor.createDescriptor
    ("NUM_VARRAY", conn);
    ARRAY newArray = new ARRAY(desc, conn, elements);
    CallableStatement cs = conn.prepareCall("{call pe_cl2.p_proc(?)}");
    ( (OracleCallableStatement) cs).setArray(1, newArray);
    cs.executeUpdate();
    // Close all the resources
    cs.close();
    conn.close();
    CREATE OR REPLACE TYPE num_varray_t AS VARRAY(10) OF NUMBER;
    CREATE TABLE varray_table2 (col1 number);
    create or replace package candide.PE_CL2 is
    PROCEDURE p_proc(Id_clt IN num_varray);
    end PE_CL2;
    create or replace package body candide.PE_CL2 is
    PROCEDURE p_proc(Id_clt IN num_varray) IS
    BEGIN
    FORALL i IN Id_clt.FIRST .. Id_clt.LAST
    INSERT INTO varray_table2 VALUES (Id_clt(i));
    COMMIT;
    END;
    end PE_CL2;
    thanks Peter

    You create type num_varray_t, but in procedure your input parameter is of type num_varray. How this type is specified?

  • Error PLS-00306: wrong number or types of arguments in call to

    I am getting the following Error when calling stored Procedure, I have tried with Last Parameter PRESULT and WITHOUT IT, it fails in both the instance.
    =======================================================================
    "System.Data.OracleClient.OracleException: ORA-06550: line 1, column 7:
    PLS-00306: wrong number or types of arguments in call to 'UPDATECOTRACKING'
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored
    =======================================================================
    signature of Stored Procedure is as follow
    (pmaster_key IN sca_costtrackinglog.master_key%type,
         pdoc_master_key IN sca_costtrackinglog.master_key%type,     
    pfrenumber IN sca_costtrackinglog.fre_number%type,     
    pnotice1 IN sca_costtrackinglog.notice1%type,
    pnotice2 IN sca_costtrackinglog.notice2%type,
    padditreceived IN sca_costtrackinglog.additreceived%type,
    pfreanticipate IN sca_costtrackinglog.freanticipate%type,
    pdateofnot IN sca_costtrackinglog.dateofnot%type,
    pdateofmeeting IN sca_costtrackinglog.dateofmeeting%type,
    psenttocontractor IN sca_costtrackinglog.senttocontractor%type,
    pcouforexecution IN sca_costtrackinglog.couforexecution%type,
    pcomments IN sca_costtrackinglog.comments%type,
    pcreateby IN sca_costtrackinglog.createby%type,
    peditby IN sca_costtrackinglog.editby%type,
         presult OUT number) is
    This is the Trace of Parameters from actual Call, that fails with above error.
    Parameter Name : PMASTER_KEY(Input),Type(AnsiString) Size(26), Value = 000328JYA30008HSWBCK01NYC
    Parameter Name : pdoc_master_key(Input),Type(AnsiString) Size(26), Value = 310657KLF30025HSWBCK01NYC
    Parameter Name : PFRENUMBER(Input),Type(AnsiString) Size(12), Value = 00015
    Parameter Name : PNOTICE1(Input),Type(DateTime) Size(1), Value = 3/25/2010
    Parameter Name : PNOTICE2(Input),Type(DateTime) Size(1), Value =
    Parameter Name : PADDITRECEIVED(Input),Type(DateTime) Size(1), Value =
    Parameter Name : PFREANTICIPATE(Input),Type(DateTime) Size(1), Value =
    Parameter Name : PDATEOFNOT(Input),Type(DateTime) Size(1), Value =
    Parameter Name : PDATEOFMEETING(Input),Type(DateTime) Size(1), Value =
    Parameter Name : PSENTTOCONTRACTOR(Input),Type(DateTime) Size(1), Value =
    Parameter Name : pcouforexecution(Input),Type(DateTime) Size(1), Value =
    Parameter Name : pcomments(Input),Type(AnsiString) Size(250), Value =
    Parameter Name : PCREATEBY(Input),Type(AnsiString) Size(50), Value = NYCSCA\tmpns2
    Parameter Name : PEDITBY(Input),Type(AnsiString) Size(50), Value = NYCSCA\tmpns2
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    Below is the trace from Data.OracleClient.OracleCommandBuilder.DeriveParameters(Cmd)
    Parameter Name : PMASTER_KEY(Input),Type(AnsiString) Size(2000), Value =
    Parameter Name : PDOC_MASTER_KEY(Input),Type(AnsiString) Size(2000), Value =
    Parameter Name : PFRENUMBER(Input),Type(AnsiString) Size(2000), Value =
    Parameter Name : PNOTICE1(Input),Type(DateTime) Size(0), Value =
    Parameter Name : PNOTICE2(Input),Type(DateTime) Size(0), Value =
    Parameter Name : PADDITRECEIVED(Input),Type(DateTime) Size(0), Value =
    Parameter Name : PFREANTICIPATE(Input),Type(DateTime) Size(0), Value =
    Parameter Name : PDATEOFNOT(Input),Type(DateTime) Size(0), Value =
    Parameter Name : PDATEOFMEETING(Input),Type(DateTime) Size(0), Value =
    Parameter Name : PSENTTOCONTRACTOR(Input),Type(DateTime) Size(0), Value =
    Parameter Name : PCOUFOREXECUTION(Input),Type(DateTime) Size(0), Value =
    Parameter Name : PCOMMENTS(Input),Type(AnsiString) Size(2000), Value =
    Parameter Name : PCREATEBY(Input),Type(AnsiString) Size(2000), Value =
    Parameter Name : PEDITBY(Input),Type(AnsiString) Size(2000), Value =
    Parameter Name : PRESULT(Output),Type(VarNumeric) Size(0), Value =
    ******************************************************************************************************************

    In the Oracle database, the body of the package FWA_PRI API, the procedure ValidatePri declares P_PriREc as being :
    PAYMENT_REQUEST_IMPORT%ROWTYPE
    As you can see above, the DoPri Procedure expects a type p_PriRec as its second argument.
    Therefore in my procedure I do the following:
    create or replace procedure spMatchPayment is
    BEGIN
    DECLARE
           CURSOR StageCurs IS SELECT * FROM PAYMENT_REQUEST_IMPORT;
                  p_payment_req_import PAYMENT_REQUEST_IMPORT%ROWTYPE;
                  BEGIN
                       OPEN StageCurs();
                            LOOP
                                FETCH StageCurs INTO P_payment_req_import;
                                EXIT WHEN StageCurs%NOTFOUND;
                                fwa_pri.DoPri(NULL, fwa_pri.DoPri('M',P_PriRec => p_payment_req_import);                           
                             END LOOP;
                        CLOSE StageCurs;
                   END;
    end spMatchPayment;
    Now, when I am trying to compile I am getting the Compilation errors for PROCEDURE IMPACT.SPMATCHPAYMENT
    Error: PLS-00306: wrong number or types of arguments in call to 'DOPRI'
    Line: 16
    Text: fwa_pri.DoPri(NULL,P_PriRec => p_payment_req_import);
    I don't see what's wrong on my code......HELP!!

  • PLS-00306: wrong number or types of arguments in call to 'PROC

    I m facing this error in my Package... i have given a small code for my prob...
    Plz try to rectify this........
    Thank u.
    abhilasha.
    1 create table tt
    2 (ename varchar2(30)
    3* )
    SQL> /
    Table created.
    SQL> create table ttt
    2 as select * from tt;
    Table created.
    SQL> insert into tt
    2 values('abhi');
    SQL> create or replace procedure proc_add(emp_rec tt%rowtype)
    2 is
    3 begin
    4 insert into ttt(ename)
    5 values(emp_rec.ename);
    6 --commit;
    7 end proc_add;
    8 /
    Procedure created.
    SQL> execute proc_add('abhi');
    BEGIN proc_add('abhi'); END;
    ERROR at line 1:
    ORA-06550: line 1, column 7:
    PLS-00306: wrong number or types of arguments in call to 'PROC_ADD'
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored

    Please help me, I don't know waht is the mistake, but I have this error, my mails [email protected]
    Thanks
    ORA-06550 linea 1, column 7
    PLS-00306 wrong number or types of arguments in call to "PRC_CONSULTAR_CLIENTE"
    ORA-06550 line1, column 7
    PL/SQL Statement ignored
    --PL*SQL
    CREATE OR REPLACE PACKAGE pkg_cliente IS
    TYPE tCursor IS REF CURSOR;
    PROCEDURE prc_consultar_cliente (
                                       pCodigoCliente     IN VARCHAR2,
    pNombreCliente     IN VARCHAR2,
    cDatosCliente     OUT tCursor,
    pCodRetorno     OUT VARCHAR2,
    pMsjRetorno     OUT VARCHAR2
    END pkg_cliente;
    PROCEDURE prc_consultar_cliente (
                                       pCodigoCliente     IN VARCHAR2,
    pNombreCliente     IN VARCHAR2,
                                       cDatosCliente     OUT tCursor,
    pCodRetorno     OUT VARCHAR2,
    pMsjRetorno     OUT VARCHAR2
    IS
    exDatosInsuficientes EXCEPTION;
    lnRegDevueltos NUMBER;
    BEGIN
    IF TRIM(pCodigoCliente) IS NULL THEN
    RAISE exDatosInsuficientes;
    END IF;
    pMsjRetorno := 'Error Consultar CLIENTES ';
    OPEN cDatosCliente FOR
    SELECT * FROM CLIENTE
    WHERE CODIGO_CLIENTE = pCodigoCliente;
    lnRegDevueltos := SQL%ROWCOUNT;
    pCodRetorno := '00000000';
    pMsjRetorno := 'Transaccion Exitosa .. Reg.Devueltos ' || lnRegDevueltos;
    EXCEPTION
    WHEN exDatosInsuficientes THEN
    pCodRetorno := '00001400';
    pMsjRetorno := 'Uno de los campos de entrada son Nulos o ceros';
    WHEN OTHERS THEN
    pCodRetorno := SQLCODE;
    pMsjRetorno := pMsjRetorno || ' ' || substr(SQLERRM,1,50);
    END prc_consultar_cliente;
    --VB. NET
    Public Function consultarClientes() As DataSet
    Dim strSql As String = "pkg_cliente.prc_consultar_cliente"
    Dim cCon As New OracleConnection(connectionString)
    Dim cMst As New OracleDataAdapter
    Dim dst As New DataSet
    cCon.Open()
    cMst.SelectCommand = New OracleCommand(strSql, cCon)
    cMst.SelectCommand.CommandType = CommandType.StoredProcedure
    cMst.SelectCommand.Parameters.Add("pCodigoCliente", OracleType.VarChar).Value = "1111"
    cMst.SelectCommand.Parameters.Add("pNombreCliente", OracleType.VarChar).Direction = "1"
    cMst.SelectCommand.Parameters.Add("cDatosCliente", OracleType.Cursor).Direction = ParameterDirection.Output
    cMst.SelectCommand.Parameters.Add("pCodRetorno", OracleType.VarChar, 100).Direction = ParameterDirection.Output
    cMst.SelectCommand.Parameters.Add("pMsjRetorno", OracleType.VarChar, 100).Direction = ParameterDirection.Output
    cMst.Fill(dst)
    cCon.Close()
    consultarClientes = dst
    End Function

  • PLS-00306: wrong number or types of arguments in call to 'MULTISET_INTERSE

    CREATE OR REPLACE PACKAGE pkg_mkt_hub_load_collection
    AS
    PROCEDURE sp_final_load_mkt_hub;
    END pkg_mkt_hub_load_collection;
    CREATE OR REPLACE PACKAGE BODY pkg_mkt_hub_load_collection
    AS
    c_default_limit CONSTANT PLS_INTEGER:=5000;
    PROCEDURE sp_final_lvl_idx_mon_hub;
    PROCEDURE sp_final_lvl_idx_mon_hub
    AS
    CURSOR cur_lvl_idx_mon IS
    SELECT idxmap.ssia_index_code,idxstg.start_date,idxstg.currency,idxstg.level1,idxstg.type,
    idxstg.return_month,idxstg.return_3months, idxstg.return_6months, idxstg.return_ytd, idxstg.return_1year,
    idxstg.return_3years, idxstg.return_5years,idxstg.return_10years,idxstg.market_cap,
    idxstg.mkt_file_id     
         FROM mkt_total_lvl_indx_mon_stg idxstg,
              md_vendor_index_map idxmap
         WHERE idxmap.source = idxstg.source
              AND idxmap.base_currency = idxstg.currency
              AND idxmap.return_type = idxstg.type
              AND idxmap.mkt_index_id = idxstg.vendor_code
              AND idxmap.monthly = 'Y'
              AND idxmap.file_type = 'T';
    TYPE cur_lvl_idx_tab is table of cur_lvl_idx_mon%ROWTYPE;
    cur_lvl_idx_rec cur_lvl_idx_tab;
    CURSOR cur_idx_mon_hub IS
    SELECT idxhub.ssia_index_id,idxhub.effective_date,idxhub.currency,index_level,idxhub.type,
    idxhub.return_month,idxhub.return_3months, idxhub.return_6months, idxhub.return_ytd, idxhub.return_1year,
    idxhub.return_3years, idxhub.return_5years,idxhub.return_10years,idxhub.market_cap,
    idxhub.mkt_file_id     
    FROM mkt_total_lvl_indx_mon_hub idxhub;
    TYPE cur_idx_mon_tab IS TABLE OF cur_idx_mon_hub%ROWTYPE;
    cur_idx_mon_rec cur_idx_mon_tab;
    l_col_3 cur_idx_mon_tab;
    BEGIN
    OPEN cur_lvl_idx_mon;
    LOOP
    FETCH cur_lvl_idx_mon BULK COLLECT INTO cur_lvl_idx_rec LIMIT c_default_limit;
    EXIT WHEN cur_lvl_idx_mon%NOTFOUND;
    END LOOP;
    OPEN cur_idx_mon_hub;
    LOOP
    FETCH cur_idx_mon_hub BULK COLLECT INTO cur_idx_mon_rec LIMIT c_default_limit;
    EXIT WHEN cur_idx_mon_hub%NOTFOUND;
    END LOOP;
    l_col_3 := cur_lvl_idx_rec MULTISET INTERSECT cur_idx_mon_rec;
    CLOSE cur_lvl_idx_mon;
    CLOSE cur_idx_mon_hub;
    END sp_final_lvl_idx_mon_hub;
    PROCEDURE sp_final_load_mkt_hub
    AS
    BEGIN
    NULL;
    END sp_final_load_mkt_hub;
    END pkg_mkt_hub_load_collection;
    show error
    error code
    Code: [Select all] [Show/ hide]SQL> @pkg_mkt_hub_load_collection.sql
    Package created.
    Warning: Package Body created with compilation errors.
    Errors for PACKAGE BODY PKG_MKT_HUB_LOAD_COLLECTION:
    LINE/COL ERROR
    57/4 PL/SQL: Statement ignored
    PLS-00306: wrong number or types of arguments in call to 'MULTISET_INTERSECT_ALL'
    SQL>
    please give an idea about this error

    Declaration is already visible.
    TYPE cur_lvl_idx_tab is table of cur_lvl_idx_mon%ROWTYPE;The MULTISET operator must be used on collections of the same TYPE. You are attempting to use it on two different TYPEs
    Since PL/SQL records cannot be compared for equality (yet) MULTISET operations on collections of PL/SQL record are not supported. You are attempting to use the MULTISET operator on collections of PL/SQL record.
    I believe this is possible with a collection of persistent object type with a MAP or ORDER method.
    But then again why not just use INTERSECT in SQL?

  • PLS-00306: wrong number or types of arguments in call to 'PROC_GET_CUSTOMER

    i'm trying to pass multiple value to stored procedure and getting below error
    CREATE OR REPLACE TYPE STRINGTABLE AS TABLE OF VARCHAR2(4000);
    CREATE OR REPLACE
    PACKAGE  PKG_CUSTOMER  AS
    TYPE L_CURSOR IS REF CURSOR;
    PROCEDURE PROC_GET_CUSTOMER( P_SEARCH in STRINGTABLE, SELECTALL OUT L_CURSOR);
    END PKG_CUSTOMER  ;
    CREATE OR REPLACE
    PACKAGE BODY PKG_CUSTOMER  AS
    PROCEDURE PROC_GET_CUSTOMER( P_SEARCH IN STRINGTABLE, SELECTALL OUT L_CURSOR) IS
    BEGIN
         OPEN SELECTALL FOR
          SELECT  PTNR_COUNTRY_CODE, COUNT(*) NOS FROM TAB_MHD_PARTNER
          WHERE PTNR_COUNTRY_CODE in (SELECT * FROM TABLE (P_SEARCH))
          GROUP BY PTNR_COUNTRY_CODE
    END;
    END PKG_CUSTOMER;
    EXEC PKG_CUSTOMER.PROC_GET_CUSTOMER('GB','DE');
    Error starting at line 30 in command:
    EXEC PKG_CUSTOMER.PROC_GET_CUSTOMER('GB','DE')
    Error report:
    ORA-06550: line 1, column 7:
    PLS-00306: wrong number or types of arguments in call to 'PROC_GET_CUSTOMER'
    ORA-06550: line 1, column 7:
    PLS-00306: wrong number or types of arguments in call to 'PROC_GET_CUSTOMER'
    ORA-06550: line 1, column 43:
    PLS-00363: expression 'DE' cannot be used as an assignment target
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored
    06550. 00000 -  "line %s, column %s:\n%s"
    *CAUSE:    USUALLY A PL/SQL COMPILATION ERROR.
    *Action:Edited by: RamiahRAGU on Apr 15, 2012 11:08 AM

    The way you are calling the packaged procedure is entirely wrong.
    1. You have one IN parameter which is of table type, and you are trying to pass it as VARCHAR2.
    2. You have an out parameter, and not passing it.
    Moreover, what are you trying to achieve by this code? If you explain teh actual issue, we will be able to help.
    You should call the procedure as below:
    SQL> declare
      2   lc_csr PKG_CUSTOMER.L_CURSOR;
      3  begin
      4   PKG_CUSTOMER.PROC_GET_CUSTOMER(STRINGTABLE('GB','DE'),lc_csr);
      5  end;
      6  /
    PL/SQL procedure successfully completed.

Maybe you are looking for

  • How can I change a brush stroke to a pencil stroke after I've drawn it?

    How can I change a brush stroke to a pencil stroke after I've drawn it? Is this possible?

  • WL10.3 Error occurred during initialization of VM

    I have over 3G RAM, absolutlely nothing else running. Trying to run samples for WL10R3, and server starts up with this error below. I tried increasing the ms and mx settings...to no avail. Reinstalled BEA...nothing. Noone else has that issue. Compare

  • MBP & External monitor orientation

    Hello All, I would like to use an external monitor with the MBP with a different orientation i.e. the MBP runs on landscape (default/normal), I would like the external monitor to have a Potrait orientation. I have done this with a couple of PC's, am

  • My music got deleted!!

    MY SONGS ARE ALL GONE!!! i was updating my ipod with new songs and when itunes came up it asked me whether i wanted to update my ipod with songs that are in my library. i clicked ok (cuz im an idiot) and then it said updating ipod. when i disconected

  • Validity issue

    Hi All, in PPOME mode if i set Key date as todays date 10.26.2009. and create an org unit which by defaukts take dtae as todays date. Now in details area in i chnage its date to say 01.01.2009 , system allows mne to do that. But say if i chnage now i