Creating a package body

Hi Everybody,
I'm trying to create a package body but i keep getting an error message saying package created with complication. What i am i missing? Thanks in advance.
CREATE OR REPLACE PACKAGE BODY MY_PACK
IS
PROCEDURE MY_PROC(A NUMBER, B NUMBER)
IS
C NUMBER(4);
BEGIN
C:=A+B;
DBMS_OUTPUT.PUT_LINE('RESULT= '||C);
END;
FUNCTION NETSAL(TEMPNO EMP.EMPNO%TYPE) RETURN NUMBER
IS
TSAL EMP.SAL%TYPE;
TCOMM EMP.COMM%TYPE;
NETSAL NUMBER(10,2);
BEGIN
SELECT SAL,NVL(COMM,0) INTO TSAL,TCOMM FROM EMP WHERE EMPNO=TEMPNO;
NETSAL:=TSAL+TCOMM;
RETURN(NETSAL);
END;
END;
/

980155 wrote:
Hi Everybody,
I'm trying to create a package body but i keep getting an error message saying package created with complication. What i am i missing? Thanks in advance.
CREATE OR REPLACE PACKAGE BODY MY_PACK
IS
PROCEDURE MY_PROC(A NUMBER, B NUMBER)
IS
C NUMBER(4);
BEGIN
C:=A+B;
DBMS_OUTPUT.PUT_LINE('RESULT= '||C);
END;
FUNCTION NETSAL(TEMPNO EMP.EMPNO%TYPE) RETURN NUMBER
IS
TSAL EMP.SAL%TYPE;
TCOMM EMP.COMM%TYPE;
NETSAL NUMBER(10,2);
BEGIN
SELECT SAL,NVL(COMM,0) INTO TSAL,TCOMM FROM EMP WHERE EMPNO=TEMPNO;
NETSAL:=TSAL+TCOMM;
RETURN(NETSAL);
END;
END;
/what does SHOW ERROR report?
How do I ask a question on the forums?
SQL and PL/SQL FAQ
since we don't have your table or data, we can't run posted code.

Similar Messages

  • Error! Package Body Creating

    hi, i am trying to setup DBMS_PROFILER package with sqlplus by typing :
    "@E:\oraclexe\app\oracle\product\10.2.0\server\RDBMS\ADMIN\profload.sql"
    after, i've typed, this results is displayed :
    SQL> @E:\oraclexe\app\oracle\product\10.2.0\server\RDBMS\ADMIN\profload.sql
    Package created
    Grant succeeded
    Synonym created
    Library created
    Warning: Package body created with compilation errors
    Testing for correct installation
    PACKAGE BODY sys.DBMS_PROFILER - missing or invalid
    PL/SQL procedure successfully completed
    So, as expected, when i trying to invoke start_profiler method, this errors would be appeared :
    SQL> exec dbms_profiler.start_profiler('Hello');
    begin dbms_profiler.start_profiler('Hello'); end;
    ORA-04063: package body "SYS.DBMS_PROFILER" has errors
    ORA-06508: PL/SQL: could not find program unit being called: "SYS.DBMS_PROFILER"
    ORA-06512: at line 2
    SQL>
    so, how can i fix this problem?
    thanx for responses

    im using oracle xe 10.0.2.0, and i've logined as SYSDBA.
    i think that there is another problem. may be my profload.sql is broken. Is it possible?
    SQL> @E:\oraclexe\app\oracle\product\10.2.0\server\RDBMS\ADMIN\profload.sql
    Package created
    Grant succeeded
    Synonym created
    Library created
    Warning: Package body created with compilation errors
    Testing for correct installation
    PACKAGE BODY sys.DBMS_PROFILER - missing or invalid
    PL/SQL procedure successfully completed
    i couldnt find any solution yet.

  • BUG 1.5 : Can't create package body.

    I'm getting this stack dump in the console trying to create a package body.
    I'm logged in as a dba.
    executed 'alter session set current schema=x';
    created package in the worksheet.
    opened package from Other users|x|packages.
    Edited and compiled package.
    Tried to create body from connection tree context menu.
    I have both viewer and edit window open on the package. The stack dump occurs regardless of which one had focus before I go to the tree to create the body.
    Exception while performing action Create Body
    java.lang.IllegalStateException: Not in compound edit
            at oracle.javatools.buffer.AbstractTextBuffer.endEdit(AbstractTextBuffer.java:1126)
            at oracle.ide.model.TextNode$FacadeTextBuffer.endEdit(TextNode.java:1074)
            at oracle.dbtools.raptor.dialogs.actions.CreateBodyAction.launch(CreateBodyAction.java:94)
            at oracle.dbtools.raptor.controls.sqldialog.ObjectActionController.handleEvent(ObjectActionController.java:140)
            at oracle.ide.controller.IdeAction.performAction(IdeAction.java:524)
            at oracle.ide.controller.IdeAction.actionPerformedImpl(IdeAction.java:855)
            at oracle.ide.controller.IdeAction.actionPerformed(IdeAction.java:496)
            at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
            at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
            at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
            at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
            at javax.swing.AbstractButton.doClick(AbstractButton.java:302)
            at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1000)
            at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1041)
            at java.awt.Component.processMouseEvent(Component.java:5488)
            at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
            at java.awt.Component.processEvent(Component.java:5253)
            at java.awt.Container.processEvent(Container.java:1966)
            at java.awt.Component.dispatchEventImpl(Component.java:3955)
            at java.awt.Container.dispatchEventImpl(Container.java:2024)
            at java.awt.Component.dispatchEvent(Component.java:3803)
            at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
            at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
            at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
            at java.awt.Container.dispatchEventImpl(Container.java:2010)
            at java.awt.Window.dispatchEventImpl(Window.java:1774)
            at java.awt.Component.dispatchEvent(Component.java:3803)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
            at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

    This has been fixed for the patch release 1.5.1.
    Sue

  • DBMS_STATS package body creation

    How do the procedures in the DBMS_STATS package get created? I ran the dbmsstat.sql procedure, but the gather_schema_stats procedure didn't work, so I read the entire dbmsstat.sql procedure, and all it creates is the package, not the package body. What script do I have to run in order to create the package body?
    I'm running 8i on Solaris 2.6, if that matters.
    Thanks,
    Rich

    When I try to execute dbms_stats.gather_schema_stats, I get:
    ERROR at line 1:
    ORA-04068: existing state of packages has been discarded
    ORA-04067: not executed, package body "SYS.DBMS_STATS" does not exist
    ORA-06508: PL/SQL: could not find program unit being called
    ORA-06512: at line 1
    I just queried dba_source and found the dbms_stats package, but not the package body. If it was there before, maybe I wiped it out by running dbmsstats.sql again (when you create or replace a package, is the package body discarded?).
    Thanks for the tip on prvtstat.plb. I'll try running it and see what happens.
    Rich

  • Package body issue

    Hi ,I wrote a package body.
    I get following error.
    1/14 PLS-00201: identifier 'WOC_DELETE_MODEL_DATA' must be declared
    1/14 PLS-00304: cannot compile body of 'WOC_DELETE_MODEL_DATA' without its specification
    0/0 PL/SQL: Compilation unit analysis terminated
    CREATE OR REPLACE PACKAGE BODY Woc_Delete_Model_Data
    AS
    NAME: Woc_Delete_Model_Data
    PURPOSE:
    REVISIONS:
    Ver Date Author Description
    1.0 1/08/2008 mnettam 1. Created this package body.
    PROCEDURE DeleteUIRule(
    p_product_model IN VARCHAR2,
    p_request_status OUT VARCHAR2,
    p_err_mesg OUT VARCHAR2
    ) IS
    BEGIN
    DBMS_OUTPUT.ENABLE(1000000);
    /* delete UI Data rules */
    DELETE from WOC_CATEGORY_UI_INFO where product_Model_Name = p_product_model;
    dbms_output.put_line('product MOdel '||p_product_model||' from Woc_Category_UI_Info deleted');
    --EXCEPTION
    --WHEN OTHERS THEN
    --p_err_mesg := 'ERROR in CUSOR';
    --DBMS_OUTPUT.put_line ('ERROR in CUSOR')
    END DeleteUIRule;
    PROCEDURE delete_batch_woc_model(p_flag IN VARCHAR2,p_err_mesg OUT VARCHAR2)
    IS
    l_product_model VARCHAR2(30);
    p_request_status VARCHAR2(30);
    BEGIN
    l_product_model := v_header_rec.PRODUCT_MODEL_NAME;
    --DBMS_OUTPUT.put_line ('In loop l_product_number '|| l_product_number);
    IF(l_product_model IS NOT NULL ) THEN
    --DBMS_OUTPUT.put_line ('l_product_number '|| l_product_number);
    DeleteUIRule(l_product_model,p_request_status,p_err_mesg);
    END IF;
    --EXCEPTION WHEN OTHERS THEN
    -- p_err_mesg := 'ERROR in CUSOR';
    --DBMS_OUTPUT.put_line ('ERROR in CUSOR');
    -- RETURN;
    END delete_batch_woc_model;
    END Woc_Delete_Model_Data;

    I am new to oracle.Please can you explain what is package specification .
    I created package structure. Are you talking about package structure?
    whenever sqlerror continue
    SET SERVEROUTPUT ON SIZE 1000000;
    DECLARE
    P_FLAG VARCHAR2(200);
    P_ERR_MESG VARCHAR2(200);
    l_SDdate VARCHAR2(200);
    l_EDdate VARCHAR2(200);
    l_Tdate DATE;
    l_start NUMBER DEFAULT dbms_utility.get_time;
    BEGIN
    P_FLAG := NULL;
    P_ERR_MESG := NULL;
    DBMS_OUTPUT.PUT_LINE('Start Time: ' || l_start);
    Woc_Delete_Model_Data.DELETE_BATCH_WOC_MODEL( P_FLAG, P_ERR_MESG );
    dbms_output.put_line(round((dbms_utility.get_time - l_start) / 100,2) || 'seconds');
    COMMIT;
    END;
    show errors

  • User in Package Body changing

    Hello,
    When i create a package body, and change the user to the default and save...
    It continually switches back to 'User3'. If I open the 'properties', I see
    the correct user is set, however when I 'edit' the body,
    in the declaration it always reverts back to:
    CREATE OR REPLACE PACKAGE BODY User3.MYPKG_PKG AS ...
    even if i change that and save.. next time it opens I see the same thing..
    I have the Default user set correctly in the prefs.. anything else i can try?
    thanks!
    -chris

    Hi Chris,
    It seems there is a problem that if there is a tab in the main window showing the text of the Package or the Package Body, then on doing a File/Save, the owner is reset to the owner shown in that text.
    One of these tabs is set up whenever a new Package or Package Body is created.
    Unfortunately this text does not get updated if the Properties dialog is subsequently used to change the User.
    To get round this you should close the tabs for the Package and the Package Body before using the Properties dialog to change the User. (If you then wish to reopen them, you can do this by selecting Edit from the menu that appears if you right-click over the Package or Package Body.)
    There is a second problem that the Default User identified in the Preferences is ignored when a new Package is created.
    I have logged bugs on both these problems.
    David

  • Please help with package body

    Hi This is my package veriable and body is created, but when I try to create a package body, it shows error
    {CREATE or replace PACKAGE crime_type AS
       FUNCTION tot_no_of_crime(CRIME_TYPE_ID NUMBER,CRIME_TYPE_DESC VARCHAR2, REPORTED_CRIME_ID NUMBER,DATE_REPORTED DATE,
    CRIME_POSTCODE VARCHAR2,DATE_CLOSED DATE,FK1_CRIME_TYPE_ID NUMBER,FK2_STATION_ID VARCHAR2)
          RETURN NUMBER;
       FUNCTION create_CRIME_TYPE(CRIME_TYPE_DESC VARCHAR2, CRIME_TYPE_ID NUMBER)
          RETURN NUMBER;
       PROCEDURE remove_PL_CRIME_TYPE1(CRIME_TYPE_ID NUMBER);
       PROCEDURE remove_PL_REPORTED_CRIME1(REPORTED_CRIME_ID NUMBER);
       PROCEDURE increase_CRIME_TYPE(CRIME_TYPE_ID NUMBER,CRIME_TYPE_DESC VARCHAR2);
       PROCEDURE increase_REPORTED_CRIME( CRIME_TYPE_ID NUMBER, REPORTED_CRIME_incr NUMBER);
          no_REPORTED_CRIME EXCEPTION;
          no_CRIME_TYPE EXCEPTION;
    END crime_type;}
    package body is
    {CTFUNCTION initialise_crime_types
    return NUMBER is
    total number;
    begin
          select count(*) into total from PL_CRIME_TYPE1;
          return(total);
    End;
    FUNCTION REPORTED_CRIME
       (REPORTED_CRIME_ID NUMBER,
      DATE_REPORTED  DATE,
        CRIME_POSTCODE VARCHAR2 ,
        CRIME_STATUS VARCHAR2 ,
        DATE_CLOSED DATE ,
        FK1_CRIME_TYPE_ID NUMBER,
        FK2_STATION_ID VARCHAR2)
    RETURN NUMBER IS
       new_reported_crime_id NUMBER(3);
    BEGIN
       SELECT crimetypeseq.NEXTVAL
          INTO new_reported_crime_id
          FROM DUAL;
       INSERT INTO PL_REPORTED_CRIME1(REPORTED_CRIME_ID, DATE_REPORTED, CRIME_POSTCODE, CRIME_STATUS, DATE_CLOSED, FK1_CRIME_TYPE_ID, FK2_STATION_ID)
          VALUES (REPORTED_CRIME_ID, DATE_REPORTED, CRIME_POSTCODE, CRIME_STATUS, DATE_CLOSED, FK1_CRIME_TYPE_ID, FK2_STATION_ID);
             tot_reported_crimes := tot_reported_crimes + 1;
       RETURN(new_CRIME_TYPE_ID);
    END;
    FUNCTION create_CRIME_TYPE(CRIME_TYPE_DESC VARCHAR2)
           RETURN NUMBER IS
          new_crime_type_id NUMBER(38,0);
       BEGIN
          SELECT  crimetypeseq.NEXTVAL;
             INTO new_crime_type_id
             FROM DUAL;
          INSERT INTO PL_CRIME_TYPE1
             VALUES (CRIME_TYPE_ID CRIME_TYPE_DESC );
                tot_crime_types := tot_crime_types + 1;
          RETURN(new_reported_crime_id);
       END;
    PROCEDURE remove_crime_types(crime_type_id NUMBER) IS
       BEGIN
          DELETE FROM PL_CRIME_TYPE1
          WHERE PL_CRIME_TYPE1.crime_type_id = remove_PL_CRIME_TYPE1.crime_type_id;
             tot_no_of_crimes := tot_no_of_crimes - 1;
       END;
    PROCEDURE remove_reported_crimes(reported_crime_id NUMBER) IS
       BEGIN
          DELETE FROM PL_REPORTED_CRIME1
          WHERE PL_REPORTED_CRIME1 .reported_crime_id = remove_PL_REPORTED_CRIME1.reported_crime_id;
             tot_reported_crimes := tot_reported_crimes - 1;
          SELECT COUNT(*)
             INTO tot_crime_types
             FROM PL_CRIME_TYPE1;
    End;
    PROCEDURE increase_crime_type(CRIME_TYPE_ID NUMBER,CRIME_TYPE_DESC VARCHAR2) IS
       curr_ crime_typeNUMBER(7,2);
       BEGIN
          SELECT crime_type
          INTO curr_crime_type
          FROM PL_CRIME_TYPE1
          WHERE PL_CRIME_TYPE1.crime_type_id = increase_crime_type.crime_type_id;
          IF curr_crime_type IS NULL
             THEN RAISE no_crime_type;
          ELSE
             UPDATE PL_CRIME_TYPE1
             SET crime_type = crime_type + crime_type_incr
             WHERE crime_type_id = crime_type_id;
          END IF;
       END;
    PROCEDURE increase_reported_crime(CRIME_TYPE_ID NUMBER, REPORTED_CRIME_incr NUMBER) IS
          curr_reported_crime NUMBER(7,2);
       BEGIN
          SELECT reported_crime
          INTO curr_reported_crime
          FROM PL_REPORTED_CRIME1
          WHERE PL_REPORTED_CRIME1.crime_type_id = increase_reported_crime.crime_type_id;
          IF curr_reported_crime IS NULL
             THEN RAISE no_reported_crime;
          ELSE
             UPDATE PL_REPORTED_CRIME1
             SET reported_crime = reported_crime + reported_crime_incr;
          END IF;
       END;
    BEGIN
    select count(*) into tot_crime_types from PL_CRIME_TYPE1;
          select count(*) into tot_reported_crimes from PL_REPORTED_CRIME1;
    tot_crime_types := initialise_crime_types();
    tot_reported_crimes:= initialise_tot_reported_crimes();
    END;}

    Ganesh Ji Namaste
    I have changed my Package variable. My new veriable is
    {CREATE or replace PACKAGE crime_type AS
       FUNCTION tot_no_of_crime_type(CRIME_TYPE_ID NUMBER,CRIME_TYPE_DESC VARCHAR2)
          RETURN NUMBER;
       FUNCTION CREATE_REPORTED_CRIME(REPORTED_CRIME_ID NUMBER,DATE_REPORTED DATE,CRIME_POSTCODE VARCHAR2,CRIME_STATUS VARCHAR2,DATE_CLOSED DATE,FK1_CRIME_TYPE_ID NUMBER,FK2_STATION_ID NUMBER)
          RETURN NUMBER;
       PROCEDURE remove_PL_CRIME_TYPE1(CRIME_TYPE_ID NUMBER);
       PROCEDURE remove_PL_REPORTED_CRIME1(REPORTED_CRIME_ID NUMBER);
       PROCEDURE increase_CRIME_TYPE(CRIME_TYPE_ID NUMBER,CRIME_TYPE_DESC VARCHAR2);
       PROCEDURE increase_REPORTED_CRIME( CRIME_TYPE_ID NUMBER, REPORTED_CRIME_incr NUMBER);
          no_REPORTED_CRIME EXCEPTION;
          no_CRIME_TYPE EXCEPTION;
    END crime_type;}
    and my body package is
    {CREATE OR REPLACE PACKAGE BODY crime_type AS
       tot_crime_types NUMBER;
       tot_reported_crimes NUMBER;
    FUNCTION initialise_crime_types
    return number is
    total number;
    begin
          select count(*) into total from PL_CRIME_TYPE1;
          return(total);
    End;
    FUNCTION initialise_reported_crimes
    return number is
    total number;
    begin
          select count(*) into total from PL_REPORTED_CRIME1;
          return(total);
    End;
    FUNCTION tot_no_of_crime_type
       (CRIME_TYPE_ID NUMBER,
        CRIME_TYPE_DESC VARCHAR2)
    RETURN NUMBER IS
       new_crime_type_id NUMBER(38,0);
    BEGIN
       SELECT crimetypeseq.NEXTVAL
          INTO new_crime_type_id
          FROM DUAL;
       INSERT INTO PL_CRIME_TYPE1(CRIME_TYPE_ID, CRIME_TYPE_DESC)
          VALUES (new_CRIME_TYPE_ID, CRIME_TYPE_DESC);
             tot_crime_types := tot_crime_types + 1;
       RETURN(new_CRIME_TYPE_ID);
    END;
    FUNCTION CREATE_REPORTED_CRIME(REPORTED_CRIME_ID NUMBER,DATE_REPORTED DATE,CRIME_POSTCODE VARCHAR2,CRIME_STATUS VARCHAR2,DATE_CLOSED DATE,FK1_CRIME_TYPE_ID NUMBER,FK2_STATION_ID NUMBER)
       RETURN NUMBER IS
          new_reported_crime_id NUMBER(38,0);
       BEGIN
          SELECT reportedcrimeseq.NEXTVAL
             INTO new_reported_crime_id
             FROM dual;
          INSERT INTO PL_REPORTED_CRIME1
             VALUES (new_reported_crime_id,REPORTED_CRIME_ID,DATE_REPORTED,CRIME_POSTCODE,CRIME_STATUS,DATE_CLOSED,FK1_CRIME_TYPE_ID,FK2_STATION_ID);
                tot_reported_crimes := tot_reported_crimes + 1;
          RETURN(new_reported_crime_id);
       END;
    PROCEDURE remove_crime_types(crime_type_id NUMBER) IS
       BEGIN
          DELETE FROM PL_CRIME_TYPE1
          WHERE PL_CRIME_TYPE1.crime_type_id = remove_PL_CRIME_TYPE1.crime_type_id;
             tot_crime_types := tot_crime_types - 1;
       END;
    PROCEDURE remove_reported_crimes(reported_crime_id NUMBER) IS
       BEGIN
          DELETE FROM PL_REPORTED_CRIME1
          WHERE PL_REPORTED_CRIME1 .reported_crime_id = remove_PL_REPORTED_CRIME1.reported_crime_id;
             tot_reported_crimes := tot_reported_crimes - 1;
          SELECT COUNT(*)
             INTO tot_crime_types
             FROM PL_CRIME_TYPE1;
    End;
    PROCEDURE increase_crime_type(CRIME_TYPE_ID NUMBER,CRIME_TYPE_DESC VARCHAR2) IS
       curr_ crime_typeNUMBER(38,0);
       BEGIN
          SELECT crime_type
          INTO curr_crime_type
          FROM PL_CRIME_TYPE1
          WHERE PL_CRIME_TYPE1.crime_type_id = increase_crime_type.crime_type_id;
          IF curr_crime_type IS NULL
             THEN RAISE no_crime_type;
          ELSE
             UPDATE PL_CRIME_TYPE1
             SET crime_type = crime_type + crime_type_incr
             WHERE crime_type_id = crime_type_id;
          END IF;
       END;
    PROCEDURE increase_reported_crime(CRIME_TYPE_ID NUMBER, REPORTED_CRIME_incr NUMBER) IS
          curr_reported_crime NUMBER(7,2);
       BEGIN
          SELECT reported_crime
          INTO curr_reported_crime
          FROM PL_REPORTED_CRIME1
          WHERE PL_REPORTED_CRIME1.crime_type_id = increase_reported_crime.crime_type_id;
          IF curr_reported_crime IS NULL
             THEN RAISE no_reported_crime;
          ELSE
             UPDATE PL_REPORTED_CRIME1
             SET reported_crime = reported_crime + reported_crime_incr;
          END IF;
       END;
    BEGIN
    select count(*) into tot_crime_types from PL_CRIME_TYPE1;
          select count(*) into tot_reported_crimes from PL_REPORTED_CRIME1;
    tot_crime_types := initialise_crime_types();
    tot_reported_crimes:= initialise_reported_crimes();
    END;}
    Could You please check is that correct or not?
    Thanks in advance for your time and co-operation
    Rubel Roy

  • RMAN-06444 dbms_rcvman package body created with compliation errors

    I am trying to install Recovery manager but I get the above error message "RMAN-06444 dbms_rcvman package body created with compliation errors" and "RMAN-06433 error installing recovery cataolog"
    Can someone tell me what I did wrong?

    My Oracle version is 8i.
    I started from scratch again and was able to create a catalog, create a user(RMAN) with sysdba privleges.
    But when I try to connect to the target I get insufficient privleges.???
    I tried these methods and still have insufficient privleges.
    rman target / catalog rman/rman@rcat
    rman target system/manager@jem03 catalog rman/rman@rcat
    RMAN> connect target
    What am I doing wrong?
    Thanks for responding by the way.
    James

  • Error while creating Package body

    Hi I tried the following package is created but body is created with errors
    CREATE OR REPLACE PACKAGE pack_ttt IS
    TYPE rec_ttt_colinfo IS RECORD (
      columnName VARCHAR2(30));
    TYPE nt_ttt_colInformation IS TABLE OF rec_ttt_colinfo;
    FUNCTION getColumns(schemaNm VARCHAR2 , TableNm VARCHAR2)
      RETURN nt_ttt_colInformation;
    END;
    CREATE OR REPLACE PACKAGE BODY pack_ttt IS
    function getColumns(
      schemaNm VARCHAR2 ,
      TableNm VARCHAR2)
    RETURN nt_ttt_colInformation IS
    colvarfunc1 nt_ttt_colInformation;
    EXECUTE IMMEDIATE 'SELECT COLUMN_NAME, DATA_TYPE FROM ALL_TAB_COLUMNS WHERE OWNER = ''' || schemaNm || ''' AND TABLE_NAME = ''' || TableNm || ''''
          BULK COLLECT INTO columnsList;
          RETURN colvarfunc1;
    END;
    END;And the error is
    LINE/COL ERROR
    7/20     PLS-00103: Encountered the symbol "SELECT COLUMN_NAME, DATA_TYPE
             FROM ALL_TAB_COLUMNS WHERE OWNER =" when expecting one of the
             following:
             := . ( @ % ; not null range default character
             The symbol ":=" was substituted for "SELECT COLUMN_NAME,
             DATA_TYPE FROM ALL_TAB_COLUMNS WHERE OWNER =" to continue.
    8/7      PLS-00103: Encountered the symbol "BULK" when expecting one of
             the following:
             * & = - + ; < / > at in is mod remainder not rem
             <an exponent (**)> <> or != or ~= >= <= <> and or like LIKE2_
    LINE/COL ERROR
             LIKE4_ LIKEC_ between || member SUBMULTISET_

    Why are you using dynamic SQL, there is absolutely no need for that. And the way you are using it is plain wrong, since it is subject to SQL injection and hard parsing.
    CREATE OR REPLACE PACKAGE BODY pack_ttt IS
      FUNCTION getcolumns (
        schemanm    VARCHAR2,
        tablenm     VARCHAR2
        RETURN nt_ttt_colinformation IS
        colvarfunc1   nt_ttt_colinformation;
      BEGIN
        SELECT column_name,
               data_type
        BULK   COLLECT INTO columnslist
        FROM   all_tab_columns
        WHERE  owner = schemanm
               AND table_name = tablenm;
        RETURN colvarfunc1;
      END;
    END;
    /Don't get into the habbit of doing dynamic sql, it just demonstrates that you have no clue whatsoever as to what you are dealing with.
    Regards
    Peter

  • Create package body

    It's been so long since I've created a package that I can't remember how. The package spec I can create easily enough by right clicking the Package icon in the navigator and clicking "New Package", but where does the body come from? Thanks.

    Never mind. The “Create Body” option on the right-click menu appears AFTER you select the package icon and click "Refresh."

  • Table or views does not exists on create package body

    Hi folks.....
    I',m having a problem....
    I am trying to create the pakage body, but i can't because i'm get the error ORA-000942 TABLE OR VIEWS DOES NOT EXIST, i don't understand !!!!
    When i create de procedure, it's suscessful
    I did GRANT ALL ON GEMCO.CAD_FILIAL TO USR_MLADMIN;
    But the error persisits
    Someone has any idea ?
    Tanks Spaulonci

    Is USR_MLADMIN a role or a schema?
    You need to grant the privileges directly to the schema and not through a role

  • 3.1EA2 bug still not fixed - Members of package body not listed in the tree

    Hi, I was working today with SQL Developer again and found that this bug is still not fixed even when it was reported more than 1 year ago!!!
    I did a quick search and found it here
    Package Body Tree not always showing
    The problem is when you expand the package specification or package body tree, not all members of the specification/body are listed. This is mostly observable in the package body, but it regards to the specification as well.
    Consider this case:
    CREATE TABLE EMP (
        ID               NUMBER(6,0) DEFAULT 0,
        NAME             VARCHAR2(20 BYTE) DEFAULT NULL,
        DEPT             VARCHAR2(20 BYTE) DEFAULT NULL,
        FUNCTION         VARCHAR2(20 BYTE),
        PROCEDURE        VARCHAR2(20 BYTE));
    CREATE TABLE LOOP (
      AREA    VARCHAR2(5),
      VALUE   VARCHAR2(2));
    CREATE OR REPLACE PACKAGE Test_Package1 AS
    gvc_const CONSTANT VARCHAR2(10) := 'xxx';
    PROCEDURE Test(p_RC OUT NUMBER,
                   p_ID IN NUMBER);
    END Test_Package1;
    CREATE OR REPLACE PACKAGE BODY Test_Package1 AS
    PROCEDURE Test(p_RC OUT NUMBER,
                   p_ID IN NUMBER)
    IS
    BEGIN
      --INSERT INTO EMP (ID, NAME, DEPT, PROCEDURE) VALUES (1, 'Tina', 'xxx', 'xxx');
      --INSERT INTO EMP (ID, NAME, DEPT, FUNCTION) VALUES (2, 'Jeff', 'xxx', 'xxx');
      --INSERT INTO LOOP(AREA, VALUE) VALUES('a','b');
      NULL;
    END;
    END Test_Package1;Compile the package specification and the body. Expand the spec + body in the tree. Uncomment any of the commented lines in the package body and compile the body again. Now expand the package body again and look what is displayed.
    Why? It is because SQL Developer handles words "Function", "Procedure" and "Loop" as keywords and according to them does the parsing.
    Another case
    CREATE OR REPLACE PACKAGE Test_Package1 AS
    gvc_const CONSTANT VARCHAR2(10) := 'xxx';
    TYPE Loop_rec IS RECORD(
      item1   LOOP.AREA%TYPE);
    PROCEDURE Test(p_RC OUT NUMBER,
                   p_ID IN NUMBER);
    END Test_Package1;Compile just this specification and try to expand it in the tree. Again, during parsing the package, SQL Developer takes the word "LOOP" into consideration and fails to parse the specification.
    There is exactly the same problem when you declare functions from external dll libraries in package body. Since there is no "END;" in this case, SQL Developer's parser fails...
    To me it seems you simply blindly took some keywords like "FUNCTION" and expect there will be some "END;" keyword corresponding with it.
    Can anyone have a look at this and finally fix it?

    Hi,
    Thanks for trying out SQL Developer 3.1 EA2 and providing a clear, reproducible test case for this issue. I logged an internal bug for it:
    Bug 13438696 - 3.1EA2: FORUM: CERTAIN KEYWORDS IN PKG BODY BLOCK MEMBERS FROM CONN VIEW TREE
    It seems the bug noted in the other forum thread you reference has been fixed, but really had nothing to do with problems discussed either here or there. That fix involved adding an Edit Body... item to the Package context menu in the Schema Browser, not displaying Package members correctly in the Connection view tree.
    Regards,
    Gary
    SQL Developer Team

  • How can i create a Package to make this above procedure fit under it ??

    Hi ,
    I am going through package tutorials in Oracle , but unfortunately i couldn't able to follow :
    On Web , They simply say that Packages are used to group Procedures or Functions of similar kind .
    Could any please tell me how this is possible ??
    Assume that i have a simple Stored Procedure as shown below :
    CREATE OR REPLACE PROCEDURE emp_sel (cv_results IN OUT SYS_REFCURSOR)
    IS
    BEGIN
    DBMS_OUTPUT.PUT_LINE('Hi my First Package');
    END;
    Please help , thanks .

    package is basicly a group of procedures, functions, type definitions, etc... if you put this procedure into a package you can do this:
    a package has two parts, spec and body, spec is interface for outside and body is source code.
    create or replace package DUMMY_Pkg is
      PROCEDURE emp_sel (cv_results IN OUT SYS_REFCURSOR);
    end;
    create or replace package body DUMMY_Pkg is
      PROCEDURE emp_sel (cv_results IN OUT SYS_REFCURSOR)
      begin
         dbms_output.put_line('something');
      end;
    end;
    /

  • Error while creating a package

    When I am creating a package which has 3 procedures(x,y,z) I am getting an error saying "Subprogram or Cursor "y" is declared in a package specification and must be defined in the package body. I have put the code in the package body script but I keep getting this error. Please Help.

    Surely we will if you can paste the code and the error that you get. Remember to paste the code between[b] [pre] and [/pre] tags to retain the format.
    Cheers
    Sarma.

  • PL/SQL error package body

    Hi all,
    I am new to PL/SQL. I am getting the following errors during the runtime. Please help
    OWNER: BANINST1 NAME: GOKINTL TYPE: PACKAGE BODY
    LINE/COL ERROR
    115/14 PLS-00323: subprogram or cursor 'P_GOBINTL_INSERT' is declared in
    a package specification and must be defined in the package body
    147/14 PLS-00323: subprogram or cursor 'P_GORDOCM_INSERT' is declared in
    a package specification and must be defined in the package body
    167/14 PLS-00323: subprogram or cursor 'P_GOBINTL_UPDATE_ROW' is
    declared in a package specification and must be defined in the
    package body
    183/9 PL/SQL: SQL Statement ignored
    183/9 PLS-00394: wrong number of values in the INTO list of a FETCH
    statement
    199/14 PLS-00323: subprogram or cursor 'P_GORDOCM_UPDATE_ROW' is
    declared in a package specification and must be defined in the
    package body
    6 rows selected.
    PL/SQL code:
    /* Functions to determine whether international student */
    /* or not. */
    FUNCTION f_check_gobintl_exists
    ( pidm IN GOBINTL.GOBINTL_PIDM%TYPE)
    RETURN VARCHAR2 IS
    status VARCHAR2(1) := '';
    chk_gobintl_tab VARCHAR2(1) := '';
    CURSOR GOBINTL_C
    IS
    SELECT 'Y'
    FROM GOBINTL
    WHERE GOBINTL_PIDM = pidm;
    BEGIN
    OPEN GOBINTL_C;
    FETCH GOBINTL_C INTO chk_gobintl_tab;
    IF GOBINTL_C%NOTFOUND THEN
    status := 'N';
    ELSE
    status := 'Y';
    END IF;
    CLOSE GOBINTL_C;
    RETURN status;
    END f_check_gobintl_exists;
    /* Function to determine whether the student is a */
    /* non-resident alien or not. */
    FUNCTION f_check_nonresident_status(
    pidm IN GORVISA.GORVISA_PIDM%TYPE,
    input_date IN GORVISA.GORVISA_VISA_START_DATE%TYPE)
    RETURN VARCHAR2
    IS
    status VARCHAR2(1) := '';
    chk_non_resi_status VARCHAR2(1) := '';
    CURSOR CHK_NONRESI_STATUS_C
    IS
    SELECT 'Y'
    FROM GORVISA,
    STVVTYP
    WHERE STVVTYP_NON_RES_IND = 'Y'
    AND GORVISA_VTYP_CODE = STVVTYP_CODE
    AND GORVISA_PIDM = pidm
    AND GORVISA_VISA_START_DATE <= TRUNC(input_date)
    AND GORVISA_VISA_EXPIRE_DATE >= TRUNC(input_date);
    BEGIN
    OPEN CHK_NONRESI_STATUS_C;
    FETCH CHK_NONRESI_STATUS_C INTO chk_non_resi_status;
    IF CHK_NONRESI_STATUS_C%NOTFOUND THEN
    status := 'N';
    ELSE
    status := 'Y';
    END IF;
    CLOSE CHK_NONRESI_STATUS_C;
    RETURN status;
    END f_check_nonresident_status;
    /* Function to select a single row from gobintl table. */
    FUNCTION f_gobintl_select
    ( pidm GOBINTL.GOBINTL_PIDM%TYPE)
    RETURN GOBINTL%ROWTYPE
    IS
    gobintl_row GOBINTL%ROWTYPE;
    CURSOR GOBINTL_C
    IS
    SELECT GOBINTL_PIDM,
    GOBINTL_SPOUSE_IND,
    GOBINTL_SIGNATURE_IND,
    GOBINTL_USER_ID,
    GOBINTL_ACTIVITY_DATE,
    GOBINTL_PASSPORT_ID,
    GOBINTL_NATN_CODE_ISSUE,
    GOBINTL_PASSPORT_EXP_DATE,
    GOBINTL_I94_STATUS ,
    GOBINTL_I94_DATE,
    GOBINTL_REG_NUMBER,
    GOBINTL_DURATION,
    GOBINTL_CELG_CODE,
    GOBINTL_CERT_NUMBER ,
    GOBINTL_CERT_DATE_ISSUE,
    GOBINTL_CERT_DATE_RECEIPT,
    GOBINTL_ADMR_CODE,
    GOBINTL_NATN_CODE_BIRTH,
    GOBINTL_NATN_CODE_LEGAL,
    GOBINTL_LANG_CODE,
    GOBINTL_SPON_CODE,
    GOBINTL_EMPT_CODE,
    GOBINTL_FOREIGN_SSN,
    GOBINTL_CHILD_NUMBER,
    GOBINTL_VPDI_CODE
    FROM GOBINTL
    WHERE GOBINTL_PIDM = pidm;
    BEGIN
    OPEN GOBINTL_C;
    FETCH GOBINTL_C INTO gobintl_row;
    CLOSE GOBINTL_C;
    RETURN gobintl_row;
    END f_gobintl_select;
    /* Function to select a single row from gordocm table. */
    FUNCTION f_gordocm_select
    ( pidm IN GORDOCM.GORDOCM_PIDM%TYPE,
    seq_no IN GORDOCM.GORDOCM_SEQ_NO%TYPE,
    vtyp_code IN GORDOCM.GORDOCM_VTYP_CODE%TYPE,
    visa_number IN GORDOCM.GORDOCM_VISA_NUMBER%TYPE,
    docm_code IN GORDOCM.GORDOCM_DOCM_CODE%TYPE)
    RETURN GORDOCM%ROWTYPE
    IS
    gordocm_row GORDOCM%ROWTYPE;
    CURSOR GORDOCM_C
    IS
    SELECT GORDOCM_PIDM ,
    GORDOCM_SEQ_NO ,
    GORDOCM_VTYP_CODE,
    GORDOCM_VISA_NUMBER,
    GORDOCM_DOCM_CODE,
    GORDOCM_DISPOSITION ,
    GORDOCM_USER_ID ,
    GORDOCM_ACTIVITY_DATE ,
    GORDOCM_SRCE_CODE ,
    GORDOCM_REQUEST_DATE ,
    GORDOCM_RECEIVED_DATE
    FROM GORDOCM
    WHERE GORDOCM_PIDM = pidm
    AND GORDOCM_SEQ_NO = seq_no
    AND GORDOCM_VTYP_CODE = vtyp_code
    AND GORDOCM_VISA_NUMBER = visa_number
    AND GORDOCM_DOCM_CODE = docm_code;
    BEGIN
    OPEN GORDOCM_C;
    FETCH GORDOCM_C into gordocm_row;
    CLOSE GORDOCM_C;
    RETURN gordocm_row;
    END f_gordocm_select;
    /* Function to select the row id of the row for the */
    /* given pidm from gobintl. */
    FUNCTION f_get_gobintl_rowid
    (pidm IN GOBINTL.GOBINTL_PIDM%TYPE )
    RETURN ROWID
    AS
    gobintl_rowid rowid := null;
    CURSOR get_gobintl is
    SELECT rowid
    FROM gobintl
    WHERE gobintl_pidm = pidm;
    BEGIN
    OPEN get_gobintl;
    FETCH get_gobintl INTO gobintl_rowid;
    CLOSE get_gobintl;
    RETURN gobintl_rowid;
    END f_get_gobintl_rowid;
    /* Function to select the row id of the row for the */
    /* given pidm from gorvisa. */
    FUNCTION f_get_gorvisa_rowid
    (pidm IN GORVISA.GORVISA_PIDM%TYPE )
    RETURN ROWID
    AS
    gorvisa_rowid rowid := null;
    CURSOR get_gorvisa IS
    SELECT rowid
    FROM gorvisa
    WHERE gorvisa_pidm = pidm
    ORDER BY gorvisa_seq_no desc;
    BEGIN
    OPEN get_gorvisa;
    FETCH get_gorvisa INTO gorvisa_rowid;
    CLOSE get_gorvisa;
    RETURN gorvisa_rowid;
    END f_get_gorvisa_rowid;
    -- new functions for OA to return visa and international data
    FUNCTION f_gorvisa_value
    (p_pidm IN SPRIDEN.SPRIDEN_PIDM%TYPE ,
    p_return_value VARCHAR2)
    RETURN VARCHAR2 IS
    CURSOR get_gorvisa
    IS
         SELECT *
         FROM gorvisa
         WHERE gorvisa_pidm = p_pidm
         ORDER BY gorvisa_seq_no DESC;
         gorvisa_var NUMBER := 0;
    BEGIN
    IF gv_gorvisa_row.gorvisa_pidm is NULL or
    gv_gorvisa_row.gorvisa_pidm <> p_pidm then
    OPEN get_gorvisa;
    FETCH get_gorvisa INTO gv_gorvisa_row;
    IF get_gorvisa%NOTFOUND THEN
    gorvisa_var :=1;
    END IF;
    CLOSE get_gorvisa;
    end if;
    IF gorvisa_var = 0 THEN
    CASE p_return_value
    WHEN 'N' THEN
    RETURN gv_gorvisa_row.gorvisa_visa_number;
    WHEN 'C' THEN
    RETURN gv_gorvisa_row.gorvisa_vtyp_code;
    ELSE
    RETURN ' ';
    END CASE;
    END IF;
    RETURN NULL;
    END f_gorvisa_value;
    FUNCTION f_gobintl_value
    (p_pidm IN SPRIDEN.SPRIDEN_PIDM%TYPE ,
    p_return_value VARCHAR2)
    RETURN VARCHAR2 IS
    CURSOR get_gobintl
    IS
         SELECT      *
         FROM      gobintl
         WHERE      gobintl_pidm = p_pidm;
         gobintl_var NUMBER := 0;
    BEGIN
    IF gv_gobintl_row.gobintl_pidm is NULL or
    gv_gobintl_row.gobintl_pidm <> p_pidm then
    OPEN get_gobintl;
    FETCH get_gobintl INTO gv_gobintl_row;
    IF get_gobintl%NOTFOUND THEN
    gobintl_var := 1;
    END IF;
    CLOSE get_gobintl;
    end if;
    IF gobintl_var = 0 THEN
    CASE p_return_value
    WHEN 'B' THEN
    RETURN gv_gobintl_row.gobintl_natn_code_birth;
    WHEN 'L' THEN
    RETURN gv_gobintl_row.gobintl_natn_code_legal;
    ELSE
    RETURN ' ';
    END CASE;
    END IF;
    RETURN NULL;
    END f_gobintl_value;
    /* Procedure to insert a row into gobintl table. */
    PROCEDURE p_gobintl_insert
    ( pidm IN GOBINTL.GOBINTL_PIDM%TYPE,
    spouse_ind IN GOBINTL.GOBINTL_SPOUSE_IND%TYPE,
    signature_ind IN GOBINTL.GOBINTL_SIGNATURE_IND%TYPE,
    user_id IN GOBINTL.GOBINTL_USER_ID%TYPE,
    activity_date IN GOBINTL.GOBINTL_ACTIVITY_DATE%TYPE,
    passport_id IN GOBINTL.GOBINTL_PASSPORT_ID%TYPE,
    natn_code_issue IN GOBINTL.GOBINTL_NATN_CODE_ISSUE%TYPE,
    passport_exp_date IN GOBINTL.GOBINTL_PASSPORT_EXP_DATE%TYPE,
    i94_status IN GOBINTL.GOBINTL_I94_STATUS%TYPE,
    i94_date IN GOBINTL.GOBINTL_I94_DATE%TYPE,
    reg_number IN GOBINTL.GOBINTL_REG_NUMBER%TYPE,
    duration IN GOBINTL.GOBINTL_DURATION%TYPE,
    celg_code IN GOBINTL.GOBINTL_CELG_CODE%TYPE,
    cert_number IN GOBINTL.GOBINTL_CERT_NUMBER%TYPE,
    cert_date_issue IN GOBINTL.GOBINTL_CERT_DATE_ISSUE%TYPE,
    cert_date_receipt IN GOBINTL.GOBINTL_CERT_DATE_RECEIPT%TYPE,
    admr_code IN GOBINTL.GOBINTL_ADMR_CODE%TYPE,
    natn_code_birth IN GOBINTL.GOBINTL_NATN_CODE_BIRTH%TYPE,
    natn_code_legal IN GOBINTL.GOBINTL_NATN_CODE_LEGAL%TYPE,
    lang_code IN GOBINTL.GOBINTL_LANG_CODE%TYPE,
    spon_code IN GOBINTL.GOBINTL_SPON_CODE%TYPE,
    empt_code IN GOBINTL.GOBINTL_EMPT_CODE%TYPE,
    foreign_ssn IN GOBINTL.GOBINTL_FOREIGN_SSN%TYPE,
    child_number IN GOBINTL.GOBINTL_CHILD_NUMBER%TYPE,
    vpdi IN GOBINTL.GOBINTL_VPDI_CODE%TYPE
    IS
    BEGIN
    INSERT INTO GOBINTL
    ( GOBINTL_PIDM,
    GOBINTL_SPOUSE_IND,
    GOBINTL_SIGNATURE_IND,
    GOBINTL_USER_ID,
    GOBINTL_ACTIVITY_DATE,
    GOBINTL_PASSPORT_ID,
    GOBINTL_NATN_CODE_ISSUE,
    GOBINTL_PASSPORT_EXP_DATE,
    GOBINTL_I94_STATUS,
    GOBINTL_I94_DATE,
    GOBINTL_REG_NUMBER,
    GOBINTL_DURATION,
    GOBINTL_CELG_CODE,
    GOBINTL_CERT_NUMBER,
    GOBINTL_CERT_DATE_ISSUE,
    GOBINTL_CERT_DATE_RECEIPT,
    GOBINTL_ADMR_CODE,
    GOBINTL_NATN_CODE_BIRTH,
    GOBINTL_NATN_CODE_LEGAL,
    GOBINTL_LANG_CODE,
    GOBINTL_SPON_CODE,
    GOBINTL_EMPT_CODE,
    GOBINTL_FOREIGN_SSN,
    GOBINTL_CHILD_NUMBER,
    GOBINTL_VPDI_CODE
    VALUES
    ( pidm,
    NVL(spouse_ind,'T'),
    NVL(signature_ind,'T'),
    user_id,
    activity_date,
    passport_id,
    natn_code_issue,
    passport_exp_date,
    i94_status,
    i94_date,
    reg_number,
    duration,
    celg_code,
    cert_number,
    cert_date_issue,
    cert_date_receipt,
    admr_code,
    natn_code_birth,
    natn_code_legal,
    lang_code,
    spon_code,
    empt_code,
    foreign_ssn,
    child_number,
    'SV'
    END p_gobintl_insert;
    /* Procedure to insert a row into gordocm table. */
    PROCEDURE p_gordocm_insert
    pidm IN GORDOCM.GORDOCM_PIDM%TYPE,
    seq_no IN GORDOCM.GORDOCM_SEQ_NO%TYPE,
    vtyp_code IN GORDOCM.GORDOCM_VTYP_CODE%TYPE,
    visa_number IN GORDOCM.GORDOCM_VISA_NUMBER%TYPE,
    docm_code IN GORDOCM.GORDOCM_DOCM_CODE%TYPE,
    disposition IN GORDOCM.GORDOCM_DISPOSITION%TYPE,
    user_id IN GORDOCM.GORDOCM_USER_ID%TYPE,
    activity_date IN GORDOCM.GORDOCM_ACTIVITY_DATE%TYPE,
    srce_code IN GORDOCM.GORDOCM_SRCE_CODE%TYPE,
    request_date IN GORDOCM.GORDOCM_REQUEST_DATE%TYPE,
    received_date IN GORDOCM.GORDOCM_RECEIVED_DATE%TYPE,
    vpdi_gordocm IN GORDOCM.GORDOCM_VPDI_CODE%TYPE
    IS
    BEGIN
    INSERT INTO GORDOCM
    ( GORDOCM_PIDM,
    GORDOCM_SEQ_NO,
    GORDOCM_VTYP_CODE,
    GORDOCM_VISA_NUMBER,
    GORDOCM_DOCM_CODE,
    GORDOCM_DISPOSITION,
    GORDOCM_USER_ID,
    GORDOCM_ACTIVITY_DATE,
    GORDOCM_SRCE_CODE,
    GORDOCM_REQUEST_DATE,
    GORDOCM_RECEIVED_DATE,
    GORDOCM_VPDI_CODE
    VALUES
    ( pidm,
    seq_no,
    vtyp_code,
    visa_number,
    docm_code,
    disposition,
    user_id,
    activity_date,
    srce_code,
    request_date,
    received_date,
    'SV'
    END p_gordocm_insert;
    /* Procedure to update a row in gobintl table. */
    PROCEDURE p_gobintl_update_row
    ( pidm IN GOBINTL.GOBINTL_PIDM%TYPE,
    spouse_ind IN GOBINTL.GOBINTL_SPOUSE_IND%TYPE,
    signature_ind IN GOBINTL.GOBINTL_SIGNATURE_IND%TYPE,
    user_id IN GOBINTL.GOBINTL_USER_ID%TYPE,
    activity_date IN GOBINTL.GOBINTL_ACTIVITY_DATE%TYPE,
    passport_id IN GOBINTL.GOBINTL_PASSPORT_ID%TYPE,
    natn_code_issue IN GOBINTL.GOBINTL_NATN_CODE_ISSUE%TYPE,
    passport_exp_date IN GOBINTL.GOBINTL_PASSPORT_EXP_DATE%TYPE,
    i94_status IN GOBINTL.GOBINTL_I94_STATUS%TYPE,
    i94_date IN GOBINTL.GOBINTL_I94_DATE%TYPE,
    reg_number IN GOBINTL.GOBINTL_REG_NUMBER%TYPE,
    duration IN GOBINTL.GOBINTL_DURATION%TYPE,
    celg_code IN GOBINTL.GOBINTL_CELG_CODE%TYPE,
    cert_number IN GOBINTL.GOBINTL_CERT_NUMBER%TYPE,
    cert_date_issue IN GOBINTL.GOBINTL_CERT_DATE_ISSUE%TYPE,
    cert_date_receipt IN GOBINTL.GOBINTL_CERT_DATE_RECEIPT%TYPE,
    admr_code IN GOBINTL.GOBINTL_ADMR_CODE%TYPE,
    natn_code_birth IN GOBINTL.GOBINTL_NATN_CODE_BIRTH%TYPE,
    natn_code_legal IN GOBINTL.GOBINTL_NATN_CODE_LEGAL%TYPE,
    lang_code IN GOBINTL.GOBINTL_LANG_CODE%TYPE,
    spon_code IN GOBINTL.GOBINTL_SPON_CODE%TYPE,
    empt_code IN GOBINTL.GOBINTL_EMPT_CODE%TYPE,
    foreign_ssn IN GOBINTL.GOBINTL_FOREIGN_SSN%TYPE,
    child_number IN GOBINTL.GOBINTL_CHILD_NUMBER%TYPE,
    vpdi IN GOBINTL.GOBINTL_VPDI_CODE%TYPE
    IS
    BEGIN
    UPDATE GOBINTL
    SET GOBINTL_SPOUSE_IND = spouse_ind,
    GOBINTL_SIGNATURE_IND = signature_ind,
    GOBINTL_USER_ID = user_id,
    GOBINTL_ACTIVITY_DATE = activity_date,
    GOBINTL_PASSPORT_ID = passport_id,
    GOBINTL_NATN_CODE_ISSUE = natn_code_issue,
    GOBINTL_PASSPORT_EXP_DATE = passport_exp_date,
    GOBINTL_I94_STATUS = i94_status,
    GOBINTL_I94_DATE = i94_date,
    GOBINTL_REG_NUMBER = reg_number,
    GOBINTL_DURATION = duration,
    GOBINTL_CELG_CODE = celg_code,
    GOBINTL_CERT_NUMBER = cert_number,
    GOBINTL_CERT_DATE_ISSUE = cert_date_issue,
    GOBINTL_CERT_DATE_RECEIPT = cert_date_receipt,
    GOBINTL_ADMR_CODE = admr_code,
    GOBINTL_NATN_CODE_BIRTH = natn_code_birth,
    GOBINTL_NATN_CODE_LEGAL = natn_code_legal,
    GOBINTL_LANG_CODE = lang_code,
    GOBINTL_SPON_CODE = spon_code,
    GOBINTL_EMPT_CODE = empt_code,
    GOBINTL_FOREIGN_SSN = foreign_ssn,
    GOBINTL_CHILD_NUMBER = child_number,
    GOBINTL_VPDI_CODE = 'SV'
    WHERE GOBINTL_PIDM = pidm;
    END p_gobintl_update_row;
    /* Procedure to update a row in gordocm table. */
    PROCEDURE p_gordocm_update_row
    pidm IN GORDOCM.GORDOCM_PIDM%TYPE,
    seq_no IN GORDOCM.GORDOCM_SEQ_NO%TYPE,
    vtyp_code IN GORDOCM.GORDOCM_VTYP_CODE%TYPE,
    visa_number IN GORDOCM.GORDOCM_VISA_NUMBER%TYPE,
    docm_code IN GORDOCM.GORDOCM_DOCM_CODE%TYPE,
    disposition IN GORDOCM.GORDOCM_DISPOSITION%TYPE,
    user_id IN GORDOCM.GORDOCM_USER_ID%TYPE,
    activity_date IN GORDOCM.GORDOCM_ACTIVITY_DATE%TYPE,
    srce_code IN GORDOCM.GORDOCM_SRCE_CODE%TYPE,
    request_date IN GORDOCM.GORDOCM_REQUEST_DATE%TYPE,
    received_date IN GORDOCM.GORDOCM_RECEIVED_DATE%TYPE,
    vpdi_gordocm IN GORDOCM.GORDOCM_VPDI_CODE%TYPE
    IS
    BEGIN
    UPDATE GORDOCM
    SET GORDOCM_DISPOSITION = disposition,
    GORDOCM_USER_ID = user_id,
    GORDOCM_ACTIVITY_DATE = activity_date,
    GORDOCM_SRCE_CODE = srce_code,
    GORDOCM_REQUEST_DATE = request_date,
    GORDOCM_RECEIVED_DATE = received_date,
    GORDOCM_VPDI_CODE = vpdi_gordocm
    WHERE GORDOCM_PIDM = pidm
    AND GORDOCM_SEQ_NO = seq_no
    AND GORDOCM_VTYP_CODE = vtyp_code
    AND GORDOCM_VISA_NUMBER = visa_number
    AND GORDOCM_DOCM_CODE = docm_code;
    END p_gordocm_update_row;
    /* Procedure to delete a row from gobintl table. */
    PROCEDURE p_gobintl_delete_row
    pidm IN GOBINTL.GOBINTL_PIDM%TYPE
    IS
    BEGIN
    DELETE
    FROM GOBINTL
    WHERE GOBINTL_PIDM = pidm;
    END p_gobintl_delete_row;
    /* Procedure to delete a row from gordocm table. */
    PROCEDURE p_gordocm_delete_row
    pidm IN GORDOCM.GORDOCM_PIDM%TYPE,
    seq_no IN GORDOCM.GORDOCM_SEQ_NO%TYPE,
    vtyp_code IN GORDOCM.GORDOCM_VTYP_CODE%TYPE,
    visa_number IN GORDOCM.GORDOCM_VISA_NUMBER%TYPE,
    docm_code IN GORDOCM.GORDOCM_DOCM_CODE%TYPE
    IS
    BEGIN
    DELETE
    FROM GORDOCM
    WHERE GORDOCM_PIDM = pidm
    AND GORDOCM_SEQ_NO = seq_no
    AND GORDOCM_VTYP_CODE = vtyp_code
    AND GORDOCM_VISA_NUMBER = visa_number
    AND GORDOCM_DOCM_CODE = docm_code;
    END p_gordocm_delete_row;
    END GOKINTL;
    /

    Hello,
    Create a package specifiction see following example and add just defintions or all the function and procedure
    CREATE OR REPLACE PACKAGE gokintl
    AS
       PROCEDURE item_logging;
       FUNCTION get_sys_parms (i_parameter IN VARCHAR2)
          RETURN VARCHAR2;
    END gokintl;
    /Then package body, I have comment FIX THIS SOMETHING WRONG take a look and fix your logic
    CREATE OR REPLACE PACKAGE BODY gokintl
    AS
       FUNCTION f_check_gobintl_exists (pidm IN gobintl.gobintl_pidm%TYPE)
          RETURN VARCHAR2
       IS
          status            VARCHAR2 (1) := '';
          chk_gobintl_tab   VARCHAR2 (1) := '';
          CURSOR gobintl_c
          IS
             SELECT 'Y'
             FROM gobintl
             WHERE gobintl_pidm = pidm;
       BEGIN
          OPEN gobintl_c;
          FETCH gobintl_c INTO chk_gobintl_tab;
          IF gobintl_c%NOTFOUND
          THEN
             status   := 'N';
          ELSE
             status   := 'Y';
          END IF;
          CLOSE gobintl_c;
          RETURN status;
       END f_check_gobintl_exists;
       /* Function to determine whether the student is a */
       /* non-resident alien or not. */
       FUNCTION f_check_nonresident_status (pidm IN gorvisa.gorvisa_pidm%TYPE,
                                            input_date IN gorvisa.gorvisa_visa_start_date%TYPE
          RETURN VARCHAR2
       IS
          status                VARCHAR2 (1) := '';
          chk_non_resi_status   VARCHAR2 (1) := '';
          CURSOR chk_nonresi_status_c
          IS
             SELECT 'Y'
             FROM gorvisa, stvvtyp
             WHERE     stvvtyp_non_res_ind = 'Y'
                   AND gorvisa_vtyp_code = stvvtyp_code
                   AND gorvisa_pidm = pidm
                   AND gorvisa_visa_start_date <= TRUNC (input_date)
                   AND gorvisa_visa_expire_date >= TRUNC (input_date);
       BEGIN
          OPEN chk_nonresi_status_c;
          FETCH chk_nonresi_status_c INTO chk_non_resi_status;
          IF chk_nonresi_status_c%NOTFOUND
          THEN
             status   := 'N';
          ELSE
             status   := 'Y';
          END IF;
          CLOSE chk_nonresi_status_c;
          RETURN status;
       END f_check_nonresident_status;
       /* Function to select a single row from gobintl table. */
       FUNCTION f_gobintl_select (pidm gobintl.gobintl_pidm%TYPE)
          RETURN gobintl%ROWTYPE
       IS
          gobintl_row   gobintl%ROWTYPE;
          CURSOR gobintl_c
          IS
             SELECT gobintl_pidm,
                    gobintl_spouse_ind,
                    gobintl_signature_ind,
                    gobintl_user_id,
                    gobintl_activity_date,
                    gobintl_passport_id,
                    gobintl_natn_code_issue,
                    gobintl_passport_exp_date,
                    gobintl_i94_status,
                    gobintl_i94_date,
                    gobintl_reg_number,
                    gobintl_duration,
                    gobintl_celg_code,
                    gobintl_cert_number,
                    gobintl_cert_date_issue,
                    gobintl_cert_date_receipt,
                    gobintl_admr_code,
                    gobintl_natn_code_birth,
                    gobintl_natn_code_legal,
                    gobintl_lang_code,
                    gobintl_spon_code,
                    gobintl_empt_code,
                    gobintl_foreign_ssn,
                    gobintl_child_number,
                    gobintl_vpdi_code
             FROM gobintl
             WHERE gobintl_pidm = pidm;
       BEGIN
          OPEN gobintl_c;
          FETCH gobintl_c INTO gobintl_row;
          CLOSE gobintl_c;
          RETURN gobintl_row;
       END f_gobintl_select;
       /* Function to select a single row from gordocm table. */
       FUNCTION f_gordocm_select (pidm IN gordocm.gordocm_pidm%TYPE,
                                  seq_no IN gordocm.gordocm_seq_no%TYPE,
                                  vtyp_code IN gordocm.gordocm_vtyp_code%TYPE,
                                  visa_number IN gordocm.gordocm_visa_number%TYPE,
                                  docm_code IN gordocm.gordocm_docm_code%TYPE
          RETURN gordocm%ROWTYPE
       IS
          gordocm_row   gordocm%ROWTYPE;
          CURSOR gordocm_c
          IS
             SELECT gordocm_pidm,
                    gordocm_seq_no,
                    gordocm_vtyp_code,
                    gordocm_visa_number,
                    gordocm_docm_code,
                    gordocm_disposition,
                    gordocm_user_id,
                    gordocm_activity_date,
                    gordocm_srce_code,
                    gordocm_request_date,
                    gordocm_received_date
             FROM gordocm
             WHERE     gordocm_pidm = pidm
                   AND gordocm_seq_no = seq_no
                   AND gordocm_vtyp_code = vtyp_code
                   AND gordocm_visa_number = visa_number
                   AND gordocm_docm_code = docm_code;
       BEGIN
          OPEN gordocm_c;
          FETCH gordocm_c INTO gordocm_row;
          CLOSE gordocm_c;
          RETURN gordocm_row;
       END f_gordocm_select;
       /* Function to select the row id of the row for the */
       /* given pidm from gobintl. */
       FUNCTION f_get_gobintl_rowid (pidm IN gobintl.gobintl_pidm%TYPE)
          RETURN ROWID
       AS
          gobintl_rowid   ROWID := NULL;
          CURSOR get_gobintl
          IS
             SELECT ROWID
             FROM gobintl
             WHERE gobintl_pidm = pidm;
       BEGIN
          OPEN get_gobintl;
          FETCH get_gobintl INTO gobintl_rowid;
          CLOSE get_gobintl;
          RETURN gobintl_rowid;
       END f_get_gobintl_rowid;
       /* Function to select the row id of the row for the */
       /* given pidm from gorvisa. */
       FUNCTION f_get_gorvisa_rowid (pidm IN gorvisa.gorvisa_pidm%TYPE)
          RETURN ROWID
       AS
          gorvisa_rowid   ROWID := NULL;
          CURSOR get_gorvisa
          IS
             SELECT ROWID
             FROM gorvisa
             WHERE gorvisa_pidm = pidm
             ORDER BY gorvisa_seq_no DESC;
       BEGIN
          OPEN get_gorvisa;
          FETCH get_gorvisa INTO gorvisa_rowid;
          CLOSE get_gorvisa;
          RETURN gorvisa_rowid;
       END f_get_gorvisa_rowid;
       -- new functions for OA to return visa and international data
       FUNCTION f_gorvisa_value (p_pidm IN spriden.spriden_pidm%TYPE,
                                 p_return_value varchar2
          RETURN VARCHAR2
       IS
          CURSOR get_gorvisa
          IS
             SELECT *
             FROM gorvisa
             WHERE gorvisa_pidm = p_pidm
             ORDER BY gorvisa_seq_no DESC;
          gorvisa_var   NUMBER := 0;
       BEGIN
          IF (gv_gorvisa_row.gorvisa_pidm IS NULL
              OR gv_gorvisa_row.gorvisa_pidm = p_pidm) --- FIX THIS SOMETHIGNG WRONG HERE
          THEN
             OPEN get_gorvisa;
             FETCH get_gorvisa INTO gv_gorvisa_row;
             IF get_gorvisa%NOTFOUND
             THEN
                gorvisa_var   := 1;
             END IF;
             CLOSE get_gorvisa;
          END IF;
          IF gorvisa_var = 0
          THEN
             CASE p_return_value
                WHEN 'N'
                THEN
                   RETURN gv_gorvisa_row.gorvisa_visa_number;
                WHEN 'C'
                THEN
                   RETURN gv_gorvisa_row.gorvisa_vtyp_code;
                ELSE
                   RETURN ' ';
             END CASE;
          END IF;
          RETURN NULL;
       END f_gorvisa_value;
       FUNCTION f_gobintl_value (p_pidm IN spriden.spriden_pidm%TYPE,
                                 p_return_value varchar2
          RETURN VARCHAR2
       IS
          CURSOR get_gobintl
          IS
             SELECT *
             FROM gobintl
             WHERE gobintl_pidm = p_pidm;
          gobintl_var   NUMBER := 0;
       BEGIN
          IF gv_gobintl_row.gobintl_pidm IS NULL
             OR gv_gobintl_row.gobintl_pidm = p_pidm -- FIX THIS SOMETHIGNG WRONG HERE
          THEN
             OPEN get_gobintl;
             FETCH get_gobintl INTO gv_gobintl_row;
             IF get_gobintl%NOTFOUND
             THEN
                gobintl_var   := 1;
             END IF;
             CLOSE get_gobintl;
          END IF;
          IF gobintl_var = 0
          THEN
             CASE p_return_value
                WHEN 'B'
                THEN
                   RETURN gv_gobintl_row.gobintl_natn_code_birth;
                WHEN 'L'
                THEN
                   RETURN gv_gobintl_row.gobintl_natn_code_legal;
                ELSE
                   RETURN ' ';
             END CASE;
          END IF;
          RETURN NULL;
       END f_gobintl_value;
       /* Procedure to insert a row into gobintl table. */
       PROCEDURE p_gobintl_insert (pidm IN gobintl.gobintl_pidm%TYPE,
                                   spouse_ind IN gobintl.gobintl_spouse_ind%TYPE,
                                   signature_ind IN gobintl.gobintl_signature_ind%TYPE,
                                   user_id IN gobintl.gobintl_user_id%TYPE,
                                   activity_date IN gobintl.gobintl_activity_date%TYPE,
                                   passport_id IN gobintl.gobintl_passport_id%TYPE,
                                   natn_code_issue IN gobintl.gobintl_natn_code_issue%TYPE,
                                   passport_exp_date IN gobintl.gobintl_passport_exp_date%TYPE,
                                   i94_status IN gobintl.gobintl_i94_status%TYPE,
                                   i94_date IN gobintl.gobintl_i94_date%TYPE,
                                   reg_number IN gobintl.gobintl_reg_number%TYPE,
                                   duration IN gobintl.gobintl_duration%TYPE,
                                   celg_code IN gobintl.gobintl_celg_code%TYPE,
                                   cert_number IN gobintl.gobintl_cert_number%TYPE,
                                   cert_date_issue IN gobintl.gobintl_cert_date_issue%TYPE,
                                   cert_date_receipt IN gobintl.gobintl_cert_date_receipt%TYPE,
                                   admr_code IN gobintl.gobintl_admr_code%TYPE,
                                   natn_code_birth IN gobintl.gobintl_natn_code_birth%TYPE,
                                   natn_code_legal IN gobintl.gobintl_natn_code_legal%TYPE,
                                   lang_code IN gobintl.gobintl_lang_code%TYPE,
                                   spon_code IN gobintl.gobintl_spon_code%TYPE,
                                   empt_code IN gobintl.gobintl_empt_code%TYPE,
                                   foreign_ssn IN gobintl.gobintl_foreign_ssn%TYPE,
                                   child_number IN gobintl.gobintl_child_number%TYPE,
                                   vpdi IN gobintl.gobintl_vpdi_code%TYPE
       IS
       BEGIN
          INSERT INTO gobintl
             gobintl_pidm,
             gobintl_spouse_ind,
             gobintl_signature_ind,
             gobintl_user_id,
             gobintl_activity_date,
             gobintl_passport_id,
             gobintl_natn_code_issue,
             gobintl_passport_exp_date,
             gobintl_i94_status,
             gobintl_i94_date,
             gobintl_reg_number,
             gobintl_duration,
             gobintl_celg_code,
             gobintl_cert_number,
             gobintl_cert_date_issue,
             gobintl_cert_date_receipt,
             gobintl_admr_code,
             gobintl_natn_code_birth,
             gobintl_natn_code_legal,
             gobintl_lang_code,
             gobintl_spon_code,
             gobintl_empt_code,
             gobintl_foreign_ssn,
             gobintl_child_number,
             gobintl_vpdi_code
          VALUES (
                    pidm,
                    NVL (spouse_ind, 'T'),
                    NVL (signature_ind, 'T'),
                    user_id,
                    activity_date,
                    passport_id,
                    natn_code_issue,
                    passport_exp_date,
                    i94_status,
                    i94_date,
                    reg_number,
                    duration,
                    celg_code,
                    cert_number,
                    cert_date_issue,
                    cert_date_receipt,
                    admr_code,
                    natn_code_birth,
                    natn_code_legal,
                    lang_code,
                    spon_code,
                    empt_code,
                    foreign_ssn,
                    child_number,
                    'SV'
       END p_gobintl_insert;
       /* Procedure to insert a row into gordocm table. */
       PROCEDURE p_gordocm_insert (pidm IN gordocm.gordocm_pidm%TYPE,
                                   seq_no IN gordocm.gordocm_seq_no%TYPE,
                                   vtyp_code IN gordocm.gordocm_vtyp_code%TYPE,
                                   visa_number IN gordocm.gordocm_visa_number%TYPE,
                                   docm_code IN gordocm.gordocm_docm_code%TYPE,
                                   disposition IN gordocm.gordocm_disposition%TYPE,
                                   user_id IN gordocm.gordocm_user_id%TYPE,
                                   activity_date IN gordocm.gordocm_activity_date%TYPE,
                                   srce_code IN gordocm.gordocm_srce_code%TYPE,
                                   request_date IN gordocm.gordocm_request_date%TYPE,
                                   received_date IN gordocm.gordocm_received_date%TYPE,
                                   vpdi_gordocm IN gordocm.gordocm_vpdi_code%TYPE
       IS
       BEGIN
          INSERT INTO gordocm
             gordocm_pidm,
             gordocm_seq_no,
             gordocm_vtyp_code,
             gordocm_visa_number,
             gordocm_docm_code,
             gordocm_disposition,
             gordocm_user_id,
             gordocm_activity_date,
             gordocm_srce_code,
             gordocm_request_date,
             gordocm_received_date,
             gordocm_vpdi_code
          VALUES (
                    pidm,
                    seq_no,
                    vtyp_code,
                    visa_number,
                    docm_code,
                    disposition,
                    user_id,
                    activity_date,
                    srce_code,
                    request_date,
                    received_date,
                    'SV'
       END p_gordocm_insert;
       /* Procedure to update a row in gobintl table. */
       PROCEDURE p_gobintl_update_row (pidm IN gobintl.gobintl_pidm%TYPE,
                                       spouse_ind IN gobintl.gobintl_spouse_ind%TYPE,
                                       signature_ind IN gobintl.gobintl_signature_ind%TYPE,
                                       user_id IN gobintl.gobintl_user_id%TYPE,
                                       activity_date IN gobintl.gobintl_activity_date%TYPE,
                                       passport_id IN gobintl.gobintl_passport_id%TYPE,
                                       natn_code_issue IN gobintl.gobintl_natn_code_issue%TYPE,
                                       passport_exp_date IN gobintl.gobintl_passport_exp_date%TYPE,
                                       i94_status IN gobintl.gobintl_i94_status%TYPE,
                                       i94_date IN gobintl.gobintl_i94_date%TYPE,
                                       reg_number IN gobintl.gobintl_reg_number%TYPE,
                                       duration IN gobintl.gobintl_duration%TYPE,
                                       celg_code IN gobintl.gobintl_celg_code%TYPE,
                                       cert_number IN gobintl.gobintl_cert_number%TYPE,
                                       cert_date_issue IN gobintl.gobintl_cert_date_issue%TYPE,
                                       cert_date_receipt IN gobintl.gobintl_cert_date_receipt%TYPE,
                                       admr_code IN gobintl.gobintl_admr_code%TYPE,
                                       natn_code_birth IN gobintl.gobintl_natn_code_birth%TYPE,
                                       natn_code_legal IN gobintl.gobintl_natn_code_legal%TYPE,
                                       lang_code IN gobintl.gobintl_lang_code%TYPE,
                                       spon_code IN gobintl.gobintl_spon_code%TYPE,
                                       empt_code IN gobintl.gobintl_empt_code%TYPE,
                                       foreign_ssn IN gobintl.gobintl_foreign_ssn%TYPE,
                                       child_number IN gobintl.gobintl_child_number%TYPE,
                                       vpdi IN gobintl.gobintl_vpdi_code%TYPE
       IS
       BEGIN
          UPDATE gobintl
          SET gobintl_spouse_ind          = spouse_ind,
              gobintl_signature_ind       = signature_ind,
              gobintl_user_id             = user_id,
              gobintl_activity_date       = activity_date,
              gobintl_passport_id         = passport_id,
              gobintl_natn_code_issue     = natn_code_issue,
              gobintl_passport_exp_date   = passport_exp_date,
              gobintl_i94_status          = i94_status,
              gobintl_i94_date            = i94_date,
              gobintl_reg_number          = reg_number,
              gobintl_duration            = duration,
              gobintl_celg_code           = celg_code,
              gobintl_cert_number         = cert_number,
              gobintl_cert_date_issue     = cert_date_issue,
              gobintl_cert_date_receipt   = cert_date_receipt,
              gobintl_admr_code           = admr_code,
              gobintl_natn_code_birth     = natn_code_birth,
              gobintl_natn_code_legal     = natn_code_legal,
              gobintl_lang_code           = lang_code,
              gobintl_spon_code           = spon_code,
              gobintl_empt_code           = empt_code,
              gobintl_foreign_ssn         = foreign_ssn,
              gobintl_child_number        = child_number,
              gobintl_vpdi_code           = 'SV'
          WHERE gobintl_pidm = pidm;
       END p_gobintl_update_row;
       /* Procedure to update a row in gordocm table. */
       PROCEDURE p_gordocm_update_row (pidm IN gordocm.gordocm_pidm%TYPE,
                                       seq_no IN gordocm.gordocm_seq_no%TYPE,
                                       vtyp_code IN gordocm.gordocm_vtyp_code%TYPE,
                                       visa_number IN gordocm.gordocm_visa_number%TYPE,
                                       docm_code IN gordocm.gordocm_docm_code%TYPE,
                                       disposition IN gordocm.gordocm_disposition%TYPE,
                                       user_id IN gordocm.gordocm_user_id%TYPE,
                                       activity_date IN gordocm.gordocm_activity_date%TYPE,
                                       srce_code IN gordocm.gordocm_srce_code%TYPE,
                                       request_date IN gordocm.gordocm_request_date%TYPE,
                                       received_date IN gordocm.gordocm_received_date%TYPE,
                                       vpdi_gordocm IN gordocm.gordocm_vpdi_code%TYPE
       IS
       BEGIN
          UPDATE gordocm
          SET gordocm_disposition     = disposition,
              gordocm_user_id         = user_id,
              gordocm_activity_date   = activity_date,
              gordocm_srce_code       = srce_code,
              gordocm_request_date    = request_date,
              gordocm_received_date   = received_date,
              gordocm_vpdi_code       = vpdi_gordocm
          WHERE     gordocm_pidm = pidm
                AND gordocm_seq_no = seq_no
                AND gordocm_vtyp_code = vtyp_code
                AND gordocm_visa_number = visa_number
                AND gordocm_docm_code = docm_code;
       END p_gordocm_update_row;
       /* Procedure to delete a row from gobintl table. */
       PROCEDURE p_gobintl_delete_row (pidm IN gobintl.gobintl_pidm%TYPE)
       IS
       BEGIN
          DELETE FROM gobintl
          WHERE gobintl_pidm = pidm;
       END p_gobintl_delete_row;
       /* Procedure to delete a row from gordocm table. */
       PROCEDURE p_gordocm_delete_row (pidm IN gordocm.gordocm_pidm%TYPE,
                                       seq_no IN gordocm.gordocm_seq_no%TYPE,
                                       vtyp_code IN gordocm.gordocm_vtyp_code%TYPE,
                                       visa_number IN gordocm.gordocm_visa_number%TYPE,
                                       docm_code IN gordocm.gordocm_docm_code%TYPE
       IS
       BEGIN
          DELETE FROM gordocm
          WHERE     gordocm_pidm = pidm
                AND gordocm_seq_no = seq_no
                AND gordocm_vtyp_code = vtyp_code
                AND gordocm_visa_number = visa_number
                AND gordocm_docm_code = docm_code;
       END p_gordocm_delete_row;
    END gokintl;
    /Regards

Maybe you are looking for

  • Impact of new order type Creation.

    Greetings all SD experts, Currently, there's a new request in my company to create a new Sales Order Type via VOV8. Correct me if I'm wrong here but by creating a new order type, we need to also look into the item category assignment as well as the s

  • Help ipod wont work

    Ok, heres the low down... I got an iPod fifth gen. for christmas, it is my first one since somebody stole my old one, and theres a problem. I was just getting ready to go to school and I took the iPod off the dock without ejecting it from itunes. Whe

  • Where to build blog, based on these parameters

    It's been a long journey with lots of reading and experimenting. The setting: I build my site in iWeb, Publish to Folder, add tags in iWeb SEO Tool, and FTP to GoDaddy. SEO is very important to me, though I haven't implemented everything on my to-do

  • Camera issue in Beta2

    Hi everyone, I have a surface device with windows RT 8.1 with project siena beta2. The app I have ready for the store has a camera screen with sliders.   In beta1 the camera switching worked great, but beta1 had the issue with the photo capture savin

  • Opening Camera Raw

    I just installed the latest Camera Raw update, but I can't open it with Adobe Bridge, which is my main working tool.