Procedural errors

Dear people

I'm checking invalid procedures in my diagram
select  * from  user_objects where    status != 'VALID' order by     object_name
I had Find_emp_info procedure but when I checked contained errors in the
select * from sys.USER_ERRORS where  type = 'PROCEDURE'
But I did not get any info on that, can you please explain why it does not show.

Thank you very much

Newbie says:
Dear Marwim, Paul and people

What is a DDL action?

It was all answered in the other posts. Yes, like editing a table DDL will be invlaidate a procedure: it does not mean there are errors.

Tags: Database

Similar Questions

  • IPS recovery procedure - error

    Hello guys...

    I forgot the password for module AIP-SSM-10 and try to recover break it. It works 5.x and so I have to make a recovery. on the recovery procedure, the image copy to tftp server system and throws the below error message...

    Slot-1 772 > Bad magic number (0 x-47cd60cf)

    Slot-1 773 > restart Autoboot error...

    Slot-1 774 > reboot...

    any suggestion on wht could be the reason and how to on this subject?

    Thank you

    AJ

    the file being attempted to install isn't what they expected the ROMMON of the MSS.

    The Image file of the system was damaged during the download.

    OR the attempt of the procedure of the System Image with one file other than a System Image.

    There are several types of files for IPS and their use is often confused.

    For example:

    For version 2.0000 E3, there were 3 different files for the AIP-SSM-10:

    The system image:

    IPS-SSM_10-K9-sys-1.1-a-6.1-2-E3.img

    -For installation through ROMMON or more technically the "module hw-module 1 recover...» "order of the SAA. Install a complete Image of the system on the MSS and erases all previous data from the SSM.

    NOTE: This is the type of file to be used in the method you follow.

    Update:

    IPS - K9 - 6.1 - 2 - E3.pkg

    -To upgrade from an earlier version of the sensor to this new version. It converts the previous configuration to work with the new version.

    Recovery partition:

    IPS-K9-r-1.1-a-6.1-2-E3.pkg

    -For the upgrade JUST the SSM recovery partition. The recovery partition can be used for recovery with the "application-recovery partition" command in the sensor CLI.

    There may be some confusion here, because this file is the 'Recovery' image, BUT is NOT used with the command "recover the hw-module module 1" of the SAA.

    Instead, the Image of the 'system' is what is used with the command "recover the hw-module module 1.

    If you find that you do not use the correct file type (unkowingly used a upgrade or recovery file), then download the System Image file and try again.

    If you use the System Image file, then check the size and md5 checksum of the file and compare it to what is on cisco.com. It was damaged during the download from cisco.com and you may need a new download of the file.

    If the checksum md5 and size of the file is the file on cisco.com, check your TFTP server. Using a 3rd attempt of machine for the file from the tftp server tftp. Once the tftp would check the size and md5 checksum to verify that your TFTP server is able to serve the entire file. You want to make sure your TFTP server is not truncate your file for download.

  • Procedural error the call for VARRAY String as parameter

    Hello

    I get the error during the call to the procedure:

    Here are the steps:

    CREATE or REPLACE TYPE PART_TYPE IS an OBJECT (part_number VARCHAR2 (120));

    CREATE OR REPLACE TYPE PART_REC_TBL IS VARRAY (1000) of PART_TYPE ;

    I have a stored procedure in the package:

    create or replace package TEST_PART_SEARCH_PKG AUTHID CURRENT_USER AS

    PROCEDURE ADD_TO_PART)

    p_part_number_list IN PART_REC_TBL ,

    p_ord_number IN Varchar2,

    x_error_flag OUT Varchar2,

    x_error_msg OUT Varchar2

    );

    end TEST_PART_SEARCH_PKG;

    When I call the Package:

    DECLARE

    v_flag varchar2 (100);

    v_err_msg varchar2 (100);

    BEGIN

    TEST_PART_SEARCH_PKG. ADD_TO_PART ('09031518,0897701 ',' 003146M 56', v_flag, v_err_msg);

    END;

    error report-

    ORA-06550: line 5, column 6:

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

    ORA-06550: line 5, column 6:

    PL/SQL: Statement ignored

    It would be helpful if someone can help me on this

    Obviously. There are no part_number, so turn in your package and get rid of it:

    FOR indx1 IN 1.p_lot_number_list. COUNTY

    LOOP

    BEGIN

    SELECT

    inventory_item_id

    IN

    var_item_id

    Of

    test_part_number_v

    WHERE

    PART_NUMBER = p_part_number_list (indx1);

    EXCEPTION

    WHILE OTHERS THEN

    var_item_id: = NULL;

    END;

    SY.

  • Procedural error

    My procedure is put in error during execution. This procedure uses several functions and database objects. In what approach I continue during debugging.

    You can use the following table to get all dependent objects...

    And then as a result wise module check the data stream.

    Select * from dba_dependencies where name =' ';

    Thank you

  • Compilation of procedure error

    I'm trying to compile a procedure which is supposed to fill the tables with data, but I get errors ignored multiple statements. I'm running out of ideas what could be wrong, because the syntax seems very well. I downloaded the full code here: http://pastebin.com/gTnpj0Jm . Could someone please take a look?

    0566fdce-4035-4cdd-b2da-37d1e2b97e42 wrote:

    I'm sorry, but I searched in my code for a good 10 minutes and I can't find any case to appoint a pl/sql variable same as column name.

    You are right. Question is different.

    DECLARE
    DATE OF BORN_DATE_VALUE;
    BEGIN
    BORN_DATE_VALUE: = Trunc)
    TO_DATE ('2000 ', 'yyyy')
    +
    DBMS_RANDOM. VALUE)
    0,
    TO_DATE ('2015 ","yyyy")
    -
    TO_DATE ('2000 ', 'yyyy')
    ));
    END;

    INSERT INTO STUDENT (ID_STUDENT, F_NAME, L_NAME, BORN_DATE)
    VALUES (S_STUD. NEXTVAL, F_NAME_VALUE, L_NAME_VALUE, BORN_DATE_VALUE);

    BORN_DATE_VALUE range block, in which it is declared. If being outside the block INSERT statement in that born_date_value is declared, INSERT does not know what BORN_DATE_VALUE and assume it is the column name.

    SY.

  • pl/sql procedure error

    Hello

    I'm trying to insert the results of a query in a table. When I run it as a sql it works perfectly fine. I am writing this in a procedure that I need to run this often, but I get an error indicating that the table was not found. any suggestions on this.

    SQL query

    insert into db_usage

    SELECT hg. Nom_tablespace 'space ',.

    TOTALUSEDSPACE "use."

    (hg. TOTALSPACE - FG TOTALUSEDSPACE) "MB free.

    Hg.TotalSpace "Total."

    round (100 * ((hg.totalspace-fg.totalusedspace) / hg.totalspace))

    "using."

    SYSDATE

    Of

    (select nom_tablespace,

    Round (Sum (bytes) / 1048576) TotalSpace

    from dba_data_files

    Group by tablespace_name) hg.

    (select round (sum (bytes) /(1024*1024)) totalusedspace, nom_tablespace)

    from dba_segments

    GROUP BY nom_tablespace) fg

    where hg. Nom_tablespace = FG TABLESPACE_NAME

    ORDER BY hg. NOM_TABLESPACE;

    END;

    ***************

    PL/SQL

    CREATE OR REPLACE PROCEDURE TEST AS

    Begin

    DBMS_OUTPUT. ENABLE;

    insert into db_usage

    SELECT hg. Nom_tablespace 'space ',.

    TOTALUSEDSPACE "use."

    (hg. TOTALSPACE - FG TOTALUSEDSPACE) "MB free.

    Hg.TotalSpace "Total."

    round (100 * ((hg.totalspace-fg.totalusedspace) / hg.totalspace))

    "using."

    SYSDATE,

    TO_CHAR (sysdate, 'HH24')

    Of

    (select nom_tablespace,

    Round (Sum (bytes) / 1048576) TotalSpace

    from dba_data_files

    Group by tablespace_name) hg.

    (select round (sum (bytes) /(1024*1024)) totalusedspace, nom_tablespace)

    from dba_segments

    GROUP BY nom_tablespace) fg

    where hg. Nom_tablespace = FG TABLESPACE_NAME

    ORDER BY hg. NOM_TABLESPACE;

    END;

    Thank you

    balls

    Most likely, you must do the following:

    Connect / as sysdba

    Grant select on sys.dba_data_files to proc_owner;

    Grant select on sys.dba_segments to proc_owner;

    A few other comments...

    > DBMS_OUTPUT. ENABLE;

    It is not necessary in a stored procedure. This process has even not any DBMS_OUTPUT. PUT (_LINE) call so the above is unnecessary.

    > ORDER BY hg. NOM_TABLESPACE;

    Consider dropping it. Are you concerned that the data are inserted into the table in the order? What concerns you is that data comes from the table in the order sorted which cases you'd ORDER BY queries using this table.

    See you soon,.
    Brian

  • Dynamic insertion within the procedure error


    Hi all

    I use under oracle database on HP - UX.

    BANNER
    ----------------------------------------------------------------
    Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi
    PL/SQL Release 10.2.0.5.0 - Production
    CORE Production 10.2.0.5.0
    AMT for HP - UX: 10.2.0.5.0 - Production Version
    NLSRTL Version 10.2.0.5.0 - Production

    I'm not able to run the procedure below and it returns the error. The insert in the procedure returns error. If I execute manually only the insert statement, it works well.
    Can someone help me with this issue?

    Procedure
    ===========
    create or replace procedure test_proc
    as
    v_sql varchar2 (2000);
    Start
    v_sql: =' insert into TABLE1 (select owner, object_type, object_name, "S", "Y" of dba_objects@LINK1 )
    where owner = "ABC" and object_type = "TABLE" less
    Select the owner, object_type, object_name, "S", "Y" from dba_objects where owner = "ABC" and object_type = "TABLE") ';

    immediately run v_sql;
    commit;
    end;
    /

    exec test_proc;

    Error:
    ===========

    ERROR on line 1:
    ORA-00942: table or view does not exist
    ORA-06512: at "SYSTEM. TEST_PROC", line 8
    ORA-06512: at line 1

    user running this procedure doesn't have permission to read data from DBA_OBJECTS. Grant select permission on that to the user running this procedure and it should work.

    Onkar

  • Create a form based on a stored procedure error

    Hi all

    I am creating a form based on a stored procedure (CASH_MOVE). The stored procedure is inside a package (APEX_API).

    The package is not in the default schema of database application APEX (MO_APEX) analysis, but the workspace (USD) has access to this database scheme (MO_401)

    and the corresponding APEX analysis (MO_APEX/APEX_PUBLIC_USER) schema user has the EXECUTE privilege on the database to the other schema (APEX_API) package.

    So what happens during the wizard, at STEP 1, he sees the other schema, and I choose the package procedure.

    When I press next, it fails with the error 'user XXX has no privileges on the schema MO_401. ". "


    However, the user XXX is the developer of the APEX, which has no schema in the database. I tried also giving execute rights on APEX_PUBLIC_USER also without success.

    No idea why this happen?

    I use: Application Express 4.2.4.00.08

    Database version: 11.2.0.3.0

    TIA.

    Dionisis

    Ms. wrote:

    I am creating a form based on a stored procedure (CASH_MOVE). The stored procedure is inside a package (APEX_API).

    The package is not in the base schema of data analysis of the demand of the APEX (MO_APEX), but the workspace (MO_APEX) has access to this database scheme (MO_401)

    and the corresponding APEX analysis (MO_APEX/APEX_PUBLIC_USER) schema user has the EXECUTE privilege on the database to the other schema (APEX_API) package.

    So what happens during the wizard, at STEP 1, he sees the other schema, and I choose the package procedure.

    When I press next, it fails with the error 'user XXX has no privileges on the schema NNN. '.


    However, the user XXX is the developer of the APEX, which has no schema in the database. I tried also giving execute rights on APEX_PUBLIC_USER also without success.

    No idea why this happen?

    The developer APEX XXX there schema restrictions in the account privileges Schemes Accessible setting in Home > Administration > users > edit user?

  • Compile with stored procedure errors

    Hi guys, I just start SQL so forgive me if I ask stupid questions real. That's the problem I have right now, as I said in my title.

    It's my procedure.sql

    CREATE OR REPLACE PROCEDURE check IS

    no_of_duplicates NUMBER: = 0;

    BEGIN

    SELECT COUNT (*) IN no_of_duplicates

    THE EMPLOYEE

    WHERE E # =.

    (select E # PILOT)

    WHERE THERE ARE

    (SELECT E # MECHANIC)

    WHERE DRIVER. L # = MECHANIC. L#));

    IF no_of_duplicates: = 0 THEN dbms_output.put_line ('OK');

    ON THE OTHER

    SELECT E #, NAME OF THE EMPLOYEE

    WHERE E # =.

    (SELECT E # PILOT)

    WHERE THERE ARE

    (SELECT E # MECHANIC)

    WHERE DRIVER. L # = MECHANIC. L#));

    END IF;

    END check;

    /

    While trying to create the procedure, it gives me compilation errors. I took with this for hours and can't seem to find anything wrong with it. Can someone point me in the right direction? Thank you!

    Hello

    Once again, your postal code.  The error occurs when you call the procedure, but you have not posted the code that calls the procedure and causes the error.

    When I do this in SQL * more:

    SET SERVEROUTPUT ON ENCAPSULATED FORMAT
    EXEC check;

    The procedure that you have posted works perfectly (i.e., displayed the e # is, exactly as it was designed to do).

    Display the e # and the name consists of BULK COLLECT both the e # name in separate collections, like this:

    CREATE OR REPLACE PROCEDURE check IS
    TYPE e #_table IS the TABLE OF THE employee.e#%TYPE;
    e # e _list #_table;

    TYPE name_table IS TABLE OF THE employee.name%TYPE;
    name_list name_table;
    BEGIN
    SELECT e #, name
    E LOOSE COLLECTION #_list, name_list
    The EMPLOYEE
    WHERE e # (IN)
    SELECT d.e #.
    DRIVER d
    JOIN m mechanic ON d.e # m.e = #.
    );
    E IF #_list. COUNT = 0
    THEN
    dbms_output.put_line ('OK, there without duplicate of illict");
    ELSE - that is to say, e #_list. COUNTY <> 0
    dbms_output.put_line (' the following employees are drivers and mechanics :');)
    J IN 1.e #_list. COUNTY LOOP - I displays parentheses sometimes hard on the OTN site
    dbms_output.put (TO_CHAR (e #_list (j)))
    '999999999999'
    )
    );
    dbms_output.put (' ');
    dbms_output.put_line (name_list (j));
    END LOOP;
    END IF;
    END check;
    /
    DISPLAY ERRORS

    This is the result I get when I run the procedure above with your sample data:

    The following employees are drivers and mechanics:

    1 John Smith

    You will notice I did several other changes in your code, sometimes because they are much more practical and sometimes just to show you different ways to do the same thing, that you may or may not want to use in this problem.

    For example, you were doing the same query (with only very slight differences) 2 times: once to get the no_of_duplicates and then a second time to get the actual data.  I don't know if it's the most effective way to do what you need.  Say that there are 1000 rows in the result.  You get all the 1000 once just to get the total number (that you do not need, if all you worry at this point is if there is), then to get the data.  When you make a COLLECTION in BULK, you get automatically the COUNTY anyway, so why not not COLLECTING in BULK, and then use this count to see what to do next.  If the NUMBER is greater than 0, then you already have the data, and you do not need to fetch it again.  In addition, repeating (essentially) the same code is a maintenance problem.  If you need to make a change, you must make the same change to several places.  At best, it's a pain; but it is the exactly the kind of mistake that is easy to miss in trials, and you could have the code that runs for weeks in Production before you notice that it sometimes gives false results.

    Another example: e # is a NUMBER.  If it is possible to convert numbers in VARCHAR2s and save these VARCHAR2s in a VARCHAR2 collection, would be unwise more just to store them in a collection of NUMBER?

  • Creating a table using a stored procedure, error

    MY querry is as follows:

    create or replace
    PROCEDURE New_Account_Activations)
    MYDATE_DD OUT VARCHAR2,
    MYDATE_MM OUT VARCHAR2,
    MYDATE_YYYY OUT VARCHAR2,
    MYDATE OUT VARCHAR2,
    VAR1 OUT VARCHAR2,
    VAR2 OUT VARCHAR2,
    VAR3 OUT VARCHAR2,
    TABLE_NAME OUT VARCHAR2) IS

    BEGIN
    SELECT TO_CHAR (SYSDATE-2, 'YYYY') INTO MYDATE_YYYY FROM DUAL;
    SELECT TO_CHAR (SYSDATE-2, "MM") INTO MYDATE_MM FROM DUAL;
    SELECT TO_CHAR (SYSDATE-2, 'DD') INTO MYDATE_DD FROM DUAL;
    MYDATE: = MYDATE_YYYY | MYDATE_MM | MYDATE_DD | '000000.000Z';
    -TABLE_NAME: = "NEWACCOUNTACTI_TEST";
    VAR1: = 'B ';.
    VAR2: = 'A ';
    VAR3: = 'Y ';
    Table_name: = "NewAccountActi" | '_' || MYDATE_YYYY | '_'|| MYDATE_MM | '_'|| MYDATE_DD;
    run immediately "CREATE TABLE tbl_name AS SELECT * FROM NEWACCOUNTACTI_TEST WHERE 1 = 0';"

    END;

    ERRORS

    ORA-01031: insufficient privileges

    ORA-06512: at "JACK. NEW_ACCOUNT_ACTIVATIONS', line 21

    ORA-06512: at the level of line 12

    Process is complete.

    WRONG FORUM!

    This forum is for Sql Developer issues only. Please mark the thread ANSWERED and repost it in SQL and PL/SQL forum.

    https://forums.Oracle.com/community/Developer/English/oracle_database/sql_and_pl_sql

    As says the Exception, your user JACK does NOT CREATE TABLE privileges granted DIRECTLY to them (not through a role) on the NEWACCOUNTACTI_TEST table. Grant privileges directly to the user.

    If that does not meet your question repost your question in the forum; do NOT here.

  • PLSQL procedure error "component must be reported.

    Hello
    Greetings

    I need to write a PLSQL procedure to compare the data between two different requests (through the collection), but in the face of an error

    VERSION - Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi

    EXAMPLE OF CODE-


    CREATE or REPLACE procedure V_test

    type v_record is (record
    CUSTOMER_TYPE varchar2 (10),
    PRODUCT_CATEGORY varchar2 (10),
    PRODUCT_DESC varchar2 (40));

    type v_tst1 is table of v_record INDEX OF pls_INTEGER;
    V_TEST1 v_tst1;

    type v_tst2 is table of v_record INDEX OF pls_INTEGER;
    V_TEST2 v_tst2;


    Start


    Select CUSTOMER_TYPE, b.PRODUCT_CATEGORY, c.PRODUCT_DESC
    BULK COLLECT INTO V_TEST1
    of a, b, c
    where a.PRODUCT_CATEGORYD = b.PRODUCT_CATEGORY and a.PRODUCT = c.PRODUC
    CUSTOMER_TYPE, PRODUCT_CATEGORY, PRODUCT_DESC group;



    Select CUSTOMER_TYPE, PRODUCT_CATEGORY, PRODUCT_DESC
    BULK COLLECT INTO VAS_TEST2
    d
    Group of CUSTOMER_TYPE, b.PRODUCT_CATEGORY, c.PRODUCT_DESC;



    BECAUSE me in V_TEST1. FIRST... V_TEST1. LAST
    LOOP
    FOR j IN V_TEST2. FIRST... V_TEST2. LAST
    loop


    If VAS_TEST1. CUSTOMER_TYPE (i) = VAS_TEST2. CUSTOMER_TYPE (j) then
    If VAS_TEST1. PRODUCT_CATEGORY (i) = VAS_TEST2. PRODUCT_CATEGORY (j) then


    insert into v_tab values (sysdate, V_TEST1. CUSTOMER_TYPE (i), V_TEST1. PRODUCT_CATEGORY (i), V_TEST1. PRODUCT_DESC (i));
    commit;

    end if;

    end if;



    END LOOP;



    END LOOP;
    END;
    /

    ERROR - "PLS-00302: component 'CUSTOMER_TYPE' must be declared '.

    Thank you in advance to suggest corrections or alternatives
  • OBIEE 11 g - connection Pool &gt; Execute before application procedural error.

    Hello

    I am trying to run a stored procedure before running a query. Thus in the Connection Pool > Login Scripts > before Execute Query, I have the following code.
    BEGIN PRC_RUN_MV_JOBS();  
    END;
    I call a DBMS_JOB. RUN the PRC_RUN_MV_JOBS procedure (NUMBER of JOBS). It works fine when I run using Toad or SQL Developer.

    And I run a scan, I get the following error.
    State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 43113] Message returned from OBIS. [nQSError: 43119]
     Query Failed: [nQSError: 17001] Oracle Error code: 6550, message: ORA-06550: line 1, column 27: PLS-00103: Encountered the symbol "" when expecting one of the following: 
    begin case declare end exception exit for goto if loop mod null pragma raise return select update while with <an identifier> <a double-quoted delimited-identifier> <a bind variable> 
    << close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe The symbol "" was ignored. at OCI call OCIStmtExecute: BEGIN 
    PRC_RUN_MV_JOBS(); END;. [nQSError: 17011] SQL statement execution failed. (HY000)
    Can someone make me please how to fix this? Thanks in advance.

    Try this:

    BEGIN PRC_RUN_MV_JOBS;  END;
    

    Best regards
    Kalyan Chukkapalli
    http://123obi.com

  • ORA-03113 not registered as procedural error

    Hi all

    We organize several refreshes of materialized view of a procedure. When the procedure ORA-03113 error on a meeting point of view, it is no exception but just stops.
    The part of the update of the procedure is the following:

    Start
    dbms_snapshot. Refresh ('USR.) USRH_SNAPSHOT');
    exception
    while others then
    log_error ('USRH_SNAPSHOT');
    end;


    Is there a reason why ORA-03113 does not behave as an error when run procedure?
    Y at - it any special way to capture this error in the procedure?

    We found this error code only when we ran the manual control of SQL Developer.

    Thanks for the help.

    yavvie wrote:
    Is it possible to grasp the message in the procedure?

    N °

  • any procedural error in

    Hi all

    I created a procedure

    create or replace procedure emp_sal_hike
    (emp_name in varchar2,
    emp_basic number,
    emp_nat out varchar2,.
    emp_religion out varchar2,.
    emp_job out varchar2)
    is
    Start
    Select emp.m_emp_religion, job.m_job_title, nat.m_nationality_name and emp.m_emp_basic in the emp_religion, emp_job, emp_nat, emp_basic
    of emp, m_job work, m_nationality nat m_employee
    where job.m_job_code = emp.m_emp_job_code and emp.m_emp_nationality = nat.m_nationality_code and emp.m_emp_name = emp_name
    order by 1;
    end;
    /

    and I'm the appellant with procedure below

    declare
    emp_basic1 number (30);
    emp_nat1 varchar2 (20);
    emp_religion1 varchar2 (20);
    emp_job varchar2 (20);
    cursor emp_cur is select distinct (m_emp_name) of m_employee where m_emp_name like '%' order of m_emp_name;
    Start
    for SheikYerbouti in emp_cur
    loop
    emp_sal_hike (emp_rec.m_emp_name, emp_basic1, emp_nat1, emp_religion1, emp_job);
    dbms_output.put_line (' NAME :'|| emp_rec.m_emp_name |) "NATIONALITY: ' | '. emp_nat1 | ' RELIGION: ' | emp_religion1 |
    ' JOB: ' | emp_job | "OLD SAL: ' |" emp_basic1);
    end loop;
    end;
    /

    This is erroing saying ORA-01422: exact fetch returns more than number of lines
    ORA-06512: at "EMP_SAL_HIKE", line 9
    ORA-06512: at line 10

    some rows are returned after pressing ok error

    Help, please

    Concerning

    Much better to use statements of anchor to avoid easily preventable errors
    for example, no

    emp_name out varchar2
    ....
    emp_name1 varchar2(20);
    

    but

    emp_name out m_employee.m_emp_name%TYPE
    ...
    emp_name1 m_employee.m_emp_name%TYPE
    
  • Insert the procedural error

    I wrote an insert procedure. It shows some errors.
    This is the query.

    create or replace PROCEDURE SP_MEMBERS_IN)
    P_MEM_ID IN MEMBERS. MEM_ID,
    P_MEM_NAME IN MEMBERS. MEM_NAME,
    P_B_DAY IN MEMBERS. B_DAY,
    p_address in MEMBERS. ADDRESS

    *)*
    AS
    BEGIN
    INSERT INTO MEMBERS (MEM_ID, MEM_NAME, B_DAY, ADDRESS)
    VALUES (P_MEM_ID, P_MEM_NAME, P_B_DAY, P_ADDRESS);
    COMMIT;

    END SP_MEMBERS_IN;

    Here are the errors.
    Error (1): PL/SQL: analysis of completed Compilation unit
    Error (2.1): PLS-00488: invalid variable declaration: object ' MEMBERS. MEM_ID' must be a type or subtype

    Can someone help me fix it please?

    create or replace PROCEDURE SP_MEMBERS_IN)
    P_MEM_ID IN MEMBERS. MEM_ID % TYPE,
    P_MEM_NAME IN MEMBERS. MEM_NAME % TYPE,
    P_B_DAY IN MEMBERS. B_DAY % TYPE,
    p_address in MEMBERS. ADDRESS TYPE %

    )
    AS
    BEGIN
    INSERT INTO MEMBERS (MEM_ID, MEM_NAME, B_DAY, ADDRESS)
    VALUES (P_MEM_ID, P_MEM_NAME, P_B_DAY, P_ADDRESS);
    COMMIT;

    END SP_MEMBERS_IN;

    you forget to put % TYPE in the settings variable declaration

Maybe you are looking for