I am receving oracle error PLS-00201

Hi all
When I call a procedure stored beside another stored procedure I get the below error

PLS-00201: identifier 'P_IN_USER_NAME' must be declared.

CREATE OR REPLACE PACKAGE BODY VABOSS. VABOSS_ODM_CHNG_PKG
AS
PROCEDURE VABOSS_DEL_UPL_CHNG (P_IN_UPD_NO IN VARCHAR2, P_IN_RELEASE IN P_IN_RECREATE IN P_IN_USER IN VARCHAR2, BOOLEAN, BOOLEAN)
IS
/*******************************************************************************************************************
Module name: VABOSS data, delete and insert
Package Name: VABOSS_ODM_CHNG_PKG
Program name: VABOSS_DEL_UPL_CHNG
Program description: this processing of drop table VABOSS_PLAN_ODM_BOM and insertion of data in the VABOSS_PLAN_ODM_BOM.
Created by: Maria - touati
Creation date: 14 October 2011
PROJECT_NAME: VABOSS
First version: 1.0
Input parameters: all THE
Output parameters: no
Return the parameters: no
********************************************************************************************************************/
CURSOR C_DEL
IS
SELECT GENERATION_ID, ODM_BOM_ID
OF VABOSS_PLAN_ODM_BOM
WHERE GENERATION_ID IN (SELECT GENERATION_ID
OF VABOSS_PLAN_ODM_UPDATE_ADMIN
WHERE UPD_NO = P_IN_UPD_NO);

CURSOR C_INST
IS
SELECT *.
OF VABOSS_INTR_ODM_BOM
WHERE ODM_BOM_ID IN SELECT (SEPARATE ODM_BOM_ID
Of
ADELINE VABOSS_PLAN_ODM_UPDATE_ADMIN
WHERE PUAH. UPD_NO = P_IN_UPD_NO;)

CURSOR C_UPD
IS
SELECT *.
OF VABOSS_PLAN_ODM_BOM_FILE
WHERE ODM_BOM_ID IN SELECT (SEPARATE ODM_BOM_ID
Of
ADELINE VABOSS_PLAN_ODM_UPDATE_ADMIN
WHERE PUAH. UPD_NO = P_IN_UPD_NO;)


V_UPD_NO VARCHAR2 (15);
V_ERROR_MSG VARCHAR2 (20);
NUMBER OF V_INS_CNT;

BEGIN

FOR T_UPD_NO IN C_DEL
LOOP

BEGIN

REMOVE FROM VABOSS_PLAN_ODM_BOM
WHERE GENERATION_ID = T_UPD_NO. GENERATION_ID;

UPDATE VABOSS_PLAN_ODM_BOM_FILE
SET CURRENT_STATUS = '99'
WHERE ODM_BOM_ID = T_UPD_NO. ODM_BOM_ID;
COMMIT;

EXCEPTION
WHILE OTHERS
THEN
VABOSS_COMMON_PKG.oracle_error_info (SQLCODE,
SQLERRM,
' VABOSS_ODM_CHNG_PKG. VABOSS_DEL_UPL_CHNG',.
p_in_user);
END;

END LOOP;

FOR T_INST_NO IN C_INST
LOOP
BEGIN

INSERT INTO VABOSS_PLAN_ODM_BOM (GRT_SEQ_NO,
ODM_BOM_ID,
SEQ_NO,
STATUS,
AGENDA,
BLOCK_ID,
BLOCK_NAME,
SPEC_CATEGORY_ID,
SPEC_CATEGORY_NAME,
SPEC_ID,
SPEC_NAME,
LEVEL_01,
LEVEL_02,
LEVEL_03,
LEVEL_04,
LEVEL_05,
LEVEL_06,
LEVEL_07,
LEVEL_08,
LEVEL_09,
MODULE_ID,
MODULE_NAME,
SONY_ASSY_NUMBER,
LOCAL_PARTS_NUMBER,
LOCAL_PARTS_NAME,
SONY_MP_PARTS_NUMBER,
SONY_SERVICE_PARTS_NUMBER,
SONY_SERVICE_PARTS_NAME,
PARTS_QUANTITY,
SERVICE,
SUBSTITUTE,
SERVICE_MANUAL_REF,
CRP,
SAFETY_PART,
ELECTRONIC_KEY_PART,
PROVISION,
ACL_TYPE,
$VENDOR_NAME,
VENDOR_DESCRIPTION,
GENERATION_ID,
PROTOTYPE_MODEL_NUMBER,
REMARKS1,
REMARKS2,
SERVICE_MANUAL_REMARK1,
SERVICE_MANUAL_REMARK2,
EFFECTIVE_START_DATE,
EFFECTIVE_END_DATE,
TECHNICAL_NEWS,
CREATE_USER,
CREATE_DATE,
MODULE_A_NO,
COMBINATION_PARTS,
EXPLOSION_CODE_FOR_SERVICE,
SERVICE_MANUAL_BLOCK,
SUBSTITUTE_PART_INFO,
USER_ADD_FLAG
)
VALUES (VB_PLAN_ODM_BOM_SEQ. NEXTVAL,
T_INST_NO. ODM_BOM_ID,
T_INST_NO. SEQ_NO,
'00',
T_INST_NO. AGENDA,
T_INST_NO. BLOCK_ID,
T_INST_NO. BLOCK_NAME,
T_INST_NO. SPEC_CATEGORY_ID,
T_INST_NO. SPEC_CATEGORY_NAME,
T_INST_NO. SPEC_ID,
T_INST_NO. SPEC_NAME,
T_INST_NO. LEVEL_01,
T_INST_NO. LEVEL_02,
T_INST_NO. LEVEL_03,
T_INST_NO. LEVEL_04,
T_INST_NO. LEVEL_05,
T_INST_NO. LEVEL_06,
T_INST_NO. LEVEL_07,
T_INST_NO. LEVEL_08,
T_INST_NO. LEVEL_09,
T_INST_NO. MODULE_ID,
T_INST_NO. MODULE_NAME,
T_INST_NO. SONY_ASSY_NUMBER,
T_INST_NO. LOCAL_PARTS_NUMBER,
T_INST_NO. LOCAL_PARTS_NAME,
T_INST_NO. SONY_MP_PARTS_NUMBER,
T_INST_NO. SONY_SERVICE_PARTS_NUMBER,
T_INST_NO. SONY_SERVICE_PARTS_NAME,
T_INST_NO. PARTS_QUANTITY,
T_INST_NO. SERVICE,
T_INST_NO. SUBSTITUTE,
T_INST_NO. SERVICE_MANUAL_REF,
T_INST_NO. CRP,
T_INST_NO. SAFETY_PART,
T_INST_NO. ELECTRONIC_KEY_PART,
T_INST_NO. PROVISION,
T_INST_NO. ACL_TYPE,
T_INST_NO. $VENDOR_NAME,
T_INST_NO. VENDOR_DESCRIPTION,
T_INST_NO. GENERATION_ID,
T_INST_NO. PROTOTYPE_MODEL_NUMBER,
T_INST_NO. REMARKS1,
T_INST_NO. REMARKS2,
T_INST_NO. SERVICE_MANUAL_REMARK1,
T_INST_NO. SERVICE_MANUAL_REMARK2,
T_INST_NO. EFFECTIVE_START_DATE,
T_INST_NO. EFFECTIVE_END_DATE,
NULL,
p_in_user,
VABOSS_COMMON_PKG. TIMEZONE_CONVERSION_TO_JST,
T_INST_NO. MODULE_A_NO,
T_INST_NO.COMBINATION_PARTS,
T_INST_NO. EXPLOSION_CODE_FOR_SERVICE,
T_INST_NO. SERVICE_MANUAL_BLOCK,
T_INST_NO. SUBSTITUTE_PART_INFO,
T_INST_NO. USER_ADD_FLAG
);

v_ins_cnt: = v_ins_cnt + sql % ROWCOUNT;

IF MOD (v_ins_cnt, 500) = 0
THEN
COMMIT;
END IF;


EXCEPTION
WHILE OTHERS
THEN

VABOSS_COMMON_PKG.oracle_error_info (SQLCODE,
SQLERRM,
' VABOSS_ODM_CHNG_PKG. VABOSS_DEL_UPL_CHNG',.
p_in_user);
END;

END LOOP;

FOR T_UPD_FILE IN C_UPD
LOOP

BEGIN

UPDATE VABOSS_PLAN_ODM_BOM_FILE
SET CURRENT_STATUS = '90',
UPDATE_USER = P_IN_USER,
UPDATE_DATE = VABOSS_COMMON_PKG. TIMEZONE_CONVERSION_TO_JST
WHERE ODM_BOM_ID = T_UPD_FILE. ODM_BOM_ID;
EXCEPTION
WHILE OTHERS
THEN
VABOSS_COMMON_PKG.oracle_error_info (SQLCODE,
SQLERRM,
' VABOSS_ODM_CHNG_PKG. VABOSS_DEL_UPL_CHNG',.
p_in_user);
END;

END LOOP;

-VALIDATION;

-IMMEDIATE EXECUTION "VABOSS_INTR_ODM_BOM";

FOR T_DEL_INTR IN C_DEL

LOOP

BEGIN

DELETE
OF VABOSS_INTR_ODM_BOM
WHERE ODM_BOM_ID = T_DEL_INTR. ODM_BOM_ID;

UPDATE VABOSS_PLAN_ODM_BOM
SET STATUS = '99',
UPDATE_USER = P_IN_USER,
UPDATE_DATE = VABOSS_COMMON_PKG. TIMEZONE_CONVERSION_TO_JST
WHERE ODM_BOM_ID = T_DEL_INTR. ODM_BOM_ID;
COMMIT;

EXCEPTION
WHILE OTHERS
THEN

VABOSS_COMMON_PKG.oracle_error_info (SQLCODE,
SQLERRM,
' VABOSS_ODM_CHNG_PKG. VABOSS_DEL_UPL_CHNG',.
p_in_user);

END;

END LOOP;

/ * Calls a procedure SERVICE_PARTS_LIST_RELEASE_ODM * /.

VABOSS_SERVICE_BOM_PKG. SERVICE_PARTS_LIST_RELEASE_ODM-> >HERE I am GETTING the ERROR
(P_IN_UPD_NO,
P_IN_USER_NAME);

EXCEPTION
WHILE OTHERS
THEN

VABOSS_COMMON_PKG.oracle_error_info (SQLCODE,
SQLERRM,
' VABOSS_ODM_CHNG_PKG. VABOSS_DEL_UPL_CHNG',.
p_in_user);

END VABOSS_DEL_UPL_CHNG;





END VABOSS_ODM_CHNG_PKG;
/


your help is apprecited

Thank you
Krupa

879534 wrote:
PLS-00201: identifier 'P_IN_USER_NAME' must be declared.

CREATE OR REPLACE PACKAGE BODY VABOSS. VABOSS_ODM_CHNG_PKG
AS
PROCEDURE VABOSS_DEL_UPL_CHNG (P_IN_UPD_NO IN VARCHAR2, IN BOOLEAN P_IN_RECREATE, IN BOOLEAN P_IN_RELEASE, * P_IN_USER * IN VARCHAR2)

... snip...

VABOSS_SERVICE_BOM_PKG. SERVICE_PARTS_LIST_RELEASE_ODM---> >HERE I am GETTING the ERROR
(P_IN_UPD_NO,
( P_IN_USER_NAME ) ;

Spot the difference

Tags: Database

Similar Questions

  • Error PLS-00201 with an export (expdp) on oracle 10g

    Hello

    Yesterday, we make an update of the database (version 10.2.0.5.0) and now we have when we try to export this error:

    ORA-39127: unexpected error of the call to export_string: = WMSYS.LT_EXPORT_PKG.system_info_exp (0, dynconnect, 10.02.00.05.00', newblock)
    ORA-06550: line 1, column 12:
    PLS-00201: identifier 'WMSYS.LT_EXPORT_PKG' must be declared.
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored
    ORA-06512: at "SYS." Dbms_metadata", line 5788
    ORA-39127: unexpected error of the call to export_string: = EXFSYS. DBMS_EXPFIL_DEPASEXP.system_info_exp(0,dynconnect,10.02.00.05.00',newBlock)
    ORA-06550: line 1, column 12:
    PLS-00201: identifier ' EXFSYS. DBMS_EXPFIL_DEPASEXP' must be declared
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored

    could you help me?

    Its seems a few objects of EXFSYS scheme or scheme EXFSYS itself, your database is missing.

    Connect as sysdba and run

    @$ORACLE_HOME/rdbms/admin/catexf.sql

    Ref: http://www.orafaq.com/forum/t/22844/2/

  • Cannot run SP with error PLS-00201

    I have a stored procedure called CAL_TAX that create by schema EMP_DBA, I want to give now run right on this SP for the USER1 user. I have run below stated:

    CREATE THE USER1 USER IDENTIFIED BY USAGER1234;

    GRANT CONNECT USER1;

    RESOURCE GRANT TO USER1;

    GRANT CREATE SESSION USER1;

    GRANT EXECUTE ON EMP_DBA. CAL_TAX TO USER1;

    DECLARE

    CURSOR C1 IS SELECT TABLE_NAME FROM USER_TABLES;

    CMD VARCHAR2 (200);

    BEGIN

    FOR C IN C1 LOOP

    CMD: = "GRANT SELECT ON" | C.TABLE_NAME | "TO USER1;

    RUN THE IMMEDIATE CMD;

    END LOOP;

    END;

    When I connect as User1 and run SP CAL_TAX, I received the error messages below. Can someone help me on this? I have no problem to run SP so log in as EMP_DBA

    BEGIN CAL_TAX; END;

    *

    ERROR ON LINE 1:

    ORA-06550: LINE 1, COLUMN 7:

    PLS-00201: IDENTIFIER 'CAL_TAX' MUST BE DECLARED.

    ORA - 06550:LINE 1, COLUMN 7:

    PL/SQL: STATEMENT IGNORED

    This is the part of MS CAL_TAX, could he what AUTHID CURRENT_USER caused this problem?

    CREATE OR REPLACE PROCEDURE CAL_TAX

    AUTHID CURRENT_USER

    IS

    .

    .

    .

    When I connect as User1 and run SP CAL_TAX, I received the error messages below. Can someone help me on this? I have no problem to run SP so log in as EMP_DBA

    BEGIN CAL_TAX; END;

    You are logged in as User1 tries to run a procedure named CAL_TAX.

    But User1 does not provide any object named CAL_TAX so that you get the exception.

    EMP_DBA the user is the owner of object CAL_TAX USER1 must provide the schema prefix to refer to this object

    BEGIN

    EMP_DBA. CAL_TAX;

    END;

    /

    If you create a public synonym USER1 then allows the synonym to reference the object.

  • PLS-00201: identifier ' FND_GLOBAL. User_id' must be reported error

    Hello!

    I use 10g DB (like my access system), EBS 11.5.1
    I created a trigger (before_update) with the line
    : new.last_update_by: = fnd_global.user_id;
    but get the error PLS-00201: identifier ' FND_GLOBAL. User_id' must be reported error.

    Please help out me.
    Elmer

    It's been a while since I've done the triggers with the E-Business Suite, but it might be a requirement to have the trigger in applications rather than your custom schema schema. The apps schema should have full access to your custom schema (which he would get if the schema is correctly registered by using the form).

    And the other question, I would ask why you need it... Why don't your custom code to do this update systematically. You should also read Thomas Kyte stuff on the triggers.... (asktom.oracle.com, search for triggers).

    Best regards, Ivan

  • PLS-00201 when adressing field in an associative array

    To calculate the scores, I created an associative array that contains the totals of players until last week.

    In a loop, I can make each player and add their scores this week to their total of last week.

    Code:

    Associative array:
    italics
    create or replace
    TYPE "NUMBER_ARRAY" in the table of the number;

    cur_vorige_totalen_array number_array;

    FOR r_vorige_totalen in c_vorige_totalen (ld_training_dag)
    LOOP
    cur_vorige_totalen_array.extend;
    cur_vorige_totalen_array (r_vorige_totalen.lidnummer): = r_vorige_totalen.totaal_punten_dit_seizoen;
    END LOOP;
    italics

    To add the total to the current scores can do:
    italics
    OPEN c_huidige_totalen.
    LOOP
    Get the c_huidige_totalen COLLECT LOOSE cur_totalen_array LIMIT 100;
    EXIT WHEN c_huidige_totalen % NOTFOUND;
    END LOOP;
    CLOSE C_huidige_totalen;

    FORALL i IN cur_totalen_array. FIRST... cur_totalen_array. LAST
    Training_aanwezigheid UPDATE your
    SET ta.totaal_punten_dit_seizoen TREAT (cur_totalen_array (i) AS huidige_totalen_type) = .totaal_punten_dit_seizoen + cur_vorige_totalen_array (ta.lidnummer)
    WHERE ta.lidnummer = TREAT (cur_totalen_array (i) AS huidige_totalen_type) .lidnummer
    AND ta.training_id = p_training_id;
    italics

    I get an error PLS-00201 (ta.lidnummer must be set) on "BOLD" cur_vorige_totalen_array (ta.lidnummer) "BOLD"

    Is it not possible to address ta.lidnummer in this way? How can I solve my problem in this case?

    TX for your advicec

    Hello

    Discover FORALL statement Chater:
    http://download.Oracle.com/docs/CD/B19306_01/AppDev.102/b14261/forall_statement.htm#i34324
    Your code is not to comply with these restrictions:
    >
    -Part of a loop FORALL, impossible to make reference to the collection even in both the SET clause and the WHERE clause of an UPDATE statement. You need to maybe make a second copy of the collection and the new name in the WHERE clause.
    -Impossible to refer to the individual record fields in the DML statements called by a FORALL statement. Instead, you can specify the entire file with the ROW SET clause in an UPDATE statement, or the VALUES clause in an INSERT statement.
    -Indexes collection should be just the index rather than an expression variable, such that I rather than I + 1.
    >
    The last restriction is because you use this:
    FORALL i IN cur_totalen_array. FIRST... cur_totalen_array. LAST
    Training_aanwezigheid UPDATE your
    SET ta.totaal_punten_dit_seizoen = TREAT (cur_totalen_array (i) AS huidige_totalen_type) .totaal_punten_dit_seizoen
    + cur_vorige_totalen_array ( ta.lidnummer )

    Single index variable is allowed as a clue - you cannot use variable I have here.

    Published by: kordirko on 2010-10-20 23:38

  • 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 '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 error occurs when the batch a stored procedure in SQL * more

    I have a batch file to run a stored procedure and the coil results in file. When I enter orders manually in sql * plus the output works very well and my results are spooling in the output file. But when I run the same commands in the script I get an error batch.


    Any ideas?

    Stored procedure:

    create or replace procedure MMP (p_cursor in the SYS_REFCURSOR)

    as

    Start

    Open p_cursorfor select name, id from table;

    end;

    batch file 1:

    sqlplus-s user/pw@REPORTDV @sp_output_spooled.sql

    sp_output_spooled.SQL script file

    Paste these commands directly on the SQL * more guest wraps the result as expected the value leader.

    the colsep value ' |'

    trigger the echo

    Set feedback off

    termout off Set

    set the position

    set linesize 9000

    set pagesize 0

    Set trimspool on

    headsep off Set

    output of the coil. TXT

    var refcursor rc

    run MMP(:rc)

    print the rc

    spool off

    output

    Errors printed to the output. TXT file after the batch is executed and error occurs:

    BEGIN MMP(:rc); END;

    *
    ERROR on line 1:
    ORA-06550: line 1, column 8:
    PLS-00201: identifier 'MMP' must be declared.
    ORA-06550: line 1, column 8:
    PL/SQL: Statement ignored


    ERROR:
    ORA-24338: statement handle not executed


    SP2-0625: variable printing error "rc".

    Hello

    Your code worked fine for me.

    Procedure MMP is owned by the same user that runs the batch file or does it means and appropriate privileges?

    VR,

    Sudhakar

  • 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-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 'DBMS_SODA_ADMIN. LIST_COLLECTIONS' must be declared.

    Any attempt of a "dryrun" of ADR. More or less get it now work in 12.1.0.2 but hit a barrier after trying

    http://localhost: 8080/ADR/marco/dbjson/latest /.

    (where "marco" is my database schema "MARCO")

    Error messages in JSON format

    {'type' ": 'http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1',' status': 500,"title":" ORA-06550: 2 Regel, kolom 3:\nPLS-00201: identifier 'DBMS_SODA_ADMIN. LIST_COLLECTIONS' must be stated. "} \nORA-06550: 2 regel, kolom 3:\nPL/SQL: statement ignored.\n","details":"begin\n. DBMS_SODA_ADMIN LIST_COLLECTIONS (\n P_START_NAME = >?, \n P_RESULTS = >?); ------nEND; {', "o: errorCode": "SQL-06550"}

    Aka

    INFO: Request of race GET JSON/REST

    Dec 15, 2014 13:48:14 oracle.soda.rdbms.impl.OracleDatabaseImpl getMaxLengths

    SEVERE: java.sql.SQLException: ORA-06550: 2 Regel, kolom 3:

    PLS-00201: identifier 'DBMS_SODA_ADMIN GET_PARAMETERS' must be declared.

    ORA-06550: Regel 2, kolom 3:

    PL/SQL: Statement ignored.

    Dec 15, 2014 13:48:14 oracle.soda.rdbms.impl.OracleDatabaseImpl callListCollec

    tions

    SEVERE: java.sql.SQLException: ORA-06550: 2 Regel, kolom 3:

    PLS-00201: identifier 'DBMS_SODA_ADMIN. LIST_COLLECTIONS' must be declared.

    ORA-06550: Regel 2, kolom 3:

    PL/SQL: Statement ignored.

    Dec 15, 2014 13:48:14 oracle.json.rest.SodaRestHandler runRequest

    GRAVE: oracle.soda.rdbms.impl.OracleRDBMSException

    Dec 15, 2014 13:48:14 oracle.json.web.RestRequest sendError

    INFO: Sending of error code 500

    Any idea of what was not yet installed (speculation on my part)? Package DBMS_SODA_ADMIN is not installed in the database.

    Marco

    Hi Marco,.

    This error usually means that MLR bundle 20080249 patch is not installed.  If you have not installed yet, go to support.oracle.com, look for "20080249" and follow the installation instructions.  Once the hotfix has been installed, it should start to work (you don't need to reinstall ADR).

    Note that the patch was released initially with step 6 missing in the instructions.  This problem has been fixed recently.

    Thank you

    Josh

  • Cursor of return of (nested) function - PLS-00201: identifier of the CURSOR must be declared

    Hello

    I have a function in which I use nested functions (because I don't want to create objects explicit / external, it is a requirement that I don't have any effect on / I don't want to change).

    In my external function, I use cursor by declaring them in IS-section and then open using the loop for instruction.

    In my inner function / nested, I also want to use a cursor.

    There I also said one like I did in an external function within the section IS of the nested function.

    SQL Developer complains about syntax error (';: wait ").

    When you try to compile the whole process I get the following error:

    "Error (97,14): PLS-00201: identifier 'CURSOR' must be declared '.

    It's my external function starts as:

    CREATE OR REPLACE FUNCTION FN_GENERATE_QUERY_PMT (instance_id_in IN NUMBER, language_in IN VARCHAR2)
    RETURN CLOB
    IS
         CURSOR c_outer IS
          SELECT * FROM BLA;
    

    When it comes to my internal function with the section IS of the external function and stands (inner functions should be at the end of the Section IS to stand behind the statements of variable and cursor, otherwise there will be an error):

    FUNCTION nfn_get_value (num_in IN NUMBER)
          RETURN SYS_REFCURSOR
        IS
          SYS_REFCURSOR c_inner IS
          SELECT *
          FROM BLUB;
        BEGIN
          RETURN c_where_in;
        END;
    

    After that there will be another nested function, then the BEGIN section will appear.

    When looking for 'function returns cursor' I can only find solutions where the cursor is declared in section IS (sometimes its an AS-section o_O * worried *) but wihtoug select, just declare type.

    The cursor focus is added in the Begin block to the way open for instruction. But I don't want to open it yet. I want to open the cursor using the loop statement. I am able to reopen? used can it be two sliders while one will not be closed properly?

    How to fix to return a cursor that I can use in my external function.

    Advice would be appreciated.

    Thanks in advance.

    Maybe I got the soultion
    First of all, I found this thread:

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

    said the following:

    2) a ref cursor is just a cursor.  a ref cursor is just a cursor.  a ref cursor is just a cursor.... (keep saying it over and over
    

    But fortuneately I also found this post:
    http://asktom.Oracle.com/pls/asktom/f?p=100:11:0:P11_QUESTION_ID:14188501024541

    where thankfully someone shared her knowledge with others:

    In view of this block of code - you may see more "prominent" unlike - any

    How many times you run this block - cursor C will always be select * twice.  The ref

    cursor is not guaranteed.

    Another difference is that a ref cursor can be returned to a client.  a plsql 'cursor cursor.

    cannot be returned to a client.

    Another difference is a cursor can be global - a ref cursor cannot (you cannot set

    them outside a procedure / function)

    Another difference is a ref cursor can be passed to the subroutine - a subroutine

    cursor cannot be.

    This explains why the samples seem always fair with open (Ref) cursor within the section to START.

    I expeceted this (as I wrote in the first post) and ask if the course of opening will be sent back twice or just redirect. I suppose it it reassigns who were just a little in performance.

    But I can't yet find this good explanation of this type anywhere within the documentation and of course I didn't read it all. Shame on me, but I'm always engaged by internet download.

    I would be grateful if someone could say my last statement and leave a comment on double-distribution of the refcursors has reopened.

    Thanks in advance.

  • Create the stored procedure with the table from another throw diagram PLS-00201

    Oracle 10g. I'm new on procedures, so maybe I'm missing something obvious.

    The ABC schema owner has table T2001_WRITEOFF. The SYSDBAs given SIUD Some_Update_Role and granted this role to developer user IJK. IJK user then created a private synonym T2001_WRITEOFF for ABC. T2001_WRITEOFF. It worked with the usual SQL DML commands.

    When I try to create a simple procedure, it throws PLS-00201 identifier "T2001_WRITEOFF" must be declared and the points of the 2nd line.

    create or replace procedure woof1(
      fooname
    in T2001_WRITEOFF.territory%TYPE,  <=== error points here
      bardesc
    IN T2001_WRITEOFF.ind_batch_submit%TYPE) IS
    BEGIN
      
    INSERT into T2001_WRITEOFF
      
    VALUES ( fooname, bardesc);
    END woof1;
    /


    What I am doing wrong?


    Thank you

    JimR


    Grant the necessary rights directly to the user (not through a role):

    http://asktom.Oracle.com/pls/asktom/asktom.download_file?p_file=6551289900368934430

  • PLS-00201: identifier ' DBMS_JAVA. SET_OUTPUT' must be declared

    We have recently upgraded to oracle 11g and trying to run the code:

    Start DBMS_JAVA. SET_OUTPUT (10000); end;

    We are returned the error:
    ORA-06550: line 1, column 7:
    PLS-00201: identifier ' DBMS_JAVA. SET_OUTPUT' must be declared
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored

    The DBMS_JAVA package, the two bodies and spec are valid and compiled.

    Could there be a problem with permissions or the missing dependencies?

    Thank you.

    Hello

    Well, privileges seem good. What about the public synonym?

    SELECT  *
    FROM    dba_synonyms
    WHERE   synonym_name  = 'DBMS_JAVA'
    ;
    
  • PLS-00201: identifier ' VENDOR_EXTRACT. HAND ' must be declared

    Hi all

    I am new to the development and administration of the EBS (I'm analyst), then, probably, that this issue will be obvious to most people here.

    I have created a package and compiled successfully in SQL Developer. Then, I wanted to save it as a competitor program in EBS. Do I need to do anything about it is between? Copy a file with the package or the package is registered automatically when created in SQL Developer? I created under my user custom, then there conceded at APPS. I have the error message below the newspaper of conc programs:

    Error ORACLE 6550 in FDPSTP

    Cause: FDPSTP failed due to the ORA-06550: line 1, column 7:
    PLS-00201: identifier ' VENDOR_EXTRACT. HAND ' must be declared
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored

    What is the right approach to the creation of a package/procedure to register in EBS?

    Any help would be appreciated.

    Concerning
    Piotr

    on EBS http://forums.oracle.com/forums/category.jspa?categoryID=3
    also search the Forum
    for example
    Re: FDPSTP failed due to the ORA-06550

    for simultaneous program, you must:
    -create the package with, for example, the main proceedings (also of subsidies to the apps)
    -Save the executable program (for example, package.main)
    -Registry program

    subject VENDOR_EXTRACT. HAND
    Check the program executable and program parameters simultaneously

Maybe you are looking for

  • No display via the connection HDMI Qosmio X 300-11 L

    Hello community, I have a problem with the connection between my laptop Qosmio X 300-11 l and my LCD TV Toshiba 32R3550P. If I connectmy laptop computer Cup on TV he detected a Regza Link on the good Port HDMI and Toshiba laptop shows on the screen.

  • Toshiba 42Z3030D TV not receive signals from the remote control

    I can't use any (Toshiba or the distance from Sky TV) remote on my TV. Everything works on the TV when I use the buttons on the side of the TV but the TV does not seem to receive all signals from remote control. I changed the batteries in the remotes

  • Count the colorful fields of a 2D array

    HI, is there a way to know hoy many fields of a 2D array are colorful? I want to count your painted the fields in this table concerning

  • Should I waive Bestbuy and buy my Clip + online?

    Its been 3 days as the supposed to exit the Clip + at normal retailers and there is still absolutely no sign that the Clip + is even anywhere outside Bestbuy. Despite this, when I asked if the bestbuy here at Kohler (Wisconsin) had one, they had no i

  • Create a sphere

    I have a round image on a layer that I want to look like a field or baseball. I have PS CC.Thanks for the help!Leona