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 responsesim 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,
RichWhen 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 -
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 -
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!
-chrisHi 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 -
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 -
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 SpaulonciIs 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. -
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
-
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
-
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
-
I just installed the latest Camera Raw update, but I can't open it with Adobe Bridge, which is my main working tool.