PLS-00113: identifier 'C_EMP' of the END must match 'EMP_SEARCH' at line 1, column 10 in stored function

Hi all

What is the problem in this function?

SQL > create or replace function Emp_Search (number v_empno)

2 return a Boolean value

3 is

4 cursor c_emp is Empno select from Emp;

5. start

6 for emp_r looping c_emp

7 if v_empno = emp_r.empno then

8 dbms_output. Put_line (v_empno |) 'lies');

9 return true;

10 end if;

11 end of loop;

12 end c_emp;

13 dbms_output. Put_line (v_empno |) ("' is not found");

14 return false;

End 15 Emp_Search;

16.

WARNING: Function created with compilation errors.

SQL > show error

Errors for the EMP_SEARCH FUNCTION:

LINE/COL ERROR

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

12/7 PLS-00113: identifier 'C_EMP' of the END must match 'EMP_SEARCH' on line

1, column 10

13/2 PLS-00103: encountered the symbol "DBMS_OUTPUT.

13/49 PLS-00103: encountered the symbol ";" when expecting one of the

Next:

. (, * % & -+ / at rem rest mod < an ID >)

< between double quote delimited identifiers of > < an exhibitor > (*) as

go to | bulk of type multiset

I hope it's just exploring things...

FUNCTION to CREATE or REPLACE emp_search (in_empno IN emp.empno%TYPE)
RETURN NUMBER
IS
CURSOR c_emp (cp_empno IN emp.empno%TYPE)
IS COUNT (*) SELECT
WCP
WHERE empno = cp_empno;
          
l_row_cntr PLS_INTEGER;
BEGIN
OPEN c_emp (cp_empno-online in_empno).
extraction INTO l_row_cntr c_emp;
close c_emp;
  
IF l_row_cntr > 0
THEN
SYS. Dbms_output.put_line (in_empno |) "lies");
ON THE OTHER
SYS. Dbms_output.put_line (in_empno |) 'is not found");
end if;

RETURN l_row_cntr;
END emp_search;
/

HTH

Tags: Database

Similar Questions

  • Get speech recognition error message could not start because the configuration of the language is not supported, the language must match the language of the user interface

    I am running Windows 7 Ultimate 32 bit, when I run speech recognition it fails and the following message appears,

    Voice recognition couldn't start because the configuration of the language is not supported, the language must match the language of the user interface.

    I tried to change the language, then back to British English, but the problem is still there, I'd appreciate any help with this problem

    Is there a solution to this problem yet?

  • 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

  • size of the string must adapt automatically to the size of the text

    Hello

    Whenever I passed the text to the channel indicator, my size of the string must match the size of the text automatically. Is this possible?

    GerdW wrote:

    OK: you will find a calc function the size of the text somewhere in the range of photo features. Use the result of this function to set the properties of your string indicator... (Don't have LV on hand to search for this function.)

    Totally agree with Gerd.

    What has mentioned, it is something like this:

    Andrey.

  • Is it possible to allow the end user sort a report column that he/she loves?

    If a report has a lot of columns, it is possible to apply it in such a way that the end user can choose to sort a column, he or she chooses? If so, how?

    Hello!

    In the second step of "Create the Layout", click the button Modify on your table view.
    Then click on "Edit Table View Properties" and check the box named enable column sorting in the dashboards.

    I hope this will help, do not hesitate to ask for more!

    Max

  • ORA-06550: line 21, column 5: PLS-00306: wrong number or types of arguments

    Dear Sir

    can someone help what is the problem?
    I get the error message:
    ORA-06550: line 21, column 5: PLS-00306: wrong number or types of arguments in the call to 'STRONG_PASSWORD_VALIDATION' ORA-06550: line 21, column 5: PL/SQL: statement ignored

    code is:
    ---
    DECLARE
    l_username varchar2 (100);
    l_password varchar2 (100);
    l_old_password varchar2 (100);
    l_workspace_name varchar2 (30);
    l_min_length_err boolean;
    l_new_differs_by_err boolean;
    l_one_alpha_err boolean;
    l_one_numeric_err boolean;
    l_one_punctuation_err boolean;
    l_one_upper_err boolean;
    l_one_lower_err boolean;
    l_not_like_username_err boolean;
    l_not_like_workspace_name_err boolean;
    l_not_like_words_err boolean;
    BEGIN
    l_username: =: P29_CURR_USER;
    l_password: =: P29_NEW_PW;
    l_old_password: =: P29_PW;
    l_workspace_name: = APEX_UTIL. GET_DEFAULT_SCHEMA;
    APEX_UTIL. () STRONG_PASSWORD_VALIDATION
    p_username = > l_username,.
    p_password = > l_password,
    p_old_password = > l_old_password,
    p_workspace_name = > l_workspace_name,
    p_use_strong_rules = > false,
    p_min_length_err = > l_min_length_err,
    p_new_differs_by_err = > l_new_differs_by_err,
    p_one_alpha_err = > l_one_alpha_err,
    p_one_numeric_err = > l_one_numeric_err,
    p_one_punctuation_err = > l_one_punctuation_err,
    p_one_upper_err = > l_one_upper_err,
    p_one_lower_err = > l_one_lower_err,
    p_not_like_username_err = > l_not_like_username_err,
    p_not_like_workspace_name_err = > l_not_like_workspace_name_err,
    p_not_like_words_err = > l_not_like_words_err
    );

    IF l_min_length_err THEN
    return ('Kennwort ist zu kurz');
    END IF;

    IF l_new_differs_by_err THEN
    return ("' muss sich vom alten Kennwort unterscheiden Kennwort");
    END IF;

    IF l_one_alpha_err THEN
    return ('wenigstens einen letter included muss Kennwort');
    END IF;

    IF l_one_numeric_err THEN
    return ('wenigstens eine Ziffer included muss Kennwort');
    END IF;

    IF l_one_punctuation_err THEN
    return ('wenigstens ein Sonderzeichen included muss Kennwort');
    END IF;

    IF l_one_lower_err THEN
    return ('wenigstens einen Kleinbuchstaben included muss Kennwort');
    END IF;

    IF l_one_upper_err THEN
    return ('wenigstens einen Grossbuchstaben included muss Kennwort');
    END IF;

    IF l_not_like_username_err THEN
    return ('Kennwort darf nicht den included Nick');
    END IF;

    IF l_not_like_workspace_name_err THEN
    return ('Kennwort darf nicht den Namen-Workspace included');
    END IF;

    IF l_not_like_words_err THEN
    Return ("' contains unerlaubten term Kennwort") End Function
    END IF;
    Returns a null value.
    END;
    ---
    Any help is welcome.
    Kind regards
    Lorenz

    Look in your version of apex_util. Your code certainly doesn't look like using STRONG_PASSWORD_VALIDATION, which has very different parameters.

    My version (4.0) of STRONG_PASSWORD_CHECK has 16 parameters, your code has 15.

  • P7-1298cb: Multi-color flickering lines in columns displayed on the screen after upgrade Windows 10.

    I upgraded Windows Windows 8.1 1O.  I've updated the drivers.  The monitor multicolored poster of fine lines in columns.  The lines of twinkle randomly.  The monitor is a diagonal LED of 2711 x 27 inch HP (XP600A) screen.  It is not that there is a specific monitor for Windows 10 driver.  Any suggestions on how to fix this?

    HI @TLL2016,

    Thanks for getting back to me.

    There is no update BIOS, but there is more recent graphics driver.

    Here is a link the download AMD UMA Graphics Driver.

    Just to check the monitor, here is a document for display quality problems.

    Please keep me informed of the progress of things.

    If you need help, let me know and I will gladly make all that I can to help you.

    Please let me know if that solves the problem by marking this post as "accept as a Solution.
    To simply say thank you, click the Thumbs up below!

    Thank you.

  • 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.

  • 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.

  • ORA-06550 pls-00103 encountered the end symbol of file

    HII

    the procedure below compiles well.

    CREATE OR REPLACE PROCEDURE BG. FIND_DUP (EMP_CODE NUMBER, MAIN_EMP_CODE NUMBER) IS

    CURSOR C1 IS

    SELECT THE TABLE TABLE_NAME FROM USER_TAB_COLUMNS

    WHERE COLUMN_NAME = 'EMP_CODE. '

    AND UPPER (TABLE_NAME) <>UPPER ('PA_EMP_MERGE');

    V_T_NAME VARCHAR2 (2000);

    RESULT VARCHAR2 (1000);

    BEGIN

    OPEN C1;

    LOOP

    FETCH C1 IN V_T_NAME;

    WHEN EXIT C1% NOTFOUND;

    RESULT: = 'UPDATE'. V_T_NAME | ' SET EMP_CODE =' | EMP_CODE | "WHERE EMP_CODE =' | MAIN_EMP_CODE | « ; » ;

    RUN THE IMMEDIATE RESULT.

    END LOOP;

    CLOSE C1;

    END;

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

    but when I try to run it gives me

    ORA-06550: line 1, column 26:

    PLS-00103: encountered the symbol "end-of-file" during the expected in the following way:

    ; < an ID > < a between double quote delimited identifiers of >

    The symbol ";" was replaced by "end-of-file" continue.

    -Im using oracle 10g

    Hello

    Do not put a semicolon at the end of the dynamic SQL statements.

    Instead of:

    RESULT: =... | MAIN_EMP_CODE | ';';

    Try:

    RESULT: =... | MAIN_EMP_CODE;

    You need a semicolon (outside the single quotes) to put an end to the assignment statement, but you don't need a semicolon (inside the single quotes) to put an end to the dynamic UPDATE statement.

    Whenever you make dynamic SQL code, ask someone (often yourself) "Is this really necessary?"

    Dynamic SQL is usually an accessory to the wrong table design.  Do you really need to have several tables that each must be updated in the same way, at the same time?  Are you create new tables so frequently that cannot keep track of their static code?

  • PLS-00201: identifier must be declared.

    --header
    
    create or replace
    package session_info
    as
      function get_osuser
      return v$session.OSUSER%type;
    end;
    
    --body 
    
    create or replace
    package body session_info
    as
      function get_osuser
      return v$session.OSUSER%type
      as
        osusername v$session.OSUSER%type;
      begin
        begin
          select upper(osuser)
          into osusername
          from v$session
          where audsid = USERENV('SESSIONID')
          and rownum = 1;
        exception
          when others then
             osusername := substr(user, 1, 30);
         end;
         return substr(osusername || '_' || user, 1, 30);
      exception
        when others then
           return 'SESSION_INFO ERROR';
      end;
    end;
    
    --error
    Error(4,3): PL/SQL: Declaration ignored
    Error(5,10): PLS-00201: identifier 'V$SESSION' must be declared
    can someone help me? where I have to declare v$ session?

    Objects stored with (by default) Copyright ignore privileges based on roles. Most likely, owner package session_info user is granted select on v$ session through the role (or not at all). Grant select on v_$ session to the owner of the package directly.

    SY.

  • 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 '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.

Maybe you are looking for

  • Export/copy large iMovie (mp4) on dvd or USB?

    Have a great (3 hours; 15 GB) iMovie I created a mp4 file.  I can't save or copy on a dvd or a flash drive.  What should I do?  I exceeded a limit of file size?  Thank you.

  • Updates will not be installed Vista Home premium 64bit__

    When I try to install, I get error like 80070643,646,643 codes. Updates for Windows defender are ok.

  • Connection to the local network not appearing is not in network connections

    A month or so I reinstalled Windows XP SP2 (have since updated to SP3), and ever since then the LAN connection icon does not appear in the network connections window, and even when I plug the ethernet cable it does not automatically turn on the conne

  • How to take off a screen saver?

    Original title - screen saver played a game of Viva Media Alamar games in my computer and the game installed a screensaver on my computer how take off? Thank you very much

  • Cancel button does not

    Hello I have an another question of community. I created a class that extends the dialog box. And in the super(), I put the following Super (Dialog.D_OK_CANCEL, "Select Preferences", Dialog.OK, null, Dialog.GLOBAL_STATUS); The dialog box is supposed