Error: PLS-00306: wrong number or types of arguments

Hello

I created a function:

create or replace procedure AS Test11
x Test.Emp_No%Type;
Begin
Select emp_no in x from Test whose name = 'South '.
x: = x + 1;
Update Test set emp_no = x where emp_no < 100;
commit;
end Test11;

It has compiled with success in PL/SQL Developer. Now, I created an executable of this procedure in front-end - 11i. And then I created a program of this executable. Then I added this program to a group of application.

Now that I run this query and I get this error in the log:

Error ORACLE 6550 in FDPSTP

Cause: FDPSTP failed due to the ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in the call to 'TEST11 '.
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
.

Hello
Whenever you save a function, or a PL/SQL procedure as a simultaneous program to apps, you must
to add two parameters of type varchar2 (errbuf and retcode) Moreover to your settings.
If you change procedure as follows:

create or replace procedure Test11(errbuf   out varchar2,
                                   retcode out varchar2) AS
x Test.Emp_No%Type;
Begin
select emp_no into x from Test where name = 'Sud';
x := x + 1;
update Test set emp_no = x where emp_no < 100;
commit;
end Test11;

Published by: Anthony Alix on December 3, 2008 05:20

Published by: Anthony Alix on December 3, 2008 05:25

Published by: Anthony Alix on December 3, 2008 05:35

Tags: Database

Similar Questions

  • Please help solve the problem error: PLS-00306: wrong number or types of a

    Hello

    Please see my statement of types and the procedure. Object and the nested table that is declared at the schema level

    I'm using the oracle version 11.2
    CREATE OR REPLACE TYPE T_COPY_EVNT_DTL IS OBJECT
    
    ( 
    
    eventId varchar2(100),
    
    eventDescription varchar2(100),
    
    promoMonthDescription varchar2(100),
    
    promoStartDate varchar2(100),
    
    promoEndDate varchar2(100),
    
    PROMOCOSTSTARTDATE varchar2(100)
    
    );
    
    
    CREATE OR REPLACE TYPE T_EVENT_TABLE IS TABLE OF T_COPY_EVNT_DTL;
    
    create or replace PROCEDURE Pr_Event_Details_new(ip_xml          CLOB,
                                                                                                                                                     op_sections_xml OUT XMLTYPE) AS
         
         event_list     t_copy_evnt_dtl;
         event_data_sec t_event_table := t_event_table();
         
         
         CURSOR get_event_cur IS
              SELECT cast(collect(t_copy_evnt_dtl(evnt.event,                                                                                                                    evnt.event_desc,
                        mth.promo_month_desc,
                        TO_CHAR(evnt.start_date,
                        'DD/MM/YYYY'),
                        TO_CHAR(evnt.end_date,
                        'DD/MM/YYYY'),
                        TO_CHAR((evnt.start_date - 21),
                        'DD/MM/YYYY'))) as
                        t_event_table)
                   FROM RETEK_PROMO_EVENT_MST evnt
               INNER JOIN  .....
               WHERE ... 
               ORDER BY evnt.event_desc,
                                       mth.promo_month_desc,
                                       dtl.promo_start_date,
                                       dtl.promo_end_date,
                                       dtl.promo_cost_start_date;
    
         type get_event_tab is table of get_event_cur%rowtype index by Binary_Integer;
         l_get_event_tab get_event_tab;
    BEGIN
    
         ....
         
         
              OPEN get_event_cur;
              fetch get_event_cur
                   into event_data_sec;
         
              event_data_sec := set(event_data_sec);
              ...
              
              
              
    EXCEPTION
              --log_errors...                                                                 
              Raise;
    END Pr_Event_Details_new;
    Error: PLS-00306: wrong number or types of arguments in the call to 'SET '.
    Online: 117
    Text: event_data_sec: = set (event_data_sec);

    Error: PL/SQL: statement ignored
    Online: 117
    Text: event_data_sec: = set (event_data_sec);

    You will raise a wrong number or types of argument error, or an exception of PLS-00306, if you use the fixed operator with the collection of user-defined object types.

    The collection must contain SQL scalar data types - single values without internal components...

    Numeric values, on which you can perform arithmetic operations.
    Alphanumeric values that represent individual or strings of characters, characters that you can manipulate.
    Logical values, on which you can perform logical operations.
    Dates and times, you can manipulate.
    Time intervals, you can handle.

    Published by: stefan nebesnak on January 24, 2013 13:22

  • Can't get the procedure to update - PLS - 00306:Wrong number or types of arguments

    I'm in a situation where I think that despite the correct number of parameters by the way my local procedure (which has been "forward declarations" in addition to logical writing for her; I use all this in a package) fails to compile in SQL * faster due to the error PLS - 00306:Wrong number or types of arguments in the call to P_SENDMAIL.


    I'm passing 5 parameters in the area of forward declarations and also in the logic/header inside in addition to calling the procedure in the package. Can one of you help mewith this and tell me where exactly the error might be. Here is the code:


    [code]

    -Local variable

    CRLF VARCHAR2 (2) CONSTANT: = CHR (13) | CHR (10);

    -- --------------------------------------------------------------------------------

    -FORWARD DECLARATIONS

    -- -----------------------------------------------------------------------------

    PROCEDURE p_sendmail (p_sender_email IN VARCHAR2,

    P_FROM IN VARCHAR2,

    p_to IN VARCHAR2,

    msg_subject IN VARCHAR2 DEFAULT NULL,

    p_msg_body IN LONG DEFAULT NULL);

    [/ code]


    The procedure itself:


    [code]


    PROCEDURE p_sendmail (p_sender_email IN VARCHAR2,

    P_FROM IN VARCHAR2,

    p_to IN VARCHAR2,

    msg_subject IN VARCHAR2 DEFAULT NULL,

    p_msg_body IN LONG DEFAULT NULL) is

    LONG v_to_list;

    LONG v_cc_list;

    LONG v_bcc_list;

    T_DATE VARCHAR2 (255) DEFAULT TO_CHAR(SYSDATE, 'DD MON YYYY HH24:MI:SS PM');

    g_mail_conn UTL_SMTP. CONNECTION;

    SMTP_HOST CONSTANT VARCHAR2 (256): ='smtp - abc.defg.ca';

    SMTP_PORT CONSTANT PLS_INTEGER: = 25;

    BEGIN

    g_mail_conn: = UTL_SMTP. OPEN_CONNECTION (SMTP_HOST, SMTP_PORT);

    UTL_SMTP. HELO (g_mail_conn, SMTP_HOST);

    UTL_SMTP.mail (g_mail_conn, p_sender_email);

    UTL_SMTP. RCPT (g_mail_conn, p_to);

    UTL_SMTP.open_data (g_mail_conn);

    UTL_SMTP.write_data (g_mail_conn, "|) CRLF);

    UTL_SMTP.write_data (g_mail_conn, p_msg_body);

    UTL_SMTP.close_data (g_mail_conn);

    UTL_SMTP. Quit (g_mail_conn);

    EXCEPTION

    WHEN utl_smtp.transient_error THEN

    Dbms_output.put_line ('TransientError: invalid operation in the service may not be available.) ") ;

    WHEN utl_smtp.permanent_error THEN

    Dbms_output.put_line (' permanent error: the entered email is invalid or recepients mailbox is full.) ») ;

    WHILE others THEN

    Dbms_output.put_line ('Unable to send an email' |') '|| SQLERRM);

    END p_sendmail;

    [/ code]

    Now by calling the procedure to send an email:

    [code]

    p_sendmail (p_sender_email = > ' [email protected]'-, send an E-mail to the donor )

    p_from = > ' ADS < [email protected] > ',

    p_to = > v_store_email_address,

    p_msg_subject = > 'anonymous user ',.

    p_msg_body = > 'thank you ' |

    CRLF.

    "Email confirms that we have received your promise |

    CRLF.

    CRLF.

    ' Name: '. v_full_name |

    CRLF.

    ' Temporary ID: ' | v_azbwccp_id |

    CRLF.

    "Reference number: ' |" MTID |

    CRLF.

    "Amount: ' | '. TO_NUMBER (campaign_desg_amt1) |

    CRLF.

    "Campaign: ' | '. campaign |

    CRLF.

    ' Description: ' | '. adbdesg_rec.adbdesg_name |

    CRLF.

    ' Type: ' | atvpldg_rec.atvpldg_desc |

    CRLF.

    ' Duration: ' | '. atvpdur_rec.atvpdur_desc |

    CRLF.

    "Frequency: ' | '. atvfreq_rec.atvfreq_desc |

    CRLF.

    "Start date: ' | '. bill_date2 |

    CRLF.

    CRLF.

    'Your commitment is processed.' |

    CRLF.

    "At the same time, if you want to change this transaction, please contact us.

    CRLF.

    CRLF.

    "Thank you for your support." |

    CRLF.

    CRLF.

    CRLF.

    CRLF.

    ' * This is an automated message system. Please, do not respond to this email. *** ') ;

    [/ code]


    I've also attached a screenshot of the error message below:

    ScreenHunter_15 Nov. 27 09.35.jpg

    Please help me if you can. I just can't understand the question.


    Thanks in advance

    Sandeep

    In the header of the procedure, I spent my parameter as msg_subject and during the call, he was p_msg_subject. The minute that I corrected the error, I was able to correctly compile the whole package body.

    The question can be now closed.

  • PLS-00306: wrong number or types of arguments in the call to "TO_CHAR.

    Hi guys, I learn Pl/SQL. Writing a simple function which allows to calculate dates. It takes contract_date and determines the date of the following Sunday.

    My current code has the compile error: PLS-00306: wrong number or types of arguments in the call to 'TO_CHAR' which I believe has to do with the to_char (trunc(contract_date,'D')): = contract_weekday;

    I don't understand what the problem with my return it...

    Here is my code: thanks for any help!

    display errors

    create or replace FUNCTION
    contract_dates(contract_date in date)
    DATE OF RETURN
    IS

    starting_sunday DATE;
    -DATE of ending_saturday: = starting_sunday + 6;
    contract_weekday varchar (32);
    days_add NUMBER;

    BEGIN

    TO_CHAR (trunc(contract_date,'D')): = contract_weekday;

    case contract_weekday
    When 1 then days_add: = 6;
    When 2 then days_add: = 5;
    When 3 then days_add: = 4;
    When 4 then days_add: = 3;
    When 5 then days_add: = 2;
    When 6 then days_add: = 1;
    Another days_add: = 7;

    end case;


    starting_sunday: = contract_date + days_add;

    To_date (starting_sunday) RETURN;

    END;

    It is the reverse:

    CREATE OR REPLACE FUNCTION
    contract_dates(contract_date IN DATE)
    RETURN DATE
    IS
    
    starting_sunday DATE;
    --ending_saturday DATE := starting_sunday + 6;
    contract_weekday varchar(1);
    days_add NUMBER;
    
    BEGIN
    
     contract_weekday := to_char(trunc(contract_date,'D'));
    
    case contract_weekday
    when 1 then days_add := 6;
    when 2 then days_add := 5;
    when 3 then days_add := 4;
    when 4 then days_add := 3;
    when 5 then days_add := 2;
    when 6 then days_add := 1;
    else days_add := 7;
    
    end case;
    
    starting_sunday := contract_date + days_add;
    
    RETURN to_date(starting_sunday);
    
    END;
    
  • ApexExport 06550 PLS-00306: wrong number or types of arguments

    My work of ApexExort was running great until about a month and I can't pinpoint the problem.  If I run it in production, I get the following error.  However if I run it on my localhost even exact script works very well.

    Exception in thread "main" java.sql.SQLException: ORA-06550: line 2, column 12:

    PLS-00306: wrong number or types of arguments in the call to 'EXPORT_APPLICATION_TO_CLOB '.

    ORA-06550: line 2, column 5:

    Set ORACLE_HOME=C:\Oracle\product\11.2.0\dbhome_1

    set CLASSPATH = % CLASSPATH statement; \;%O RACLE_HOME%\jdbc\lib\ojdbc5.jar;%apexExportJavaDir%

    set PATH = % PATH %; \;%O RACLE_HOME%\Bin

    JAVAHOME value = C:\Program Files\Java\jdk1.8.0_45

    Set startRunLocation = \\mgasan2\hdrive\ATS_Working\Scott_Working\PROD_SCRIPTS\APEX_APP_BKUP

    CD C:\apex_4.2\utilities

    All applications to export REM

    Java oracle.apex.APEXExport - db %oracleHost%:%oraclePort%/%OracleServiceName%-utilisateur % oracleUser %-% oracleSystemPass %-forum password




    < gphmh >

    Thanks for your suggestion of Kiran, but I understood what my problem was.  The APEX version in our database is older: 4.1.1.00.23 and I have been using a version 4.2 utilities apex when I should have used the C:\apex_4.1.1_en\apex\utilities

    CD C:\apex_4.2\utilities

    C:\apex_4.1.1_en\apex\utilities


    For the record, here's what worked for me...


    Set apexExportJavaDir=C:\apex_4.1.1_en\apex\utilities

    Set apexHtmlFileName = apex_info.html

    BackupLocation = c:\PROD_SCRIPTS\APEX_APP_BKUP\OUTPUT\TEST set

    Set ORACLE_HOME=C:\Oracle\product\11.2.0\dbhome_1

    set CLASSPATH = % CLASSPATH statement; \;%O RACLE_HOME%\jdbc\lib\ojdbc5.jar;%apexExportJavaDir%

    set PATH = % PATH %; \; C:\Program Files (x 86) \Java\jre7\bin

    Set startRunLocation = c:\PROD_SCRIPTS\APEX_APP_BKUP

    FIXED % apexExportJavaDir %

    Java oracle.apex.APEXExport - db %oracleHost%:1521/%OracleServiceName%-utilisateur % oracleUser %-% oracleSystemPass %-forum password

  • PLS-00306: wrong number or types of arguments in the call to 'XXC_AMOUNT' ORA-06550

    Hi all

    CREATE OR replace PROCEDURE Xxc_amount (v_item_id IN NUMBER,

                                             v_amount  OUT NUMBER,

                                             v_size    OUT NUMBER)

    IS

      v_size   NUMBER := NULL;

    v_amount NOMBRE;

    START

        BEGIN

    CHOOSE conversion_rate

            INTO   v_size

    FROM mtl_uom_class_conversions

            WHERE  inventory_item_id = v_item_id -- 2289;

            v_amount := Nvl (Trunc (v_size), 0);

    -RETURN (cp_cartons);

        EXCEPTION

            WHEN OTHERS THEN

              v_size := 0;

              dbms_output . Put_line ()' Error getting Item Id:'| V_ITEM_ID );

        END ;

    dbms_output. Put_line ('Qty-->' || v_amount );

    dbms_output. Put_line ('Qty1-->'|| v_size );

    END ;

    DECLARE

        amount NUMBER;

        v_size NUMBER;

    START

        Xxc_amount (2289, amount, v_size);

    dbms_output. Put_line (amount || '--' || v_size );

    END ;

    ORA-06550: line 5, column 5:

    PLS-00306: wrong number or types of arguments in the call to 'XXC_AMOUNT '.

    ORA-06550: line 5, column 5:

    PL/SQL: Statement ignored

    Thank you

    Post edited by: 994122 changed the name of the procedure to Xxc_amount Xxc_amount1

    Simply remove the declarations of the v_size and v_amount and it should work.

    The following text compiles and works for me when I call:

    CREATE OR replace PROCEDURE Xxc_amount (v_item_id IN NUMBER,
                                            v_amount  OUT NUMBER,
                                            v_size    OUT NUMBER)
    IS
    BEGIN
        BEGIN
            SELECT conversion_rate
            INTO  v_size
            FROM  mtl_uom_class_conversions
            WHERE  inventory_item_id = v_item_id; -- 2289;
            v_amount := Nvl (Trunc (v_size), 0);
        --RETURN (cp_cartons);
        EXCEPTION
            WHEN OTHERS THEN
              v_size := 0;
              dbms_output.Put_line ('Error in Getting for Item Id :'|| v_item_id);
        END;
        dbms_output.Put_line ('Qty-->' || v_amount);
        dbms_output.Put_line ('Qty1-->'|| v_size);
    END;
    
    DECLARE
        amount NUMBER;
        v_size NUMBER;
    BEGIN
        Xxc_amount (2289, amount, v_size);
        dbms_output.Put_line (amount || '--' || v_size);
    END;
    
  • Nested Tables: PLS-00306: wrong number or types of arguments

    Hello

    I created a package for updating of wages for a list of the empnos passed as parameter inside below is the package code:

    CREATE or REPLACE PACKAGE method

    AS

    type emp_list IS TABLE OF emp.empno%type;

    PROCEDURE add_sal (empnos emp_list);

    END method;

    /

    CREATE or REPLACE PACKAGE body method

    AS

    PROCEDURE add_sal (empnos emp_list)

    AS

    BEGIN

    ForAll I IN 1... empnos. Count

    UPDATE emp SET sal = sal plus 100 WHERE empno is empnos (i);

    END add_sal;

    END method;

    /

    When I try to call the procedure to aid under block it works fine:

    DECLARE

    empnos emp_info.emp_list: = emp_info.emp_list (1111,1112);

    BEGIN

    emp_info.add_sal (empnos);

    END;

    /

    But when I try to create the same as type I created in the package and try to pass to the procedure, the block fails with the error:

    DECLARE

    type emp_list IS TABLE OF emp.empno%type;

    empnos emp_list;

    BEGIN

    empnos: = emp_list (1111,1112);

    emp_info.add_sal (empnos);

    END;

    /

    Error report-

    ORA-06550: line 8, column 3:

    PLS-00306: wrong number or types of arguments in the call to 'ADD_SAL '.

    Can someone please help me understand why we see this error?

    With the help of: Windows 8.1

    Database Oracle 12 c Enterprise Edition Release 12.1.0.1.0 - 64 bit Production

    PL/SQL Release 12.1.0.1.0 - Production

    "CORE 12.1.0.1.0 Production."

    AMT for 64-bit Windows: Version 12.1.0.1.0 - Production

    NLSRTL Version 12.1.0.1.0 - Production

    But when I try to create the same as type I created in the package and try to pass to the procedure, the block fails with the error:

    No - it is NOT of the same type. One is the type of package and this news isn't the type of packet.

    The fact that they have the same projection or a set of attributes is obsolete.

    See the Oracle documentation

    http://docs.Oracle.com/CD/B28359_01/AppDev.111/b28370/Collections.htm#BEIEADAA

    You can assign values to all fields at the same time that if you assign a record to another record with the same data type. With fields that match exactly isn't enough, as shown in example 5-48.

    Example 5-48 assigning all the fields of a record in a statement

    DECLARE
    -Two declarations of the same types.
    TYPE DeptRec1 IS MADE
    (dept_num NUMBER (2), dept_name VARCHAR2 (14));
    TYPE DeptRec2 IS MADE
    (dept_num NUMBER (2), dept_name VARCHAR2 (14));
    dept1_info DeptRec1;
    dept2_info DeptRec2;
    dept3_info DeptRec2;
    BEGIN
    -Is not allowed; different types of data,
    -even if the fields are the same.
    -dept1_info: = dept2_info;
    -This assignment is OK because the files have the same type.
    dept2_info: = dept3_info;
    END;
    /

  • ORA-06550, PLS-00306: wrong number or types of arguments in the call to ' |'

    Hi all

    Please help me about this error, if I comment the threshold (in the color of the thickness)

    ERROR on line 19:

    ORA-06550: line 19, column 25:

    PLS-00306: wrong number or types of arguments in the call to ' |'

    ORA-06550: line 19, column 3:

    PL/SQL: Statement ignored

    DECLARE

        TYPE nametable IS TABLE OF CHAR(10) INDEX BY BINARY_INTEGER;

        vname NAMETABLE

        CURSOR cf

        IS

          SELECT ename

            FROM emp;

        i     NUMBER;

    START

        OPEN cf;

        i := 1;

        LOOP

            FETCH cf INTO Vname (i);

            EXIT WHEN cf%NOTFOUND;

            i := i + 1;

        END LOOP;

        CLOSE cf;

    dbms_output. Put_line ('Name is ' || VNAME );

        FOR n IN 1.. VNAME . County LOOP

    dbms_output. Put_line ('Name is ' || VNAME (n));

        END LOOP;

    END ;


    Thank you

    VNAME is an associative array. You can not use in DBMS_OUTPUT. Put_line as such. You need to loop through what you did in the code after the DBMS_OUTPUT and print each element of the array individually.

  • PLS-00306: wrong number or types of arguments in the call to 'UPDATE_ORDER_NUMBER_SEQUENCE '.

    Hi Please help me solve the error given by this procedure

    TEXT

    --------------------------------------------------------------------------------

    PROCEDURE UPDATE_ORDER_NUMBER_SEQUENCE)

    sequenceName IN VARCHAR2,

    Inc. in full)

    AS

    stmt VARCHAR2 (2000);

    number of l_n;

    Start

    BEGIN

    -change the increment to Inc.

    stmt: = 'ALTER SEQUENCE | sequenceName | ' INCREMENT ' |

    Inc.;

    TEXT

    --------------------------------------------------------------------------------

    dbms_output.put_line (' execution "' | stmt |) '''');

    EXECUTE IMMEDIATE stmt;

    -Read the following value

    stmt: = "SELECT" | sequenceName | '. DOUBLE NEXTVAL ';

    dbms_output.put_line (' execution "' | stmt |) '''');

    EXECUTE IMMEDIATE stmt in l_n;

    -change the increment of 1

    stmt: = 'ALTER SEQUENCE | sequenceName | ' INCREMENT OF 1';

    dbms_output.put_line (' execution "' | stmt |) '''');

    EXECUTE IMMEDIATE stmt;

    EXCEPTION

    TEXT

    --------------------------------------------------------------------------------

    While some OTHER THEN dbms_output.put_line (SQLERRM);

    END;

    end UPDATE_ORDER_NUMBER_SEQUENCE;

    following error please help me solve this error

    ERROR on line 1:

    ORA-06550: line 1, column 7:

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

    'UPDATE_ORDER_NUMBER_SEQUENCE '.

    ORA-06550: line 1, column 7:

    PL/SQL: Statement ignored

    Well, the error message is pretty self-explanatory, isn't it? What you use

    to call this procedure actually raises this error.

    However, you have not posted the SQL that actually calls this procedure

    so please post that.

    That said, the whole procedure seems wrong - what business requirement is there for

    edit sequences? This isn't normally how they should be used.

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

    Hi all

    I m new to the pl sql, when I run the below block I get errors.

    kindly help me on this.

    DECLARE

    Siva ARRAY TYPE IS VARCHAR2 (100);

    s siva;

    Cur_i IS SELECT name FROM employee of CURSOR;

    BEGIN

    OPEN cur_i.

    LOOP

    SEEK cur_i s INTO;

    EXIT WHEN cur_i % NOTFOUND;

    DBMS_OUTPUT. Put_line (s);

    END LOOP;

    CLOSE Cur_i;

    END;


    I m getting the error below:

    PLS-00597: expression' in the INTO list has the wrong type

    PLS-00306: wrong number or types of arguments in the call to "PUT_LINE '.



    Hello

    I think that you are learning/exercises PL/SQL. See below the approach.

    declare

    siva type is table of the varchar2 (100);

    s siva;

    cursor cur_i is
    Select first_name from employees;

    Start

    Open cur_i;

    loop
    collect fetch cur_i in bulk
    s;
    When the output cur_i % notfound;
    end loop;

    close cur_i;

    -Printing values in the collection

    because me s.first... loop of s.Last
    dbms_output.put_line (s (i));
    end loop;

    end;

    Thank you

    Suri

    Post edited by: Suri

    Simple loop removed and exit when collecting conditions because we fetch all the records of a sudden in the collection using the bulk.

  • Iterating through a collection of cursor type give PLS-00306: wrong number or types of arguments in the call to "PUT_LINE '.

    I wrote the following anonymous block. He has a slider ""cur_total_tckt "who choose 6 columns."  A nested table 'total_tckt_colcn' is declared of type ""cur_total_tckt "."  In the dbms_output.put_line I want to print each item in my collection. It gives me the following error:

    PLS-00306: wrong number or types of arguments in the call to "PUT_LINE '.

    ORA-06550: line 29, column 2:

    PL/SQL: Statement ignored

    06550 00000 - "line %s, column % s:\n%s".

    I want to print all 6 columns of an element for 366 these elements.

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    DECLARE
    CURSOR cur_total_tckt    
      is
      select t.ticket_id ticket_id, t.created_date created_date, t.created_by created_by, t.ticket_status ticket_status,
      t.last_changed last_changed, h.created_date closed_date
      from n01.cc_ticket_info t
      inner join n01.cc_ticket_status_history h
      on (t.ticket_id = h.ticket_id)
      where t.last_changed >= '6/28/2012 17:28:59' and t.last_changed < (sysdate + interval '1' day);

    type total_tckt_colcn
    is
      TABLE OF cur_total_tckt%rowtype;
      total_tckt_col total_tckt_colcn;
      total_coach_col total_tckt_colcn;
    begin
    total_tckt_col := total_tckt_colcn ();
    total_coach_col := total_tckt_colcn ();
      OPEN cur_total_tckt;
      loop
      fetch cur_total_tckt bulk collect into total_tckt_col limit 100;

      dbms_output.put_line(total_tckt_col.last);

      FOR i IN total_tckt_col.first..total_tckt_col.last
      loop

      -- dbms_output.put_line(total_tckt_col(i).ticket_id);          -- this line works
      dbms_output.put_line(total_tckt_col(i));                       -- this line gives error

      END LOOP;

      exit
      WHEN (cur_total_tckt%NOTFOUND);

      END LOOP ;
      CLOSE cur_total_tckt; 




    end;

    making reference to an element differs from the reference to a field in the record that is part of the collection.

    'dbms_output.put_line (total_tckt_col (i))' works if there is only a single element.

    will not work if this element has subcomponents. in your case it has subcomponents as fields in a record.

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

    Hello

    SQL> select * from v$version
      2  /
    
    BANNER
    ----------------------------------------------------------------
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
    PL/SQL Release 10.2.0.1.0 - Production
    CORE    10.2.0.1.0      Production
    TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
    NLSRTL Version 10.2.0.1.0 - Production
    

    Code

    DECLARE
    TYPE SARR IS TABLE OF VARCHAR2(8);
    l_tempdate SARR;
    l_temptable VARCHAR2(30) := 'TBL_EDATE';
    BEGIN
    EXECUTE IMMEDIATE ' SELECT FORMATDATE  BULK COLLECT INTO ' || l_tempdate || ' FROM  ' || l_temptable;
    END;
    /
    

    Error

    ERROR at line 6:
    ORA-06550: line 6, column 19:
    PLS-00306: wrong number or types of arguments in call to '||'
    ORA-06550: line 6, column 1:
    PL/SQL: Statement ignored
    

    TABLE (it will create dynamically)

    CREATE TABLE TBL_EDATE
    (
      FORMATDATE       VARCHAR2(8 BYTE),
      ORDERFORMATDATE  NUMBER
    )
    

    Insert Scripts

    Insert into TBL_EDATE   (FORMATDATE, ORDERFORMATDATE) Values   ('H2-2012', 2);
    Insert into TBL_EDATE   (FORMATDATE, ORDERFORMATDATE) Values   ('H1-2012', 1);
    
    

    Thank you

    Well, you asked?

    SQL > declare

    2 type sarr is table of the varchar2 (8);

    3 l_tempdate sarr;

    4 l_temptable varchar2 (30);

    5 str varchar2 (100);

    6 start

    7 - l_temptable: = get_temp_table_name (some arg); -logical, you must be knowing

    8 l_temptable: = "TBL_EDATE"; -Suspected function returned this value

    9 str: = ' Select format of ' | l_temptable | » ';

    10 run immediately str bulk collect into l_tempdate;

    11 dbms_output.put_line ('count' | l_tempdate.) (Count);

    12 end;

    13.

    County 2

    PL/SQL procedure successfully completed.

  • Strange PLS-00306: wrong number or types of arguments

    We have the code in production and testing. the dbs, the servers are the same configuration. And two codes are the same (checked).

    Now all of a sudden the code on production for lack of sinus yesterday afternoon:

    BEGIN REQUEST_API. DBSS_process_FUDS; END;

    *
    ERROR on line 1:
    ORA-06550: line 1, column 93:
    PLS-00306: wrong number or types of arguments in the call to 'PROCESS_FUDS '.
    ORA-06550: line 1, column 93:
    PL/SQL: Statement ignored
    ORA-06512: at "SYS." Dbms_job", line 82
    ORA-06512: at "SYS." Dbms_job", line 140
    ORA-06512: at "ER. REQUEST_API', line 1190
    ORA-06512: at line 1

    Just with the test, it still works OK.

    Any idea? How can watch us?

    Thank you very much!

    The code can be the same (but you're not presenting the we a, then there's going to have to trust you on this), but what about data?
    And: are SQL * more guests of the same version as well?

    PLS-00306: wrong number or types of arguments in the call to 'string. '

    Cause: This error occurs when the named subprogram call cannot be matched to any statement for this subprogram name. Routine name can be spelled, a parameter can have the wrong data type, the statement may be defective or the statement may be
    placed correctly in the block structure. For example, this error occurs if the built-in square root SQRT function is called with a misspelled name or a parameter of the wrong data type.

    Action: Check the spelling and declaration of the name of routine. Also confirm that his appeal is correct, its parameters are of the right type of data, and, if it is not a built-in, that his statement is placed correctly in the block structure.

  • PLS-00306: wrong number or types of arguments

    Hey,.

    I create a function for concate varchar to BLOB.

    MyTableType TYPE to CREATE or REPLACE in the table the varchar2 (4000);

    CREATE OR REPLACE FUNCTION F_VARCHAR_TO_BLOB (input_table_of_varchar myTableType) RETURN BLOB
    PRAGMA AUTONOMOUS_TRANSACTION;
    v_blob BLOB;
    BEGIN
    BECAUSE me IN 1.input_table_of_varchar. COUNTY
    LOOP
    v_blob: = v_blob | input_table_of_varchar (i);
    END LOOP;
    V_blob RETURN;
    END;

    Now, when compiling the function, I get the following error:
    7/12 PLS-00306: wrong number or types of arguments in the call to ' |'

    Can someone please check what I'm doing wrong here.

    Concerning
    EPATVIS

    You can do as

    insert into table_with_blob
    select blob,..
    from table@dblink
    

    http://asktom.Oracle.com/pls/Apex/f?p=100:11:0:P11_QUESTION_ID:696224943687
    http://asktom.Oracle.com/pls/asktom/f?p=100:11:0:P11_QUESTION_ID:5322964030684

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

    Hello

    I get this error when I run the script to test below:
    < font color = "red" >
    PLS-00306: wrong number or types of arguments in the call to 'SPLIT_AMOUNT '.
    < / make >

    This script is to test that the package below that I wrote. It seems to use the same 9 parameters of the same type:

    TEST SCRIPT+ *.
    declare
      TYPE g_table_number  IS TABLE OF  NUMBER INDEX BY BINARY_INTEGER;
      p_customer_trx_ids        g_table_number;
      p_total_amount_to_apply   NUMBER := 10;
      p_total_amount_to_adjust  NUMBER;  
       --
      p_result                  NUMBER;
      p_message                 VARCHAR2(200);
      p_payment_schedule_ids    g_table_number;
      p_terms_sequence_numbers  g_table_number;
      p_apply_amounts           g_table_number;
      p_adjust_amounts          g_table_number;
    begin
      p_customer_trx_ids(1)        := 23613;
      p_customer_trx_ids(2)        := 23614;
     hirap.split_amount
      (
       p_customer_trx_ids        
      ,p_total_amount_to_apply   
      ,p_total_amount_to_adjust 
      ,p_result                  
      ,p_message                
      ,p_payment_schedule_ids   
      ,p_terms_sequence_numbers 
      ,p_apply_amounts          
      ,p_adjust_amounts         
      );
      for i IN p_customer_trx_ids.FIRST .. p_customer_trx_ids.LAST LOOP
        dbms_output.put_line( 
        i || ' p_customer_trx_id: ' || p_customer_trx_ids (i) || ' p_apply_amounts(i): ' ||
         p_apply_amounts(i) || ' p_adjust_amounts: ' || p_adjust_amounts(i) );
      END LOOP;
    end;
    /
    PACKAGE+ *.
    CREATE OR REPLACE PACKAGE hirap
    AS
    TYPE g_table_number  IS TABLE OF  NUMBER INDEX BY BINARY_INTEGER;
    
    PROCEDURE split_amount
      (
       p_customer_trx_ids        IN   g_table_number
      ,p_total_amount_to_apply   IN   NUMBER
      ,p_total_amount_to_adjust  IN   NUMBER
       --
      ,p_result                  OUT  NUMBER
      ,p_message                 OUT  VARCHAR2
      ,p_payment_schedule_ids    OUT  g_table_number
      ,p_terms_sequence_numbers  OUT  g_table_number
      ,p_apply_amounts           OUT  g_table_number
      ,p_adjust_amounts          OUT  g_table_number
      );
    
    END hirap;
    /
    
    CREATE OR REPLACE PACKAGE BODY hirap
    AS
    PROCEDURE split_amount
      (
       p_customer_trx_ids        IN   g_table_number
      ,p_total_amount_to_apply   IN   NUMBER
      ,p_total_amount_to_adjust  IN   NUMBER
       --
      ,p_result                  OUT  NUMBER
      ,p_message                 OUT  VARCHAR2
      ,p_payment_schedule_ids    OUT  g_table_number
      ,p_terms_sequence_numbers  OUT  g_table_number
      ,p_apply_amounts           OUT  g_table_number
      ,p_adjust_amounts          OUT  g_table_number
      )
    IS
      l_total_pay_sched_amount   NUMBER;
      l_customer_trx_id          NUMBER;
      l_amount_due_remainings    g_table_number;
    
      CURSOR pay is
            SELECT p.payment_schedule_id
                  ,p.terms_sequence_number
                  ,p.amount_due_remaining
            FROM   ar_payment_schedules_all p
            WHERE  customer_trx_id = l_customer_trx_id
            AND    p.terms_sequence_number =
                  (SELECT  min(p1.terms_sequence_number)
                   FROM    ar_payment_schedules_all p1
                   WHERE   p1.customer_trx_id = l_customer_trx_id
                   AND     p1.status          = 'OP'
                  );
    
    
    BEGIN
      p_result := 0; -- means OK
    
      -- read the payment schedule for each transaction and store values and totals:
      FOR i IN p_customer_trx_ids.FIRST .. p_customer_trx_ids.LAST LOOP
        l_customer_trx_id          := p_customer_trx_ids(i);
        l_total_pay_sched_amount   := 0;
          BEGIN
            OPEN  pay;
            FETCH pay INTO
                   p_payment_schedule_ids(i)
                  ,p_terms_sequence_numbers(i)
                  ,l_amount_due_remainings(i);
    
            CLOSE pay;
            l_total_pay_sched_amount   := l_total_pay_sched_amount + l_amount_due_remainings(i);
         
          EXCEPTION WHEN NO_DATA_FOUND THEN
            fnd_file.put_line(fnd_file.LOG, 'Transaction does not exist for CUSTOMER_TRX_ID: ' ||
                              p_customer_trx_ids(i) );
            RAISE;
          WHEN OTHERS THEN
              RAISE;
          END;
      END LOOP;
    
      -- save values for each payment schedule based on total
      FOR i IN p_customer_trx_ids.FIRST .. p_customer_trx_ids.LAST LOOP
        p_apply_amounts(i)         := round
                                        (
                                         l_amount_due_remainings(i) / l_total_pay_sched_amount
                                         * (p_total_amount_to_apply + p_total_amount_to_adjust)
                                         , 2
                                        );
        p_adjust_amounts(i)        := l_amount_due_remainings(i) - p_apply_amounts(i);
    
      END LOOP;
    
    EXCEPTION
      WHEN OTHERS THEN
        p_result := 2;
        p_message := 'SQLCODE= ' || SQLCODE || ', SQLERRM = ' || SQLERRM;
        fnd_file.put_line( fnd_file.LOG , TO_CHAR(SYSDATE, 'HH24:MI:SS') || ' - ' || p_message );
    END;
    --
    END hirap;
    /
    Does anyone know what is the problem?

    Thank you
    Steve

    Hi, Steve,.

    The package contains a data type called g_table_number and also a procedure called split_amount.
    That does not create another data type (different), also called g_table_number, outside of the package, any more that it prevents you from creating another procedure, also called split_amount, also. When you want to reference the data type or the procedure outside the package from the package, then you must prefix the name with the name of the package. You do this correctly when you reference the name of the procedure of your anonymous block:

     hirap.split_amount
      (
       p_customer_trx_ids     ...
    

    Now you must do the same when you reference the data type:

    declare
      p_customer_trx_ids        hirap.g_table_number;
      p_total_amount_to_apply   NUMBER := 10;
      p_total_amount_to_adjust  NUMBER;
       --
      p_result                  NUMBER;
      p_message                 VARCHAR2(200);
      p_payment_schedule_ids    hirap.g_table_number;
      p_terms_sequence_numbers  hirap.g_table_number;
      p_apply_amounts           hirap.g_table_number;
      p_adjust_amounts          hirap.g_table_number;
    begin ...
    

    If you do not create another type of (different) data outside of the package, it will be the same as the type of data inside the packaging, even if the name is the same and they are defined in the same way. The package expects the arguments of the type hirap.g_table_number, so you have to give the hirap.g_table_number of type arguments.

Maybe you are looking for

  • AutoPlay in YouTube playlists doesn't work with HTML5, it works with extensions disabled

    I noticed that lately turn on autoplay in YouTube playlists does not work when you use the HTML5 player. Instead of jumping to the next video, the video finished playing and instead of the "replay" button, there is a normal play button, if I can play

  • How to make the State "out-of-box' again on my Satellite L653-12J

    Hello I have been in charge of research and following the instructions but all have failed.I'm selling my Toshiba Satellite computer laptop L653-12J with Windows 7 and I would like to clean the hard drive of all the data added to have it back to its

  • Connection to the computer

    When I connect my Touchpad on my computer fine. I can see it from my connected legacy. The problem comes when the time comes to eject it from the computer. I eject it as I'm supposed to. The computer says that it is now safe to remove my legacy of We

  • Reloaded cartridges. They are worth?

    Everyone likes to save money, and nothing beats a good deal.  But when it comes to cartridge refills, you might not receive the deal you thought you were. When it comes to performance other ink cartridges could be found without.  Old ink residue can

  • root of Windows System 32 ntosknl exe

    the son got a new laptop for Christmas and took his old of all records but now when I try to start the old place it says it's missing (windows 32 exe ntosknl root system) any ideas were I get this to replace. I had to go through the ghost system down