Exception calling function in package
i am looking for help determining why i receive the following exception when trying to call the PA_SEARCH_NOTES() function that is in the PA_SEARCHING package:
java.sql.SQLException: ORA-06550: line 1, column 7:
PLS-00221: 'PA_SEARCH_NOTES' is not a procedure or is undefined
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:543)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1405)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:822)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:1446)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1371)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1900)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:363)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:407)
at ...
this is the pl/sql:
PACKAGE Pa_Searching IS
TYPE tRowID IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
FUNCTION Pa_Search_Notes(in_string IN VARCHAR2, in_search_type IN NUMBER, in_types IN VARCHAR2, out_rows OUT tRowID)
RETURN NUMBER;
END Pa_Searching;this is the java code:
Connection con = new Connection( );
CallableStatement cs = con.prepareCall( "{ CALL PA_SEARCHING.PA_SEARCH_NOTES( ?, ?, ?, ? ) }" );
cs.setString( 1, bean.getPhrase( ) );
cs.setInt( 2, 1 );
cs.setString( 3, bean.getIssueTypeString( ) );
cs.registerOutParameter( 4, oracle.jdbc.OracleTypes.ARRAY, "TABLENUM" );
cs.execute( );this is the oracle database information i'm using:
Oracle8i Enterprise Edition Release 8.1.6.2.0 - Production
With the Partitioning option
JServer Release 8.1.6.2.0 - Production
using Oracle JDBC driver [ver. 8.1.7.0.0]
Try { ? = CALL PA_SEARCHING.PA_SEARCH_NOTES( ?, ?, ?, ? ) } and use registerOutParameter to accept the return value from your function.
Similar Messages
-
How can I call functions in packages using flash builder?
a new guy in flash developnet, I need to find out a way to import multiple packages into frames and call functions. I know how to import packages, but an error occurs error 1120 : access of undefined property. How can ı solve them?
Is there any easy way to add Mediapomise object to the stage form the package? "addChild(loader);" does not work? or ı do not know whether it works or not, ı could not see the photo that ı took from camerauı object in android.
thank youI need to find out a way to import multiple packages into frames
Usually, no matter where you use any classes of any package, the imports happen always in the beginning.
If you have a specific problem with flashbuilder you should post in this forum:
http://forums.adobe.com/community/flash_builder -
What (the hell) is SQL Exception called Function sequence error?
...doing in a code like this:
ResultSet friends=...executeQuery...
while (friends.next())
log.append(friends.getString("sendergsm"));
somewhere in between that loop, or sometimes the loop runs out fine, and sometimes it throws SQLException called General Error. Not guite normal...Thank you for replying... that must be agains some of the policies of the sun, to make methods that may be called normally, but may cause an error.
Anyway, this is my first database application. The number of problems I've had in few days is unbelivable. I wonder does it load the drivers from disk or something everytime it reads one record from database. I mean when I did the above query, the table had about 10 entries (the program showed 5 to 10 before function sequense error) and displaying each record to TextArea took over second. (In paradox (The dosversion) this would have taken less than a second).
And paradox tables doesn't work at all because it raises exception: Table isn't expected format. If I set paradox 4.0 drivers and put paradox 4.0 tables, you would guess that the format would be expected. And you cannot create paradox tables with SQL. Now I need to use access databases. How can database containing 60 records be 500kb:s? When it will contain 50000 new records every day, i guess I'll be in problem. Each tranaction (say 5 simple queries) taking minutes... heelp meee!! -
PLS-00201 error calling function in package member
Hello,
I'm trying to call a function defined in a PL/SQL package, but receiving a PLS-00201 error.Sorry, a finger-controller error caused me to submit before I was ready. I'm having the module replaced today. :)
After rethinking my decision to post here, I decided not to. I've never received a helpful answer, probably because the issues are not simple... Too bad. -
When attempting to create a new Account in siebel integrated with OEDQ the following error occurs.
ERROR
Data Quality vendor-specific error: An error occurred when calling function 'sdq_init_connector ()' in connector ": "(-8) Exception!." Detailed error message: Exception thrown by Java: java.lang.UnsatisfiedLinkError: nio (Not found in com.ibm.oti.vm.bootstrap.library.path)(SBL-APS-00118)
STEPS
The issue can be reproduced at will with the following steps:
1) from EDQ director we have imported the EDQ_CDS,EDQ-REFERENCE DATA & EDQ_HISTORICAl DATA packages sucessfully.
2) Created dnd.param file in SIebel server SDQCOnnector folder.
3) Copied the libdnd.so file to siebsrvr lib directory(32 bit)
3) In dnd.param file we have mentioned the javalib file and instllation directory path(<Siebsrvr roo>/dnd/install)
4) Unzipped the EDQ-Siebel Connector files in dnd/install folder
5) Copied the dnd.properties file in dnd/install directory and modified it accordingly to point to installed EDQ instance.
6) Configured the Siebel components for EDQ integration.
7) Realtime EDQ jobs are running.
8) Create a new Account
Env details are
On : 8.2.2.14 [IP2014] version, Client Functionality
EDQ 11.1.1.7.4
IBM JDK 1.7 32 bit
Using Open UI
Any Champ have faced this issue and overcame it please let me know the resolution steps. your help is
Regards
Monoj Dey
9007554589Hi Monoj,
A few questions:
- What OS is Siebel running on?
- What version of the Siebel connector are you using?
- Which libdnd.so file are you using?
- What's the contents of your dnd.parms file?
thanks,
Nick -
Uncatchable exception: BSP calling Function Module
Hi all,
currently i'm facing a very weird problem. My application class calls function module
HR_INFOTYPE_OPERATION. Normally, in case of an error, the function module gives you back a return parameter. But if i call it from my BSP, the processing doesn't leave the function module. It directly throws an exception ERROR_MESSAGE_STATE instead of writing the message into parameter return.
If i call the function module with the same parameters from a report, it works fine and the error message is written to return parameter without throwing an exception.
What am i doing wrong? I don't want that exception and need to go on with filled parameter result.
Regards
Mark-AndréHi MA,
try using ERROR_MESSAGE in the exceptions list, like this.
CALL FUNCTION 'func_name'
EXPORTING
string = text
pos = position
IMPORTING
string1 = text1
string2 = text2
EXCEPTIONS
string1_too_small = 1
string2_too_small = 2
ERROR_MESSAGE = 3
OTHERS = 4.
Cheers
Graham Robbo -
CALL FUNCTION 'RFC_REMOTE_PIPE' throwing exception as 1
Hi Sapients,
I am using CALL FUNCTION 'RFC_REMOTE_PIPE' to rename a file at the UNIX level..Though this runs well... sometimes this is giving an exception as ''1'' (System Failure).. if we execute the same after 3 or 4 hours this RFC is again successfully executed...Can anyone throw some light on why this is happening and how we can avoid the same.
CALL FUNCTION 'RFC_REMOTE_PIPE'
DESTINATION 'SERVER_EXEC'
EXPORTING
COMMAND = l_command
READ = c_yes
EXCEPTIONS
system_failure = 1
communication_failure = 2
OTHERS = 3.
where the l_command is mv old_file_name New_file_name
and C_yes is XHi,
Maybe my answer comes too late.
Could be helpful for others anyway.
We got the same trouble and it was due to the RFCEXEC.SEC file.
Installing the SDK7.20 the RFCEXEC files were missing and old RFCEXEC.SEC was not in the same format...
Please look also to OSS notes #1592501 and #1581595
Thanks
//Philippe. -
CALL FUNCTION 'RFC_REMOTE_PIPE' throwin exception ''1''
Hi Sapients,
I am using CALL FUNCTION 'RFC_REMOTE_PIPE' to rename a file at the UNIX level..Though this runs well... sometimes this is giving an exception as ''1'' (System Failure).. if we execute the same after 3 or 4 hours this RFC is again successfully executed...Can anyone throw some light on why this is happening and how we can avoid the same.
CALL FUNCTION 'RFC_REMOTE_PIPE'
DESTINATION 'SERVER_EXEC'
EXPORTING
COMMAND = l_command
READ = c_yes
EXCEPTIONS
system_failure = 1
communication_failure = 2
OTHERS = 3.
where the l_command is mv old_file_name New_file_name
and C_yes is X
<promise removed by moderator>
Edited by: Thomas Zloch on Mar 16, 2011 1:00 PMHi,
Maybe my answer comes too late.
Could be helpful for others anyway.
We got the same trouble and it was due to the RFCEXEC.SEC file.
Installing the SDK7.20 the RFCEXEC files were missing and old RFCEXEC.SEC was not in the same format...
Please look also to OSS notes #1592501 and #1581595
Thanks
//Philippe. -
Need of exception handler in calling function, isn't that weird???
Hi,
I have written a function as follows
public String fetchName(String query) throws Exception
stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
rs.next();
return (rs.getString(1));
I've handled the for exceptions here using "throws Exception". Inspite of that when i call it from other function and in that funtion no exception need to be handled, compiler gives errror.
Following is the calling funtion
public String checksubAction(String action)
String retValue=" ";
String query="";
query = "select Title from dbo.Folder where Folder_Id="+folderId;
retValue = dataBaseObj.fetchName(query);
but when i write it in try-catch block, no errror is given.
Why is it that inspite of handling exception(s) in the called function, we need to handle them in calling functions.No you have not handled the exception. Your code say "fetchName" does NOT handle exceptions of type "Exception", the calling method should be aware of this, and handle that type of exception.
The Java Tutorial: Essential Java Classes: Handling Errors Using Exceptions
(Please when declaring a method can throw exceptions, be specific, i.e. throw SQLException in this case) -
Call function destination XI exception
Hello,
in R3 i call to function in XI, it's follow:
call function 'XXX'
--destination 'XI'
--exporting
AA = aa
--importing
BB = bb
--exceptions
system_failure = 1
communication_failure = 2
other = 3
when this call produce a exception, why sometimes I can not see anything in XI - SXMB_MONI / runtime workbench -?
thank you very muchHI,
If in case the message failed at entry point i.e. RFC sender communication channel, then it would not be available in SXMB_MONI.
You may trace it from Communciation Channel Monitoring from RWB..
Thanks
Swarup -
Exception CX_SY_DYN_CALL_ILLEGAL_TYPE when calling function
Hello,
When I call a function module, it gives a runtime error like this:
Runtime error CALL_FUNCTION_CONFLICT_TYPE
Except. CX_SY_DYN_CALL_ILLEGAL_TYPE
The problem is that I'm using something like below:
call function zzz
exporting
xxx = yyy
with:
xxx type char50
yyy type char2
Is there a possibility to transform my char2 into a char50?
By doing this, I would be able to use the function module.
Thankshi,
do one thing just make the type and size of both the importing and exporting parameter same...
example:-
data: a(10) type c. (importing)
data: b(10) type c. (exporting)
i think this will help u
with regards,
Ritesh J -
Call function node exception AI SingleScan
Hi all,
I am running a Labview 6.1 application on Windows 2000.
When I run the circuit to measure waveform curve on 1 input it works fine.
But I had to introduce a measurement of 2 more inputs and now get the following exception (this happens sporadically - mainly when you have important measurements):
"An exception occured within the external code called by a call library node......VI was stopped at Call library function node 0x239C of subVI "AI SingleScan (single-point waveform).vi".
The call function library calls this routine out of lvdaq.dll with calling convention 'C' (otherwise the program crashed instantly).
I hope that someone can help me solve it.
Thnx xris.Hi Xris,
I would like you to check if the information given in the following thread will solve you problem.
http://forums.ni.com/ni/board/message?board.id=170&message.id=88345&requireLogin=False
If the problem keeps existing please post again in this threas.
Thanks in advance.
Bets regards,
Carsten Sprung
Application Engineer
National Instruments Germany -
How to find Unused variables in procedure,function or package
Hi all,
I want find out unused variables in procedure, function and package.
I have written below script for doing this ,but i am not getting the expected result.
Kindly help me to improve the below code ,so that it works as expected.
{code}
version details
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
"CORE 11.2.0.3.0 Production"
TNS for Linux: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production
{code}
{code}
What i Have tried is This.
DECLARE
V_OBJECT_NAME VARCHAR2(30) :='PR_PRINT';
V_OBJECT_TYPE VARCHAR2(30) :='PROCEDURE';
CURSOR C1(CP_OBJECT_NAME VARCHAR2,CP_OBJECT_TYPE VARCHAR2)
IS
SELECT US.NAME,
US.TYPE,
US.LINE,
REGEXP_SUBSTR(US.TEXT,'.* ') AS var_name
FROM user_source US
WHERE name=CP_OBJECT_NAME
AND type =CP_OBJECT_TYPE
AND REGEXP_LIKE (TEXT,'(v_|g_|c_)','i')
AND REGEXP_LIKE (TEXT,'^[^ ]')
AND REGEXP_LIKE (TEXT,'^[^--]') ;
v_count NUMBER ;
BEGIN
FOR i IN C1(V_OBJECT_NAME,V_OBJECT_TYPE)
LOOP
SELECT COUNT( *)
INTO V_COUNT
FROM USER_SOURCE US
WHERE US.NAME=I.NAME
AND REGEXP_LIKE(US.TEXT,i.var_name,'i' )
AND US.LINE<>I.LINE;
IF V_COUNT =0 THEN
DBMS_OUTPUT.PUT_LINE('variable '||I.VAR_NAME||'Is declared at line#'||I.LINE||' But no where used');
END IF ;
END LOOP;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('p_err_code := '||SQLCODE||dbms_utility.format_Error_backtrace());
DBMS_OUTPUT.PUT_LINE('p_err_msg := '||sqlerrm);
END ;
{code}
Thanks,
P PrakashHello,
as suggested by padders you can use PL/Scope, an example:
ALTER SESSION SET PLSCOPE_SETTINGS='IDENTIFIERS:ALL';
CREATE OR REPLACE PACKAGE ui_test1 AS
global_number NUMBER := 9;
FUNCTION get_number
RETURN NUMBER;
END ui_test1;
CREATE OR REPLACE PACKAGE BODY ui_test1 AS
PROCEDURE setNull
p_varchar IN OUT VARCHAR2
IS
BEGIN
p_varchar := NVL(p_varchar,'NULL');
END setNull;
FUNCTION get_number
RETURN NUMBER
IS
FUNCTION setZero
p_number IN NUMBER
RETURN NUMBER
IS
BEGIN
RETURN NVL(p_number,0);
END setZero;
BEGIN
RETURN global_number;
END get_number;
END ui_test1;
SELECT DISTINCT
object_name
,object_type
,name
,type
,line
,col
FROM all_identifiers obj
WHERE obj.owner = USER
AND obj.usage = 'DECLARATION'
AND obj.object_name = 'UI_TEST1'
AND NOT EXISTS (
SELECT 1
FROM all_identifiers with_rh
WHERE obj.signature = with_rh.signature
AND with_rh.usage IN ('REFERENCE','CALL','ASSIGNMENT')
ORDER BY TYPE
,object_name
,object_type
,name;
OBJECT_NAME OBJECT_TYPE NAME TYPE LINE COL
UI_TEST1 PACKAGE GET_NUMBER FUNCTION 11 10
UI_TEST1 PACKAGE BODY SETZERO FUNCTION 35 14
UI_TEST1 PACKAGE UI_TEST1 PACKAGE 1 9
UI_TEST1 PACKAGE BODY SETNULL PROCEDURE 12 11
Regards
Marcus -
Call Function from PLSQL--ORA-31013 : Invalid XPATH expressioon
I tried the following SQL statement. when I called function,it giving error.
select *
from v$version;
1
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi
2
PL/SQL Release 10.2.0.3.0 - Production
3
CORE 10.2.0.3.0
Production
4
TNS for Linux: Version 10.2.0.3.0 - Production
5
NLSRTL Version 10.2.0.3.0 - Production
function READ_SYSTEM_RESPONSE(PARAM IN CLOB)
RETURN NUMBER
AS
l_namespace varchar2(1000):='xsi:schemaLocation="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader PackageProxy.xsd"
xmlns:sh="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader"
xmlns:ef="http://www.efatura.gov.tr/package-namespace"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"';
x XMLTYPE
:= XMLTYPE('<?xml version="1.0" encoding="UTF-8"?>
<sh:StandardBusinessDocument xsi:schemaLocation="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader PackageProxy.xsd"
xmlns:sh="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader"
xmlns:ef="http://www.efatura.gov.tr/package-namespace"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<sh:StandardBusinessDocumentHeader>
<sh:HeaderVersion>1.0</sh:HeaderVersion>
</sh:StandardBusinessDocumentHeader>
</sh:StandardBusinessDocument>');
CURSOR ana IS
SELECT 1--EXTRACTVALUE(VALUE (p),'/sh:StandardBusinessDocumentHeader/sh:HeaderVersion',l_namespace) AS IMZA
FROM TABLE(XMLSEQUENCE (EXTRACT (x,'/sh:StandardBusinessDocument',l_namespace))) p;
BEGIN
FOR r IN ana
loop
dbms_output.put_line('- - - - - - -');
end loop;
RETURN 1;
EXCEPTION WHEN OTHERS THEN
dbms_output.put_line(sqlerrm);
RETURN 0;
END;odie_63 wrote:
Remove this from the l_namespace string, it has nothing to do in there, it's not a namespace declaration :
xsi:schemaLocation="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader PackageProxy.xsd
As a general rule, just declare the namespace(s) - default or prefixes - you need to resolve the XPath expression.
Once you correct that part, you'll discover that your query returns NULL.
That's because the XPath doesn't point to any node.
Try this instead :
SELECT EXTRACTVALUE(
VALUE (p)
, '/sh:StandardBusinessDocument/sh:StandardBusinessDocumentHeader/sh:HeaderVersion'
, l_namespace
) AS IMZA
FROM TABLE(
XMLSEQUENCE(
EXTRACT (x, '/sh:StandardBusinessDocument', l_namespace)
) p
Thanks odie_63,You're right. I removed " xsi:schemaLocation="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader PackageProxy.xsd" and It is working! -
DBMS_JOB using Packaged Functions but Package goes invalid
Is there any way to check a package while running a PL/SQL procedure to see if it's state is valid and then catch the exception?
In my case usually just calling any function in the package 1x clears it up but the procedure in question runs as a DBMS_JOB it just keeps failing. This procedure could run often enough that Oracle will mark it as broken but I want to give it every shot at execution on time instead of having to make it wait till the next cycle.
What I would like to do is to catch the exception for the package state being invalid and basically have it go back to the beginning of the procedure and give it another try before failing in case it is just a failure because the package has been altered.
Is there any way to do this?Firstly, I'll copy/paste my standard response regarding package state going invalid as it usually helps to have an understanding of these things...
Packages tend to fail because of their "package state". A package has a "state" when it contains package level variables/constants etc. and the package is called. Upon first calling the package, the "state" is created in memory to hold the values of those variables etc. If an object that the package depends upon e.g. a table is altered in some way e.g. dropped and recreated, then because of the database dependencies, the package takes on an INVALID status. When you next make a call to the package, Oracle looks at the status and sees that it is invalid, then determines that the package has a "state". Because something has altered that the package depended upon, the state is taken as being out of date and is discarded, thus causing the "Package state has been discarded" error message.
If a package does not have package level variables etc. i.e. the "state" then, taking the same example above, the package takes on an INVALID status, but when you next make a call to the package, Oracle sees it as Invalid, but knows that there is no "state" attached to it, and so is able to recompile the package automatically and then carry on execution without causing any error messages. The only exception here is if the thing that the package was dependant on has changes in such a way that the package cannot compile, in which case you'll get an Invalid package type of error.
And if you want to know how to prevent discarded package states....
Move all constants and variables into a stand-alone package spec and reference those from your initial package. Thus when the status of your original package is invlidated for whatever reason, it has no package state and can be recompiled automatically, however the package containing the vars/const will not become invalidated as it has no dependencies, so the state that is in memory for that package will remain and can continue to be used.
As for having package level cursors, you'll need to make these local to the procedures/functions using them as you won't be able to reference cursors across packages like that (not sure about using REF CURSORS though.... there's one for me to investigate!)
This first example shows the package state being invalided by the addition of a new column on the table, and causing it to give a "Package state discarded" error...
SQL> set serveroutput on
SQL>
SQL> create table dependonme (x number)
2 /
Table created.
SQL>
SQL> insert into dependonme values (5)
2 /
1 row created.
SQL>
SQL> create or replace package mypkg is
2 procedure myproc;
3 end mypkg;
4 /
Package created.
SQL>
SQL> create or replace package body mypkg is
2 v_statevar number := 5; -- this means my package has a state
3
4 procedure myproc is
5 myval number;
6 begin
7 select x
8 into myval
9 from dependonme;
10
11 myval := myval * v_statevar;
12 DBMS_OUTPUT.PUT_LINE('My Result is: '||myval);
13 end;
14 end mypkg;
15 /
Package body created.
SQL>
SQL> exec mypkg.myproc
My Result is: 25
PL/SQL procedure successfully completed.
SQL>
SQL> select object_name, object_type, status from user_objects where object_name = 'MYPKG'
2 /
OBJECT_NAME
OBJECT_TYPE STATUS
MYPKG
PACKAGE VALID
MYPKG
PACKAGE BODY VALID
SQL>
SQL>
SQL> alter table dependonme add (y number)
2 /
Table altered.
SQL>
SQL> select object_name, object_type, status from user_objects where object_name = 'MYPKG'
2 /
OBJECT_NAME
OBJECT_TYPE STATUS
MYPKG
PACKAGE VALID
MYPKG
PACKAGE BODY INVALID
SQL>
SQL> exec mypkg.myproc
BEGIN mypkg.myproc; END;
ERROR at line 1:
ORA-04068: existing state of packages has been discarded
ORA-04061: existing state of package body "SCOTT.MYPKG" has been invalidated
ORA-06508: PL/SQL: could not find program unit being called: "SCOTT.MYPKG"
ORA-06512: at line 1
SQL>
SQL> select object_name, object_type, status from user_objects where object_name = 'MYPKG'
2 /
OBJECT_NAME
OBJECT_TYPE STATUS
MYPKG
PACKAGE VALID
MYPKG
PACKAGE BODY INVALID
SQL>
SQL> exec mypkg.myproc
PL/SQL procedure successfully completed.
SQL>
SQL> select object_name, object_type, status from user_objects where object_name = 'MYPKG'
2 /
OBJECT_NAME
OBJECT_TYPE STATUS
MYPKG
PACKAGE VALID
MYPKG
PACKAGE BODY VALIDAnd this next example shows how having the package variables in their own package spec, allows the package to automatically recompile when it is called even though it became invalidated by the action of adding a column to the table.
SQL> drop table dependonme
2 /
Table dropped.
SQL>
SQL> drop package mypkg
2 /
Package dropped.
SQL>
SQL> set serveroutput on
SQL>
SQL> create table dependonme (x number)
2 /
Table created.
SQL>
SQL> insert into dependonme values (5)
2 /
1 row created.
SQL>
SQL> create or replace package mypkg is
2 procedure myproc;
3 end mypkg;
4 /
Package created.
SQL>
SQL> create or replace package mypkg_state is
2 v_statevar number := 5; -- package state in seperate package spec
3 end mypkg_state;
4 /
Package created.
SQL>
SQL> create or replace package body mypkg is
2 -- this package has no state area
3
4 procedure myproc is
5 myval number;
6 begin
7 select x
8 into myval
9 from dependonme;
10
11 myval := myval * mypkg_state.v_statevar; -- note: references the mypkg_state package
12 DBMS_OUTPUT.PUT_LINE('My Result is: '||myval);
13 end;
14 end mypkg;
15 /
Package body created.
SQL>
SQL> exec mypkg.myproc
My Result is: 25
PL/SQL procedure successfully completed.
SQL>
SQL> select object_name, object_type, status from user_objects where object_name = 'MYPKG'
2 /
OBJECT_NAME
OBJECT_TYPE STATUS
MYPKG
PACKAGE VALID
MYPKG
PACKAGE BODY VALID
SQL>
SQL> alter table dependonme add (y number)
2 /
Table altered.
SQL>
SQL> select object_name, object_type, status from user_objects where object_name = 'MYPKG'
2 /
OBJECT_NAME
OBJECT_TYPE STATUS
MYPKG
PACKAGE VALID
MYPKG
PACKAGE BODY INVALID
SQL>
SQL> exec mypkg.myproc
My Result is: 25
PL/SQL procedure successfully completed.---------------------------------------------------------------------------------------------
Secondly, from this above standard response, you can see how to check for package state if you want to determine it programatically.
;)
Maybe you are looking for
-
Having trouble transferring my complete library onto my new computer
hello. i am a fairly new mac convert and am far from what you would call a techy! i have a large collection of music from my personal cds and purchases etc. i was able to transfer all my music from my pc to my new mac mini last year without a problem
-
Datagram socket is not working
Hi, I made a datagram socket and try to send a byte array. but when I called socket.send method it returned an error that an operation is attempted on invalid socket. What I am missing here is my code... <mx:WindowedApplication xmlns:mx="http://www.a
-
How to I get my devices to sync to new computer?
How to I get my devices to sync to new computer?
-
0kb on scan to network with Windows 8
1. Product Name and Number: HP Officejet Pro 8500 A909g wireless; connected via ethernet through a switch/router 2. Operating System installed (if applicable): Windows 8 Pro 32-bit 3. Error message: no error message 4. Any changes made to your sy
-
Prior to upgrading to iPhone 2.0 and iTunes 7.7, I could select a Web Gallery to sync to iPhone from within iTunes. Now my Galleries don't show up for me to select and sync. My only guess is that they just want you to go directly to the Web Gallery u