Set serveroutput on handling at Package/Procedure.
Hi,
Can we handle the set serveroutput on in package it self ?, what is the scenario we need to do for this.
I need to print some values after executing the package automatically.... please let me know further more information requried.
please let me know what DBMS_OUTPUT.ENABLE(10000000) will be do...?
Thanks,
Pavan K
DBMS_OUTPUT.ENABLE(10000000) will turn on dbms_output, but unless the client knows to check for output you won't see anything.
To make SQL*Plus poll for output you need to use the SET SERVEROUTPUT ON SQL*Plus command to tell SQL*Plus to look for output. You could then use DBMS_OUTPUT.DISABLE to turn it off programatically until you need it turned back on.
Otherwise you need to poll for output yourself by issuing calls to DBMS_OUTPUT.GET_LINE[s]
Similar Messages
-
Using SET SERVEROUTPUT ON in procedure
Hi,
Can I use SET SERVEROUTPUT ON inside a procedure. The reason is I am building a procedure in Toad and will execute in SqlPlus. In future I will only use SqlPlus to execute and view my result.No.
Although you can use DBMS_OUTPUT.ENABLE, it only re-enables output that was previously disabled (with DBMS_OUTPUT.DISABLE). It does not alter the current SQL*Plus SERVOUTPUT setting.
For example,
SQL> set serveroutput on size 1000000
SQL>
SQL> begin
2 dbms_output.enable(1000000);
3 dbms_output.put_line('Eat more bananas');
4 end;
5 /
Eat more bananas
PL/SQL procedure successfully completed.
SQL> set serveroutput off
SQL>
SQL> r
1 begin
2 dbms_output.enable(1000000);
3 dbms_output.put_line('Eat more bananas');
4* end;
PL/SQL procedure successfully completed.
SQL> show serverout
serveroutput OFF -
Exception handling in calling procedure
Hi,
i have a package where currently am making calls to private procedures from public procedure.
and the senario is:-
create package body p_tst
is
ex_failed exception;
-- this is private proc
procedure p_private
is
begin
raise ex_failed;
exception
when ex_failed
then
raise;
end p_private;
procedure p_public
is
begin
-- nomaking call to private
-- procedure
p_private;
-- here i need to catch
-- the raised exception
-- passed from the called
-- procedure
when ex_failed
end p_public;
end;
basically i want to catch the exception being passed from called procedure to calling procedure, and raise the same exception in calling procdure.
is it possible to catch the same exception in the calling procedure?Yes, you can catch the same exception in the calling procedure, exceptions are propagated to the caller if they are not handled in the called procedure.
Is this what you are trying to do?
CREATE OR REPLACE PACKAGE p_tst
AS
PROCEDURE p_public;
ex_failed EXCEPTION;
END;
CREATE OR REPLACE PACKAGE BODY p_tst
IS
PROCEDURE p_private
IS
BEGIN
RAISE ex_failed;
END p_private;
PROCEDURE p_public
IS
BEGIN
p_private;
EXCEPTION
WHEN ex_failed
THEN
DBMS_OUTPUT.put_line ('error');
END p_public;
END;
SQL> set serveroutput on;
SQL> exec p_tst.p_public;
error
PL/SQL procedure successfully completed. -
Exception Handling in packages called from forms
I am running 10g forms that have many calls to packages/procedures in the database. I am seeing hanging processes on the web server (even after forms processes are stopped) and 1 of the causes Oracle listed was not having proper exception handling in the procesdures. Do I need to add an Exception (' when others then null') to my package specs to handle this?
"Do I need to add an Exception (' when others then null') to my package specs to handle this? "
That will hide the problem not handle it. You really need is to find out where the code is failing...
There is a method for logging message for debugging here...
http://oracle-developer.net/display.php?id=424
An another which is less good for a live system (the one above lets you set different levels of importance for logs messages and can be turned on or off for each user) but looks easier to implement in case you might be in a hurry...
Re: Zdebug -- Download a Forms debugging message tool -
Trouble Setting Up DML Handler for Journaling
Hi Pat,
I am trying to setup a simple DML handler for journaling of a table and cannot get it to work. Configuration is as follows:
Source table
Target table - updated via basic replication setup, this works fine.
Target table journal - This table looks just like the original with additional columns for meta data about the transaction (i.e. trans_time, trans_type, trans_id..etc). Note: Did not use nested table technology.
The problem is in compiling the user procedure for the DML handler we get an error on the INSERT part of the code:
PL/SQL: ORA-00932: inconsistent datatypes: expected NUMBER got -
The code is listed below and the error points to the usage of the lcr.GET_VALUE package regardless of the column.
Can you tell me if this is a correct usage of that package/procedure? Can you provide any better examples of DML handlers,preferbly for journaling? I understand from another thread you may have a new set of doc coming out. Maybe that can help me?
I have a WORD doc w/pics that can better articulate the situation if it will help. Any direction is truely appreciated.
Best Regards,
Tom
P.S. Is Oracle consulting spun up on this technology? We are not adverse to having profesional help to reduce our spinup time.
CREATE OR REPLACE PROCEDURE contact_point_journal_dml(in_any IN SYS.ANYDATA)
IS
lcr SYS.LCR$_ROW_RECORD;
rc PLS_INTEGER;
BEGIN
-- Access the LCR
rc := in_any.GETOBJECT(lcr);
-- Insert information in the LCR into the contact_point_journal table
INSERT INTO strmuser.contact_point_journal
VALUES
(lcr.GET_VALUE('NEW', 'CONTACT_POINT_ID'),
lcr.GET_VALUE('NEW', 'EFFECTIVE_DT'),
lcr.GET_VALUE('NEW', 'VERSION'),
lcr.GET_VALUE('NEW', 'CREATED_BY'),
lcr.GET_VALUE('NEW', 'CREATED_TS'),
lcr.GET_VALUE('NEW', 'CONTACT_CODE_ID'),
lcr.GET_VALUE('NEW', 'ADDRESS1'),
lcr.GET_VALUE('NEW', 'ADDRESS2'),
lcr.GET_VALUE('NEW', 'ADDRESS3'),
lcr.GET_VALUE('NEW', 'ADDRESS4'),
lcr.GET_VALUE('NEW', 'CITY'),
lcr.GET_VALUE('NEW', 'COUNTY'),
lcr.GET_VALUE('NEW', 'STATE_PROVINCE_CODE_ID'),
lcr.GET_VALUE('NEW', 'POSTAL_CODE'),
lcr.GET_VALUE('NEW', 'COUNTRY_CODE_ID'),
lcr.GET_VALUE('NEW', 'GEO_CODE'),
lcr.GET_VALUE('NEW', 'OTHER_CONTACT_POINT_VALUE'),
lcr.GET_VALUE('NEW', 'EXPIRATION_DT'),
lcr.GET_VALUE('NEW', 'LAST_MODIFIED_BY'),
lcr.GET_VALUE('NEW', 'LAST_MODIFIED_TS'),
SYSDATE,
lcr.GET_COMMAND_TYPE(),
lcr.GET_TRANSACTION_ID(),
lcr.GET_SCN(),
lcr.GET_SOURCE_DATABASE_NAME(),
lcr.GET_OBJECT_OWNER(),
lcr.GET_OBJECT_NAME(),
'1',
'A'
-- Apply row LCR
-- Command type code may be '03' instead of 'insert' ???
-- Is the syntax correct for SET statement ???
lcr.SET_COMMAND_TYPE('INSERT');
lcr.EXECUTE(true);
END;Hi Tom,
The GET_VALUE method of an LCR$ROW_RECORD returns a SYS.ANYDATA type.
You need to specify one of the static access functions to get the value of the correct type.
Here is your dml_handler with the modifications:
CREATE OR REPLACE PROCEDURE contact_point_journal_dml(in_any IN SYS.ANYDATA)
IS
lcr SYS.LCR$_ROW_RECORD;
rc PLS_INTEGER;
BEGIN
-- Access the LCR
rc := in_any.GETOBJECT(lcr);
-- Insert information in the LCR into the contact_point_journal table
INSERT INTO strmuser.contact_point_journal
VALUES
(lcr.GET_VALUE('NEW', 'CONTACT_POINT_ID').AccessNumber(),
lcr.GET_VALUE('NEW', 'EFFECTIVE_DT').AccessDate(),
lcr.GET_VALUE('NEW', 'VERSION').AccessNumber(),
lcr.GET_VALUE('NEW', 'CREATED_BY').AccessVarchar2(),
lcr.GET_VALUE('NEW', 'CREATED_TS').AccessTimestamp(),
lcr.GET_VALUE('NEW', 'CONTACT_CODE_ID').AccessNumber(),
lcr.GET_VALUE('NEW', 'ADDRESS1').AccessVarchar2(),
lcr.GET_VALUE('NEW', 'ADDRESS2').AccessVarchar2(),
lcr.GET_VALUE('NEW', 'ADDRESS3').AccessVarchar2(),
lcr.GET_VALUE('NEW', 'ADDRESS4').AccessVarchar2(),
lcr.GET_VALUE('NEW', 'CITY').AccessVarchar2(),
lcr.GET_VALUE('NEW', 'COUNTY').AccessVarchar2(),
lcr.GET_VALUE('NEW', 'STATE_PROVINCE_CODE_ID').AccessNumber(),
lcr.GET_VALUE('NEW', 'POSTAL_CODE').AccessVarchar2(),
lcr.GET_VALUE('NEW', 'COUNTRY_CODE_ID').AccessNumber(),
lcr.GET_VALUE('NEW', 'GEO_CODE').AccessVarchar2(),
lcr.GET_VALUE('NEW', 'OTHER_CONTACT_POINT_VALUE').AccessVarchar2(),
lcr.GET_VALUE('NEW', 'EXPIRATION_DT').AccessDate(),
lcr.GET_VALUE('NEW', 'LAST_MODIFIED_BY').AccessVarchar2(),
lcr.GET_VALUE('NEW', 'LAST_MODIFIED_TS').AccessTimestamp(),
SYSDATE,
lcr.GET_COMMAND_TYPE(),
lcr.GET_TRANSACTION_ID(),
lcr.GET_SCN(),
lcr.GET_SOURCE_DATABASE_NAME(),
lcr.GET_OBJECT_OWNER(),
lcr.GET_OBJECT_NAME(),
'1',
'A'
-- Apply row LCR, too
lcr.EXECUTE(true);
END; -
I currently have a package and procedure created that I want to use. Yet when I run my script I am getting back an error. Here is the script:
spool testlog.txt
set pagesize 0
set linesize 2048
set heading off
set feedback off
set serveroutput off
begin
pin_arch.move_to_staging_for_bkp(1);
end;
spool off
Yet when I execute this I get the following error:
begin
ERROR at line 1:
ORA-20000: Fatal error -- Exiting. See audit trail for details
ORA-06512: at "PIN_ARCHIVE.PIN_ARCH", line 912
ORA-06512: at line 2
Any ideas on why I might be getting this. Thank you in advance.Can you paste your package / function here as well.
thanks
SH -
Package procedure in invalid state
Hi all,
We are having an application in C# and backend oracle 10g placed in Location1.
There is modification in Packaged procedure. So we remotely (from Location2) connected to Location1 and that Packaged procedure is created.
This Packaged procedure has been created (in Location1 ) without any errors. But this procedure is in INVALID state. We tried to compile it remotely by using following statements, but still this is in invalid state .
ALTER PACKAGE my_package COMPILE;
ALTER PACKAGE my_package COMPILE BODY;
If we run this package and package body manually, without any modifications after creating it remotly, it is becoming VALID state.
I am not getting any idea, why it is creating in INVALID state. Any help is appreciated.
Thanks in advance,
PalOk, here's a previous response that I gave re. packages and their "states". Should give you a good idea what a state is...
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 "CRISP_INTELL.MYPKG" has been invalidated
ORA-06508: PL/SQL: could not find program unit being called: "CRISP_INTELL.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. -
Error while accessing oracle packaged procedure in crystal report./ How to
Hi,
When i tried to call a packaged procedure in crystal reports for .net, i am unable to access it.
i am getting error as 'unknown query engine'
In that packaged procedure i have a two IN parameters and one OUT TABLE parameter ( which is declared in package specification )
And when selecting the packaged procedure in crystal report,the wizard shows all the parameters like the IN parameters, and when i just leave it blank. i unable to set into report.
ie., the OUT table type is shown as IN paramters (Actually it is an output and has field fields in it.)
And No fields are coming in the Fields Explorer of crystal reports in .net.
can you provide any help.
thanks and regards
Mohan Raj K.
Actually using vs.net 2005 prof.
Message was edited by:
mohanraj_kActually the OUT Parameter type in the stored
procedure is showing as IN Parameters and asking
for input values in the crystal report creation
wizard(while selecting the
database,connection,storedprocedures/qualifiers).That sounds like a problem on the .net / crystal report creation wizard side of things. Oracle no doubt recognises them as OUT parameters, so it's not Oracle at fault. I would guess the .net stuff is just querying the data dictionary to see what parameters there are rather than differentiating between the INs and OUTs. -
I have 10.2.0.1.0 on Windows XP and have set serveroutput on on sqlplus. However, I don't see the out put from dbms_output.put_line('xxxxxx'); the dbms_output.put_line() is not in IF or ELSE condition.
Can anyone please shed a light? Thanks in advance.Dear 782150,
Here is a little illustration for you;
$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.4.0 - Production on Tue Jul 20 17:25:56 2010
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> set serveroutput on;
SQL> exec dbms_output.put_line('ogan');
ogan
PL/SQL procedure successfully completed.
SQL> set serveroutput off;
SQL> exec dbms_output.put_line('ogan');
PL/SQL procedure successfully completed.
*SQL> exec dbms_output.enable();*
PL/SQL procedure successfully completed.
*SQL> exec dbms_output.put_line('ogan');*
PL/SQL procedure successfully completed.
*SQL> set serveroutput on;*
SQL> exec dbms_output.put_line('ogan');
*ogan*
*ogan*
PL/SQL procedure successfully completed.
SQL> exec dbms_output.put_line('ogan');
ogan
PL/SQL procedure successfully completed.So it shows two ogan outputs after the dbms_output.enable(). Basically the set serveroutput on should help you but if you can show the SQL you have used it would be better for us to understand the problem.
Hope That Helps,
Ogan -
Calling packaged procedure from a function
Hi all,
I am using Oracle database 10.2.0
I have a packaged procedure , there are two IN parameters(Varchar, Date) and an OUT parameter(REF CURSOR). The out parameter sends a result set from a query(multiple records of a table). I was asked to create a function which can use this procedure and returns the same resultset. Can u please suggest how to proceed?
Thanks & Regards,
Naveen.Is it something like this you're after:
SQL> create or replace function test_f (p_In1 in number, p_In2 in varchar2) return sys_refcursor as
2 r sys_refcursor;
3 begin
4 open r for 'select ' || to_char(p_In1) || ',''' || p_In2 || ''' from dual';
5 return r;
6 end test_f;
7 /
Function created.
SQL> declare
2 r sys_refcursor;
3
4 l_no number;
5 l_Greet varchar2(30);
6 begin
7 r := test_f(1, 'Hello');
8
9 fetch r into l_no, l_Greet;
10 if (r%found) then
11 dbms_output.put_line(l_No || ' ' || l_Greet);
12 end if;
13
14 close r;
15
16 exception
17 when others then
18 dbms_output.put_line('Err ' || sqlerrm);
19 if (r%isopen) then
20 close r;
21 end if;
22
23 end;
24 /
1 Hello
PL/SQL procedure successfully completed.P;
Edited by: bluefrog on Mar 4, 2010 3:16 PM -
SOLUTION AT BOTTOM OF THREAD!
I have installed numerous AUR packages in the past. However, this is the first that I am unable to figure out.
I assume I am supposed to extract the tar, copy the Braid package files (from my owned copy of Braid) to the same directory, run makepkg, then install via pacman. The problem I am having is when I go to use makepkg I get the following error:
# makepkg -s
==> Making package: braid 1.0.2-1 (DATE TIME)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving Sources...
==> ERROR: There is no agent set up to handle file URLs. Check /etc/makepkg.conf.
Aborting...
I am not finding any solutions on Google. Please help!
Edit - Edited to show thread solved.
Last edited by qKUqm3wtY4 (2013-01-03 17:00:49)SOLUTION! Provided by tdy
braid-linux-build2.run.bin from Humble Indie Bundle 2 is required!
You must edit the PKGBUILD file.
source=("$_gamepkg"::"file://$_gamepkg"
Change the source line to this:
source=($_gamepkg
Don't extract the braid file. Just place it in the same directory as the PKGBUILD file.
Run makepkg
# makepkg -s
Then run pacman
pacman -U [filename].pkg.tar
YOU ARE DONE!
UPDATE!!!
AFTER THIS THREAD WAS SOLVED, THE AUR PACKAGE WAS UPDATED TO SOLVE THIS ERROR. JUST MAKE SURE YOU HAVE THE braid-linux-build2.run.bin FILE IN THE SAME DIRECTORY, AND THE INSTALL WILL WORK.
Last edited by qKUqm3wtY4 (2013-01-06 09:18:11) -
Problem calling a package procedure with default values within oracle forms 6i. It appears that
oralce forms 6i does not support calls to package procedure with default values.
Any ideas why???
Much appreciated.There are no gobal variables within the package. It's actually the package procedures that use default values.
These package procedure are being called from different calling environments and I want to avoid overloading the procedures.
So if I set the parameters that are not used by forms6i to default values, I'd have hoped it worked but it didn't. -
Debug Package/Procedure in Oracle
Hi,
Please let me know the procedure to debug a package/procedure in oracle ( Apart from dbms_output commands). We are using Toad.
Other option would be to
1. Set tracing on for a particular session and analyze logs generated through tkprof
2. Turn on Logon trigger for a user to capture all the SQLs fired.
The issue with above options is that all system fired SQL's are also captured. It would be a tough task to wade through all the SQL's fired.
PLease suggest the best option to debug a complex procedure/package.
Thanks in advance.Create one table and caputure all results in that... Thanks!
-
Package,procedure,functions
Iam having one requirement. i.e. i want know which package,procedure,function is calling....?
for ex:
procedure a
-- p1
call_procedure_b;
-- p2
call_procedure_c;
at p1,p2 i want to know which is being called?
is there any possibiliyt like that?
can anybody help me on this?user632359 wrote:
can u please provide me with an example?Here's some code someone posted a while back (can't remember who), but I saved it for a rainy day...
create or replace procedure who_called_me( owner out varchar2,
name out varchar2,
lineno out number,
caller_t out varchar2 )
as
call_stack varchar2(4096) default dbms_utility.format_call_stack;
n number;
found_stack BOOLEAN default FALSE;
line varchar2(255);
cnt number := 0;
begin
loop
n := instr( call_stack, chr(10) );
exit when ( cnt = 3 or n is NULL or n = 0 );
line := substr( call_stack, 1, n-1 );
call_stack := substr( call_stack, n+1 );
if ( NOT found_stack ) then
if ( line like '%handle%number%name%' ) then
found_stack := TRUE;
end if;
else
cnt := cnt + 1;
-- cnt = 1 is ME
-- cnt = 2 is MY Caller
-- cnt = 3 is Their Caller
if ( cnt = 3 ) then
lineno := to_number(substr( line, 13, 6 ));
line := substr( line, 21 );
if ( line like 'pr%' ) then
n := length( 'procedure ' );
elsif ( line like 'fun%' ) then
n := length( 'function ' );
elsif ( line like 'package body%' ) then
n := length( 'package body ' );
elsif ( line like 'pack%' ) then
n := length( 'package ' );
elsif ( line like 'anonymous%' ) then
n := length( 'anonymous block ' );
else
n := null;
end if;
if ( n is not null ) then
caller_t := ltrim(rtrim(upper(substr( line, 1, n-1 ))));
else
caller_t := 'TRIGGER';
end if;
line := substr( line, nvl(n,1) );
n := instr( line, '.' );
owner := ltrim(rtrim(substr( line, 1, n-1 )));
name := ltrim(rtrim(substr( line, n+1 )));
end if;
end if;
end loop;
end;
create or replace function who_am_i return varchar2
is
l_owner varchar2(30);
l_name varchar2(30);
l_lineno number;
l_type varchar2(30);
begin
who_called_me( l_owner, l_name, l_lineno, l_type );
return l_owner || '.' || l_name;
end;
/ -
Hi,
what is the package/procedure name that helps to run sql statement.
I hope DBMS_SQL is the package that helps to run sql statemanet in oracle.
Please correct me if i am wrong....
ThanksMurali wrote:
Hi,
I just want to know which package helps to run sql statement in oracle.
Thanks.There is no package that runs all SQL in Oracle. SQL is executed through the basic Oracle software. DBMS_SQL will run dynamic SQL but dynamic SQL is seldom needed and when it is needed there are usually easier ways to do it - usually reference cursors or EXECUTE IMMEDIATE. For selects DBMS_SQL requires a LOT more work than the other two methods: you have to define the select fields, define the query (the other methods require this step), create variables to hold the results, parse the sql, and execute the SQL.
Reasons to use DBMS_SQL are when the other methods of dynamic SQL won't work
* result set from query is unknown at run time (which may be a design problem)
* generated SQL statements is > 32K, longer than PL/SQL supports for a text value (again, design needs to be considered)
Maybe you are looking for
-
CommandLink and Button don't work in nested form
Hi, I have such a structure: <h:form ...> <h:datatable ...> <h:form ...> <h:commandButton ...>Somehow this structure corrupts the buttons and links. When I remove the inner form element, then they work properly. Interesting point
-
Blank video - intermittent on 2011 MacBook Pro
13" MBP bought Sept 2011 running 10.7.3 Lion, all updated - screen going black spontaneously - cannot discern any cause - brightness controls do not help - like it goes into sleep mode spontaneously, but won't wake up - screen brightness *does* fade
-
Remote volume works only on computerspeakers ?
Hi there, on my iMac, i'll put on some music with the remote control, the sound is going thru airport express to my amplifier, thats working great. But what if i want to change the volume with the remote? The remote only changes the volume of the iMa
-
I removed Final Cut Pro X , followed the instructions, However my computer still thinks that is installed and doesn't allow me to re install
-
How many books do I have on my itunes? Since I updated it´s not displayed anymore...