PLS-00302: component 'CHAIN' must be declared

Hello together,

I'm new to PL/SQL. I have the following problem.

I get the following errors in Oracle 10 g R2:

256/18-PLS-00597: expression "PRUEFE_TAB" in the list IS evil
type

263/13 PL/SQL: statement ignored
263/27-PLS-00302: component 'ENDDATUM' must be declared

In the following Code Snnipet, I have demolished all (IMO) Code unrelevant.
    procedure pruefe_wiederaufsetzpunkt(procname_p in varchar2, datenherkunft_p in number, returncode_p out number, 
                                        import_wiederauf_p out date) as

        cursor pruefe_cur (procname_cp varchar2, datenherkunft_cp number) is
        select proc.wiederauf_id as wiederauf_id,
               proc.procname as procname,
               proc.import_id as import_id,
               proc.startdatum as startdatum,
               proc.enddatum as enddatum,
               proc.wiederaufdatum as wiederaufdatum,
               lead(proc.enddatum) over (order by wiederauf_id desc) as next_enddatum,
               lead(proc.wiederauf_id) over (order by wiederauf_id desc) as next_wiederauf_id,
               imp.import_von as import_von
        from bws_odsimp_proc proc
             inner join bws_import_auftrag imp
             on (proc.import_id = imp.import_id) 
        where proc.procname = procname_cp
        and proc.datenherkunft = datenherkunft_cp
        order by wiederauf_id desc;
        
        type pruefe_type is table of pruefe_cur%rowtype;
        pruefe_tab pruefe_type; 

    begin
        open pruefe_cur(procname_p, datenherkunft_p);
        loop
            fetch pruefe_cur
            into pruefe_tab;
...
                 if pruefe_tab.enddatum is null then
...
            end if;            
        end loop;
        close pruefe_cur;        
    end pruefe_wiederaufsetzpunkt;
Now, I'll tell you what I think that what the code:

I think I declare an array of the type of the cursor. Then I get in a loop for each row of an execution in the set table. And later I want to get 'access' cervical 'ENDDATUM' in my line retrieved information

Can someone helpl me to find the right way for this?

Thank you very much

concerning

Published by: user10283133 on 28.10.2008 04:21

Try directly declaring the variable rather than by defining the type declaring the variable as below:

pruefe_tab pruefe_cur % rowtype;

Tags: Database

Similar Questions

  • PLS-00302: component 'ADD_DATATYPE_INDEX' must be declared.

    Hello guys,.
    I'm trying to add a data type index to my semantic network to explore search in full text on RDF describes the data.
    But facing the following error I would like to ask for help if someone can make a suggestion how can I fix this problem.
    Thanks in advance!

    SQL > show user
    The USER is "SYS".
    SQL > EXECUTE SEM_APIS. ADD_DATATYPE_INDEX ('http://xmlns.oracle.com/rdf/text');
    BEGIN SEM_APIS. ADD_DATATYPE_INDEX ('http://xmlns.oracle.com/rdf/text'); END;

    *
    ERROR on line 1:
    ORA-06550: line 1, column 16:
    PLS-00302: component 'ADD_DATATYPE_INDEX' must be declared.
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored
    --------

    In addition, I conducted the following audits:
    SQL > SELECT STATUS FROM DBA_OBJECTS WHERE OBJECT_NAME = 'SEM_APIS ';

    STATUS

    VALID

    Published by: 913830 on February 14, 2012 11:41

    Published by: 913830 on February 14, 2012 11:48

    You must upgrade your database to 11.2.0.2.0 or 11.2.0.3.0 to get the support of text indexing. Two updates should be available through My Oracle Support. 11.2.0.3.0 contains a native support for named graphs.

    Thank you
    Matt

  • adpatch fails with PLS-00302: component 'INITIALIZE_WITH_CALENDAR' must be

    Hi guru...

    This is my first post. I'm a new dba.

    When applying adpatch, I get the below error. Help, please. It's on r12.

    About to make treatment of PIR...

    Attempting to process files of PIR...

    AutoPatch error:
    Error in adusnapRunAdPostPatch() during the execution of statement

    AutoPatch error:
    ORA-06550: line 1, column 16:
    PLS-00302: component 'INITIALIZE_WITH_CALENDAR' must be declared.
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored
    ORA-06512: at the 'APPS '. FND_GLOBAL', line 413
    ORA-06512: at the 'APPS '. FND_GLOBAL', line 2272
    ORA-06512: at the 'APPS '. FND_GLOBAL', line 2546
    ORA-06512: at the 'APPS '. FND_GLOBAL', line 2698
    ORA-06512: at the 'APPS '. FND_GLOBAL', line 2636
    ORA-06512: at the 'APPS '. FND_ADPATCH", line 53
    ORA-06512: at line 3 level


    There was an error processing the files of the IREP, continues...

    Treatment is PIR.

    Thank you...

    I'm going to recreated the FND_DATE packages, in accordance with the rating? -What helps?

    If it is higher, then it can be useful - please make a backup of the current package code before recreating then re - apply the patch.

    Thank you
    Hussein

  • PLS-00302: component must be declared.

    Hi all

    As a user MEXX, I created the following procedure... I can able to execute the procedure... When I give debugging, run on this proc to user test1 prov... get the error:

    PLS-00302: component '. D_COMMAND' must be declared
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored

    the user test1 has all the necessary rights on the tables EIM_EXECUTED_COMMANDS, EIM_COMMAND_RECORD and the sequence spc_trans... I created synonyms private for all that it opposes in the test1 schema...
    CREATE OR REPLACE PROCEDURE MEXX.D_COMMANDS AS
    PRAGMA AUTONOMOUS_TRANSACTION;
    CURSOR CR_MJI_SIN IS
    SELECT sno, cno, iumber  FROM TEST1.m_mca;
      C_SUBNO VARCHAR2 (20);
      C_CARDNO VARCHAR2 (12);
      C_IMSI_NUMBER VARCHAR2 (30);
      TRANSNO1 NUMBER (8);
        BEGIN
      OPEN CR_SMS_SUB;
      LOOP
        FETCH CR_SMS_SUB INTO C_SUBNO,C_CARDNO,C_IMSI_NUMBER;
        EXIT WHEN CR_SMS_SUB%notfound;
       SELECT  spc_trans.NEXTVAL INTO TRANSNO1 FROM DUAL;
       INSERT INTO EIM_COMMAND_RECORD ( SUBSCR_TYPE, AREA, SUBNO, SERORDNO, TRANSNO, EXC, EXCSYSTEM,
                  PORTNO, SPC_FUNCTION, APPDATE, NXTROUTINE, RETRANSMIT, TRANSSTATUS, EQUIPID, SOTYPE, CARDNO, CARD_TYPE)
            VALUES ( 'G', '0', C_SUBNO, NULL , TRANSNO1, 'GSM1', 'GSM1', '1', 'SERI', sysdate, 'SPC001', 'Y', 10, 'MCA' , 66, C_CARDNO, 'PLI');
       INSERT INTO EIM_EXECUTED_COMMANDS ( TRANSNO, CMDNO, COMMAND, TIMEOUT)
            VALUES (TRANSNO1, 1, 'ADD MCA FOR '||C_SUBNO||' USING (IMSINO='||C_IMSI_NUMBER||')', 30);
      END LOOP;
      CLOSE CR_SMS_SUB;
      COMMIT;
    EXCEPTION
    WHEN OTHERS THEN
          raise_application_error(-20001,'An error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM);
    END;
    /
    Thank you
    Kai

    Hi Kai,

    That's true, then, that you have an object in the schema TEST1 called MEXX?

    If so, I guess you can

    Drop that
    or
    Rename that
    or
    Create synonm private TEST1. D_COMMAND for MEXX. D_COMMAND
    or (my favorite)
    declare D_COMMAND within a packet, instead

    Concerning
    Peter

  • Component 'ACTION' must be declared

    Hi all

    Oracle version: 12 c.

    I am trying to create a trigger on a history table.

    Here is the description of the tables,

    Main table:

    create table CASES

    (

    case_id NUMBER (14) not null,

    case_number VARCHAR2 (50) not null,

    judgement_date DATE,

    account_ID NUMBER (14) not null,

    case_status_reason_id NUMBER (14) not null,

    case_status_id NUMBER (14) not null,

    evidence_pkg_file_name VARCHAR2 (200),

    evidence_pkg_generation_date DATE,

    hearing_date DATE not null,

    record_version NUMBER (9) default 0,

    created_by VARCHAR2 (50) by default of the USER.

    Date_Created DATE default SYSDATE,

    Modified_By VARCHAR2 (50) by default of the USER.

    Date_Modified DATE default SYSDATE,

    POSTED VARCHAR2 (200),

    vehicle_owner_id NUMBER (14).

    hearing_loc_id NUMBER (6).

    evidence_pkg_location_path VARCHAR2 (250)

    )

    History table:

    create the table CASES_H

    (

    case_id NUMBER (14) not null,

    case_number VARCHAR2 (50) not null,

    judgement_date DATE,

    account_ID NUMBER (14) not null,

    case_status_reason_id NUMBER (14) not null,

    case_status_id NUMBER (14) not null,

    evidence_pkg_file_name VARCHAR2 (200),

    evidence_pkg_generation_date DATE,

    hearing_date DATE not null,

    revision_number NUMBER (14) not null,

    record_version NUMBER (9) default 0,

    created_by VARCHAR2 (50) by default of the USER.

    Date_Created DATE default SYSDATE,

    Modified_By VARCHAR2 (50) by default of the USER.

    Date_Modified DATE default SYSDATE,

    POSTED VARCHAR2 (200),

    vehicle_owner_id NUMBER (14).

    hearing_loc_id NUMBER (6).

    evidence_pkg_location_path VARCHAR2 (250)

    )

    Trigger code:

    CREATE OR REPLACE TRIGGER CASE$ H

    AFTER INSERT, DELETE OR UPDATE ON TAG_OWNER. CASE

    REFERENCING OLD AS OLD AGAIN AS NEW

    FOR EACH LINE

    DECLARE

    L_OLD_REV CASES_H.REVISION_NUMBER%TYPE;

    L_CH CASES_H % ROWTYPE;

    L_NEW BOOLEAN;

    BEGIN

    IF DBMS_REPUTIL. FROM_REMOTE = TRUE THEN

    -TRIGGER'S ALREADY SHOT WITH A REMOTE DATABASE

    RETURN; -RELEASE OF THE TRIGGER

    END IF;

    BEGIN

    SELECT MAX (REVISION_NUMBER)

    IN L_OLD_REV

    OF CASES_H

    WHERE CASE_ID = COALESCE(:OLD.) CASE_ID,: NEW. CASE_ID);

    L_OLD_REV: = NVL (L_OLD_REV, 0);

    EXCEPTION

    WHEN NO_DATA_FOUND THEN

    L_OLD_REV: = 0;

    END;

    CASE

    WHEN INSERTING CAN

    L_CH. ACTION: = "INSERT."

    L_NEW: = TRUE;

    UPDATE THEN

    L_CH. ACTION: = "UPDATE";

    L_NEW: = TRUE;

    ON THE OTHER

    L_CH. ACTION: = "DELETE";

    L_NEW: = FALSE;

    END CASE;

    IF L_NEW THEN

    L_CH. CASE_ID: =: NEW. CASE_ID;

    L_CH. CASE_NUMBER: =: NEW. CASE_NUMBER;

    L_CH. JUDGEMENT_DATE: =: NEW. JUDGEMENT_DATE;

    L_CH. ACCOUNT_ID: =: NEW. ACCOUNT_ID;

    L_CH. CASE_STATUS_REASON_ID: =: NEW. CASE_STATUS_REASON_ID;

    L_CH. CASE_STATUS_ID: =: NEW. CASE_STATUS_ID;

    L_CH. EVIDENCE_PKG_FILE_NAME: =: NEW. EVIDENCE_PKG_FILE_NAME;

    L_CH. EVIDENCE_PKG_GENERATION_DATE: =: NEW. EVIDENCE_PKG_GENERATION_DATE;

    L_CH. HEARING_DATE: =: NEW. HEARING_DATE;

    L_CH. REVISION_NUMBER: = L_OLD_REV;

    L_CH. RECORD_VERSION: =: NEW. RECORD_VERSION;

    L_CH. CREATED_BY: = NVL(:NEW.) CREATED_BY, USER);

    L_CH. DATE_CREATED: = NVL(:NEW.) DATE_CREATED, SYSDATE);

    L_CH. MODIFIED_BY: = NVL(:NEW.) MODIFIED_BY, USER);

    L_CH. DATE_DE_MODIFICATION: = NVL(:NEW.) DATE_MODIFIED, SYSDATE);

    L_CH. POSTED: =: NEW. POSTED;

    L_CH. VEHICLE_OWNER_ID: =: NEW. VEHICLE_OWNER_ID;

    L_CH. HEARING_LOC_ID: =: NEW. HEARING_LOC_ID;

    L_CH. EVIDENCE_PKG_LOCATION_PATH: =: NEW. EVIDENCE_PKG_LOCATION_PATH;

    ON THE OTHER

    L_CH. CASE_ID: =: OLD. CASE_ID;

    L_CH. CASE_NUMBER: =: OLD. CASE_NUMBER;

    L_CH. JUDGEMENT_DATE: =: OLD. JUDGEMENT_DATE;

    L_CH. ACCOUNT_ID: =: OLD. ACCOUNT_ID;

    L_CH. CASE_STATUS_REASON_ID: =: OLD. CASE_STATUS_REASON_ID;

    L_CH. CASE_STATUS_ID: =: OLD. CASE_STATUS_ID;

    L_CH. EVIDENCE_PKG_FILE_NAME: =: OLD. EVIDENCE_PKG_FILE_NAME;

    L_CH. EVIDENCE_PKG_GENERATION_DATE: =: OLD. EVIDENCE_PKG_GENERATION_DATE;

    L_CH. HEARING_DATE: =: OLD. HEARING_DATE;

    L_CH. REVISION_NUMBER: = L_OLD_REV;

    L_CH. RECORD_VERSION: =: OLD. RECORD_VERSION;

    L_CH. CREATED_BY: = NVL(:OLD.) CREATED_BY, USER);

    L_CH. DATE_CREATED: = NVL(:OLD.) DATE_CREATED, SYSDATE);

    L_CH. MODIFIED_BY: = NVL(:OLD.) MODIFIED_BY, USER);

    L_CH. DATE_DE_MODIFICATION: = NVL(:OLD.) DATE_MODIFIED, SYSDATE);

    L_CH. POSTED: =: OLD. POSTED;

    L_CH. VEHICLE_OWNER_ID: =: OLD. VEHICLE_OWNER_ID;

    L_CH. HEARING_LOC_ID: =: OLD. HEARING_LOC_ID;

    L_CH. EVIDENCE_PKG_LOCATION_PATH: =: OLD. EVIDENCE_PKG_LOCATION_PATH;

    END IF;

    L_CH. REVISION_NUMBER: = L_OLD_REV + 1;

    -Insert in the history table

    INSERT INTO L_CH VALUES CASES_H;

    END CASE$ H;

    I get the error below

    Component 'ACTION' must be declared

    Component 'ACTION' must be declared

    Component 'ACTION' must be declared

    Try to find what exactly could be the problem but hard of luck so far.

    Ask for help.

    THX

    Shan!

    You define l_ch as cases_h % rowtype. The cases_h table doesn't have a column 'action', yet in three places, that you try to give a value to l_ch.action. l_ch.action is not defined, as the compiler points out.

    So either use a different flag (similar to what you are doing with l_new), or change your historical table and add a column of action.

  • PLS-00201: identifier 'NVL2' must be declared.

    I came across a scenario where I saw that NVL2 is a PL/SQL function, but when I tried to use this function directly with plsql variable it gives me error. Although it is find a job within SQL.

    Here is the example I'm writing his strange behavior I see.

    I'm under banner PL/SQL Release 11.2.0.4.0 - Production

    SQL> --See when we use NVL2 within SQL it works fine
    SQL> select nvl2('IamNotNull', 'IamForNotNull', 'IamForNull') for_not_null
      2            ,nvl2(null, 'IamForNotNull', 'IamForNull') for_null
      3  from dual;
    
    
    FOR_NOT_NULL  FOR_NULL
    ------------- ----------
    IamForNotNull IamForNull
    
    
    SQL> --Problem occurs when we assign the resultant directly into variable in anonymous block
    SQL> declare
      2      for_not_null varchar2(200);
      3  begin
      4      for_not_null :=NVL2('IamNotNull', 'IamForNotNull', 'IamForNull');
      5  end;
      6  /
        for_not_null :=NVL2('IamNotNull', 'IamForNotNull', 'IamForNull');
                       *
    ERROR at line 4:
    ORA-06550: line 4, column 20:
    PLS-00201: identifier 'NVL2' must be declared
    ORA-06550: line 4, column 5:
    PL/SQL: Statement ignored
    
    
    
    
    SQL>
    

    Spear says:

    But I had look at Oracle self-documenting and it was not clear that NVL2 is SQL fucntion.

    Weird, because I just searched documentation, and the first that says NVL2 in the context of the PL/SQL language was all NVL2 hits were either programming language SQL or OLAP expression reference: http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/fundamentals.htm#LNPLS00212

    which clearly states that the NVL2 is not available in PL/SQL.

  • PLS-00201: identifier 'i' must be declared when using BULK COLLECT with FORALL to insert data in 2 tables?

    iHi.

    Declare
       cursor c_1
       is
        select col1,col2,col3,col4
        from table1
    
    
       type t_type is table of c_1%rowtype index by binary_integer;
       v_data t_type;
    BEGIN
       OPEN c_1;
       LOOP
          FETCH c_1 BULK COLLECT INTO v_data LIMIT 200;
          EXIT WHEN v_data.COUNT = 0;
          FORALL i IN v_data.FIRST .. v_data.LAST
             INSERT INTO xxc_table
               (col1,
                col3,
                col4
               )
                SELECT v_data (i).col1,
                       v_data (i).col3,
                       v_data (i).col4
                  FROM DUAL
                 WHERE NOT EXISTS
                              (SELECT 1
                                 FROM xxc_table a
                                WHERE col1=col1
                                      .....
                              );
                         --commit;
             INSERT INTO xxc_table1
               (col1,
               col2,
              col3,
              col4
               )
                SELECT v_data (i).col1,
                       v_data (i).col2,
                       v_data (i).col3,
                       'Y'
                  FROM DUAL
                 WHERE NOT EXISTS
                              (SELECT 1
                                 FROM xxc_table1 a
                                WHERE col1=col1
          .....
         );
    
    
           --exit when c_1%notfound;
       END LOOP;
       CLOSE c_1;
       commit;
    END;
    
    
    
    
    
    
    
    

    I get 40/28-PLS-00201: identifier 'I' must be declared what the problem in the above code please help me and I have lakhs of data

    Thank you

    Post edited by: Rajesh123 I changed IDX

    Post edited by: Rajesh123 changed t_type c_1 in Fetch

    But by using a SET of INSERT to insert into two tables at once in the same query would do the job without any collection of bulk of PL and avoid to query two times too.

    for example, as a single INSERT...

    SQL > create table table1 as
    2. Select 1 as col1, col2 of 1, 1 as col3, 1 as col4 Union double all the
    3 select 2,2,2,2 of all the double union
    4 Select 3,3,3,3 Union double all the
    5 Select 4,4,4,4 of all the double union
    6 select 5,5,5,5 of all the double union
    7 select 6,6,6,6 of all the double union
    8 select 7,7,7,7 of all the double union
    9 select 8,8,8,8 of all the double union
    10. Select 9,9,9,9 to the Union double all the
    11. Select double 10,10,10,10
    12.

    Table created.

    SQL > create table xxc_table like
    2. Select 1 as col1, col3 2, 3 as col4 Union double all the
    3. Select the 3, 4, 5 Union double all the
    4. Select the 5, 6, 7 double
    5.

    Table created.

    SQL > create table xxc_table1 like
    2. Select 3 as col1, col2, col3, 5 4 "n" as col4 Union double all the
    3. Select the 6, 7, 8, double "n"
    4.

    Table created.

    SQL > insert all
    2 when the xt_insert is null then
    3 in xxc_table (col1, col3, col4)
    4 values (col1, col3, col4)
    5 when the xt1_insert is null then
    6 in xxc_table1 (col1, col2, col3, col4)
    7 values (col1, col2, col3, 'Y')
    8. Select t1.col1 t1.col2, t1.col3, t1.col4
    9, xt.col1 as xt_insert
    10, xt1.col1 as xt1_insert
    11 from table1 t1
    12 left join external xxc_table xt (t1.col1 = xt.col1)
    13 left xt1 xxc_table1 outer join (t1.col1 = xt1.col1)
    14.

    15 rows created.

    SQL > select * from xxc_table by 1.
    COL1 COL3 COL4
    ---------- ---------- ----------
    1          2          3
    2          2          2
    3          4          5
    4          4          4
    5          6          7
    6          6          6
    7          7          7
    8          8          8
    9          9          9
    10-10-10

    10 selected lines.

    SQL > select * from xxc_table1 by 1.

    COL1 COL2 COL3 C
    ---------- ---------- ---------- -
    1          1          1 Y
    2          2          2 Y
    3          4          5 N
    4          4          4 Y
    5          5          5 Y
    6          7          8 N
    7          7          7 Y
    8          8          8 Y
    9          9          9 Y
    10-10-10

    10 selected lines.

    SQL >

  • Bogged down with PLS-00201: identifier 'P_ERR_MESSAGE1' must be declared

    I'm trying to capture an error message in the exception block, and then move it to the calling procedure. I'm getting bogged down with an error "PLS-00201: identifier 'P_ERR_MESSAGE1' must be declared '. How can I fix this or how I can pass the error message in the main proceedings.

    The situation is the following:

    -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,

    p_err_message1 OUT VARCHAR2);

    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,

    p_err_message1 OUT VARCHAR2) 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

    RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM);

    -DBMS_OUTPUT.put_line ('TransientError: Invalid Operation have service may not be available.');

    WHEN utl_smtp.permanent_error THEN

    RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM);

    -DBMS_OUTPUT.put_line ('Permanent Error: The email id entered is either invalid or recepients mail box is full.');

    -p_errmessage: = SQLERRM;

    WHILE others THEN

    RAISE_APPLICATION_ERROR (SQLCODE, SQLERRM);

    -DBMS_OUTPUT.put_line ('Unable to send year email.');

    -p_errmessage: = SQLERRM;

    IF SQLERRM IS NOT NULL THEN

    p_err_message1: = SQLERRM;

    ON THE OTHER

    p_err_message1: = NULL;

    END IF;

    END p_sendmail;

    -Call the procedure below:

    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. *** ',

    p_err_message1);

    Now when I compile it, I am getting bogged down with an error message called: PLS-00201: identifier 'P_ERR_MESSAGE1' must be declared

    Where do I feel bad? When I google, talk, or the variable is not set (which is not the case) or on the privileges (which is not the case that I compiled the same procedure with fewer parameters the week last in my schema). Any idea?

    I have attached a screenshot as well. Thanks in advance.


    Yes, I was not able to copy and paste the package specifications and the whole body, because its too too big. Hope you understand.

    ScreenHunter_22 Dec. 02 10.49.jpg

    The problem is that you had declared him an OUT parameter p_err_message1. This setting is valid only inside the procedure. However, you tried to use it outdoors (during the call to the procedure). Declare and use a different variable to solve the problem.

    ...

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

    ...

    CRLF.

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

    ( p_err_message1) ;

    To identify the problem in a quick way and constitent, generally it allows to watch the line numbers. Or use sql developer. There, you can jump directly to the error line.

  • PLS-00201: identifier 'TABLETYPE_VARCHAR2' must be declared.

    Hi all, when I copy a procedure from oracle, and then the paste into the TimesTen to re-create the procedure, I get the following exception:
    PLS-00201: identifier 'TABLETYPE_VARCHAR2' must be declared.
    If the 'TABLETYPE_VARCHAR2' type is available in oracle not in TimesTen.
    Y at - it approach to solving this problem or links to the list of incompatibilities between oracle and TimesTen on PL/SQL?


    Thank you

    Gena, it seems that the package in timesten is a substitute for custom in oracle, right types?

    TimesTen does not support object types, but we can use types in packages, it's sort of a "Workaround", I think.
    Basically, the packets do not replace custom types (there are two different objects PLSQL with different purpose), but in this case we can do.

    Best regards
    Gena

  • PLS-00201: identifier 'DBMS_SQL' must be declared.

    Windows XP with 10.2.0.1.0

    I have a store procedure contains codes below. As soon as I run the procedure store package he invites me the error
    PLS-00201: identifier 'DBMS_SQL' must be declared. Help, please. Thank you.


    CID: = DBMS_SQL. OPEN_CURSOR;
    DBMS_SQL. PARSE (cid, 'DROP VIEW' | v.tname,)
    DBMS_SQL. Native);
    vValue: = DBMS_SQL. Execute (CID);

    Connect sys as sysdba and grant execute on DBMS_SQL to user_name

  • PLS-00201: identifier 'DBMS_FGA' must be declared.

    When I run:
    EXEC dbms_fga.add_policy (object_schema = > 'LG_SYSTEM_BOTSWANA', object_name = > policy_name, 'TB_BW_PROD_MSTR' = > 'FGA_EMP', audit_column = > NULL, audit_condition = > 'SYS_CONTEXT ("USERENV", "DB_USER") = "lg_system_botswana" ', statement_types = > 'SELECT');

    I get:
    ORA-06550: line 1, column 7:
    PLS-00201: identifier 'DBMS_FGA' must be declared.
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored
    06550 00000 - "line %s, column % s:\n%s".

    I guess that the privleges lack to you on the dbms_fga package. Coordinate with your dba and application privileges execute on the packaging.

  • PLS-00201: identifier 'SP_INSERT_FS_DUMP' must be declared.

    Gurus,

    I'm having a problem in a package that I have. I created this package, but when I run it I get this error

    java.sql.BatchUpdateException: ORA-06550: line 1, column 7:
    PLS-00201: identifier 'SP_INSERT_FS_DUMP' must be declared.
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored

    I use oracle 10.2.0.3. I gave subsidies to run and debug functional ID.

    The body code is too big to be pasted here. I guess this isn't the error code the compilation went well.

    Any help will be appreciated.

    CREATE OR REPLACE PACKAGE SDP
    AS
    PROCEDURE SP_INSERT_FS_DUMP (FS_DELTA in NUMBER, INTERMEDIATE_ID number, SDA in VARCHAR2, LOG_ID in NUMBER);
    END SDP;
    /

    PROCEDURE SP_INSERT_FS_DUMP
    (
    FS_DELTA number,
    INTERMEDIATE_ID number,
    SDA in VARCHAR2,
    LOG_ID NUMBER
    )
    AS
    SDAMINUS40 EXPOSURE_GMR_FS. Type of SDG_MINUS_40%;
    SDAMINUS20 EXPOSURE_GMR_FS. Type of SDG_MINUS_20%;
    SDAMINUS10 EXPOSURE_GMR_FS. Type of SDG_MINUS_10%;
    SDAMINUS5 EXPOSURE_GMR_FS. Type of SDG_MINUS_5%;
    SDA0 EXPOSURE_GMR_FS. Type of SDG_0%;
    SDAPLUS1 EXPOSURE_GMR_FS. Type of SDG_PLUS_1%;
    SDAPLUS5 EXPOSURE_GMR_FS. Type of SDG_PLUS_5%;
    SDAPLUS10 EXPOSURE_GMR_FS. Type of SDG_PLUS_10%;
    SDAPLUS20 EXPOSURE_GMR_FS. Type of SDG_PLUS_20%;
    SDAPLUS40 EXPOSURE_GMR_FS. Type of SDG_PLUS_40%;
    I have NUMBER: = 0;
    |
    |
    |
    |
    |

    COMMIT;

    END SP_INSERT_FS_DUMP;

    Hello

    After the statement of appeal, i.e. the statement that generated the error.

    Assuming that the package is in user_x scheme, is the right way to call this procedure:

    user_x.sdp.sp_insert_fs_dump (n1, n2, n3, n4);
    

    Is that what you call it?

    You can ignore the name of the owner (user_x) if user_x is your current schema. Normally, this is the case only when you open a session as user_x.

    The name of the package (sdp) can be ignored if you call the procedure from the same package.

  • PLS-00201: identifier 'V_RETURN' must be declared error

    Hello

    I am relatively new to PL/SQL and have created the procedure below inside the packaging. However when I try to run the following...
    execute USERF.MX_API.Insert_Note (40081492,1583970,'Test message',v_Return);
    .... I get the error below.

    ORA-06550: line 1, column 88:
    PLS-00201: identifier 'V_RETURN' must be declared.
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored

    Here is the code for my home, I looked at the permissions for the user USERF and they execute any procedure as a privilege and not defined by a role. I tried to create a public synonym as well even if I call the procedure using the schema.package.procedure method.

    Can anyone help? Very much appreciated.
    CREATE OR REPLACE PACKAGE BODY USERF.MX_API AS
    
      PROCEDURE Insert_Note(v_Account_No IN NUMBER, v_Wo_No IN NUMBER, v_Note_Text IN VARCHAR2, v_Return OUT NUMBER)
      IS
       v_Prime_Uid NUMBER;
       v_String_Length NUMBER;
     v_Temp_String VARCHAR2(2000);
     v_Line_Text VARCHAR2(80);
     v_Line_No NUMBER;
     
      BEGIN
    
     v_Return:=0;
     v_Temp_String:=TRIM(v_Note_Text);
     v_Line_No:=0;
    
       LOOP
      v_String_Length:=LENGTH(v_Temp_String);
       
      IF v_String_Length > 80 THEN
       v_Line_Text:=SUBSTR(v_Temp_String,1,80);
      ELSE
       v_Line_Text:=v_Temp_String;
      END IF;
    
      v_Prime_Uid:=dbp_utl_get_uid('NOTEPAD');
      v_Line_No:=v_Line_No + 1;
    
      INSERT INTO NOTEPADS
       (
       PRIME_UID,
       ACCOUNT_NO,
       NOTE_TYPE,
       LINE_NO,
       LINE_TEXT,
       LINE_USER,
       LINE_DT 
       )
      VALUES (
       v_Prime_Uid,
       v_Account_No,
       'DIRNT',
       v_Line_No,
       v_Line_Text, 
       'C1234',
       SYSDATE 
       );
    
      INSERT INTO WORK_ORDER_NOTE
       (
       WO_NO,
       NOTEPAD_UID
       )
      VALUES (
       v_Wo_No,
       v_Prime_Uid
       );
      
      EXIT WHEN v_String_Length < 81;
    
      v_Temp_String:=SUBSTR(v_Temp_String,81);  
     
     END LOOP;
     
     v_Return:=1;
    
      EXCEPTION
       WHEN OTHERS THEN
      v_Return:=0;
     
      END Insert_Note;
    
    END MX_API;
    /

    Hello

    Try this
    -not tested

    declare
    V_RETURN varchar2 (100);
    Start
    Run USERF. MX_API. Insert_Note (40081492,1583970, 'Test Message', v_Return);
    end;
    /

    Thank you

  • PLS-00302: component must be declared 9i

    Hi all

    I'm trying to create a proc on the 9i database. The object that is created with compilation errors. This error only throws on the 9i version. Same scenario for proc creation works well on 10g & above versions.

    Kind regards

    RP.

    This is because the purge has been an addition of 10 gR 1.

    Edit: Oh yes, sppurge.sql

  • PLS-00201: identifier 'tablename' must be declared.

    Y at - it to avoid this error, we have privileges through a role?

    We're not supposed to do any operation of grant by ourselves.

    You wouldn't be able to. Those who will have to be granted by a dba.

    A general approach would be to have the owner of the tables to create this package in its own schema.

    Then the needs one owner to grant privileges to run on the packaging for you (and anyone).

Maybe you are looking for

  • Outlook Express 6 frozen

    Since I did the process of compacting Outlook Express can't open or delete e-mails using the mouse or the keyboard. I tried closing and restarting and nothing helps. I have tried to re-boot my system and which does not help either.

  • Problem with not burning DVDs

    I have a Compaq SR1750NX with XP Media Center.  I have never had any problems with the CD/DVD, play or whatever it is before burning.  Tonight, I bought the DVD - r, 16 X, 4.7 GB/GB, 120 min, brand Memorex, in ten pack.   I have inserted in my Combo

  • What is the importance of the anti-virus at startup

    Hello Wat is you advantage antivirus activation in the start menu to the top or it is not better to disable to improve performance at the beginning upward . Thans Johan   Original title: wat is the advantage of allowing anti virus at the start of the

  • What can I do to save movies I watch to see at a later date

    Original title: Windows Media Player I put movies on my drive to watch, after I'm done watching it does not save the film. What can I do to save movies I watch to see at a later date

  • How to make a choice in line with a path or an envelope

    I'm doing in Photoshop with a selection, what can I do in Illustrator with 'Type on a Path' or 'envelope distortion '.Example: I have a long rectangular selection of pixels (a signature) I want to bring it in line with a circumference.I could do with