Exit from Packge.Procedure
I have 'Pack_1' which have 'Proc_1’ and 'Proc_1' calls 'Proc_2'
From 'Proc_2' I type RETURN it exits from 'Proc_2' and control goes to 'Proc_1', but I need to exit all (exit Proc_1 as well as Proc_2)
What is the command I can type in 'Proc_2' itself?
Hi,
AFAIK, from the inner procedure call can not be diverted back to out, directly to application. You can do logically, try to return the additional parameter "status" value from the procecdure "proc 2", when you want directly return to application with out any additional things to carry out in "proc 1"- based on status column -return value from procedure "proc 2" - "Return" from the proc- 1 - it directly goes to the application.
- Pavan Kumar N
Similar Messages
-
Call an applications 'user exit' from a PL/SQL procedure
My question is a technical PL/SQL question related to Oracle Applications. I need to call a standard applications 'user exit' from a stored PL/SQL procedure. Can anyone tell me if this is possible and how to do it?
(i.e. I am attempting to call the AR user exit SALESTAX)
Thanks,
Michelle DodgeHi,
Read this thread, perhaps is there your response :
Host...
Nicolas. -
How do we exit from a sub procedure
Hi,
I am calling a sub procedure from my plsql procedure. If an error occurs in the sub-procedure, it should exit from the appilcation.
return gets the control back to the called procedure. but is there a way to stop the execution totally?
Thanks,
NarayanRaise an exception that is not handled in the sub-procedure nor in the main procedure.
-
Exit from Pl/SQL procedure if first cursor failss?
How to exit from q PL/SQL procedure. I have number of cursors defined in PL/SQL procedures and i want to exit if the first cursor does not return any rows
open firstCursor;
Fetch/Bulk Fetch from first cursor;
IF firstCursor%found then
"Do all the normal other stuff"
end if; -
Storing the values from a procedure - help required
Hi All,
I am having a package which consists of two procedures.
Both the procedures need to calculate 6 averages of some of my fields based on unique number.
(These two procedures process different unique numbers).
Now, as same code is implemented in the two procedures for calculation,
I want to move the logic into another procedure/function, with IN parameter as the unique number.
Now how can I get these 6 values from the procedure.
If I use OUT parameters, how can I get the values inside the procedure.
Please suggest me a solution.
Thanks in advance.
Regards
RaghunadhExample of pipelined function...
SQL> CREATE OR REPLACE TYPE myrec AS OBJECT
2 ( col1 VARCHAR2(10),
3 col2 VARCHAR2(10)
4 )
5 /
Type created.
SQL>
SQL> CREATE OR REPLACE TYPE myrectable AS TABLE OF myrec
2 /
Type created.
SQL>
SQL> CREATE OR REPLACE FUNCTION pipedata(p_str IN VARCHAR2) RETURN myrectable PIPELINED IS
2 v_str VARCHAR2(4000) := REPLACE(REPLACE(p_str, '('),')');
3 v_obj myrec := myrec(NULL,NULL);
4 BEGIN
5 LOOP
6 EXIT WHEN v_str IS NULL;
7 v_obj.col1 := SUBSTR(v_str,1,INSTR(v_str,',')-1);
8 v_str := SUBSTR(v_str,INSTR(v_str,',')+1);
9 IF INSTR(v_str,',')>0 THEN
10 v_obj.col2 := SUBSTR(v_str,1,INSTR(v_str,',')-1);
11 v_str := SUBSTR(v_str,INSTR(v_str,',')+1);
12 ELSE
13 v_obj.col2 := v_str;
14 v_str := NULL;
15 END IF;
16 PIPE ROW (v_obj);
17 END LOOP;
18 RETURN;
19 END;
20 /
Function created.
SQL>
SQL> create table mytab (col1 varchar2(10), col2 varchar2(10));
Table created.
SQL>
SQL> insert into mytab (col1, col2) select col1, col2 from table(pipedata('(1,2),(2,3),(4,5)'));
3 rows created.
SQL>
SQL> select * from mytab;
COL1 COL2
1 2
2 3
4 5Although I'm not sure you necessarily need to do it this way. Could you show us the code you are using and more details of what you are trying to do? -
Executing OS command from sql procedure
i want to execute an OS command from the procedure, can i do this way? looks like it is not executing the command move....
declare
begin
dbms_output.put_line(' moving...');
host;
move c:\file1\test.txt C:\moved
exit;
/True. But that job is going to run in a separate session, some time after the current transaction commits (depending on the number of jobs queued up to run). So if you need to pass information back from the job, or you want the procedure to handle exceptions thrown by the job, or you want to tie job related failures back to a particular application level event, or you want the rest of your procedure to wait for the operating system command to finish, using the DBMS_SCHEDULER for this sort of thing is going to require a fair amount of additional coordination/ monitoring/ infrastructure code. It's certainly not a Herculean task to write that additional code, and it's reasonable in some situations, but the Java stored procedure approach strikes me as substantially easier to deal with in most cases.
Justin -
Hi every body
i have a procedure that execute a loop.What i want that to allow user to exit from loop before it finished(by using keyboard), i do that by pressing ctrl+alt+del which end the program it self.One could try putting the call to the procedure in a loop on the front end. Then check within the loop (in the front end ) whether the user has pressed a pre-defined button. If pressed, one could disconnect the connection or take some similar action that would stop processing the call to the stored procedure.
May be something like this is workable ... ?
Narayan.
null -
How to exit from a loop on 2 different conditions
Hello Experts
I’m trying to write a procedure in which I’m taking PROVINCE as an input parameter. All the provinces are stores in a table. I’m using a cursor and rowtype variable to check the province. After I finds province I displays province and its code. Everything works fine expect when I don’t find the province. I’m not sure how to exit from loop if I don’t find the province. I already uses exit when condition. I was expecting else condition should work and should exit from the loop but it doesn’t. Can please somebody show me how to exit if I don’t find province in the table through cursor.
Here is my code
set serveroutput on
variable G_TAX varchar2(10)
CREATE OR REPLACE PROCEDURE p_create(i_state VARCHAR2)is
CURSOR cur_bb_tax is
select * from bb_tax;
bb_tax_details bb_tax%rowtype;
begin
if not cur_bb_tax%isopen then
open cur_bb_tax;
end if;
loop
fetch cur_bb_tax into bb_tax_details;
if (bb_tax_details.state = i_state) then
dbms_output.put_line(bb_tax_details.state || bb_tax_details.idstate);
end if;
exit when bb_tax_details.state = i_state;
end loop;
close cur_bb_tax;
exception
when others then
dbms_output.put_line(SQLERRM);
end;
Thanks in advanceHello,
Why don't you use dbms_output.Put_line and print output to find why logic is not able to execute? Maybe upper case/lower case/whitespace. *Also put your code between \ to preserve formatting*.
Regards -
Pass records from one procedure to another
hi,
I have created following procedure. It takes input parameter and selects some records in EMP table based on condition.
How to pass the output from this procedure to another procedure to manipulate the selected records further.
Do I need to pass REF CURSOR or RECORD ?
Thanks
===================================================
create or replace procedure empdetails(pid IN number)
is
type ref_cur is REF CURSOR;
rc ref_cur;
type myrec is RECORD(id number, name varchar2(15), sal number);
rec myrec;
begin
open rc for select id, name, sal from emp where deptid=pid;
loop
fetch rc into rec;
exit when rc%notfound;
dbms_output.put_line(rec.id||'--'||rec.name||'--'||rec.sal);
end loop;
close rc;
end empdetails;don123 wrote:
I have created following procedure. It takes input parameter and selects some records in EMP table based on condition.
How to pass the output from this procedure to another procedure to manipulate the selected records further.
Do I need to pass REF CURSOR or RECORD ?Record. The bulk collection approach is useful if you want to use the collection subsequently as a bind variable for bulk binding. But assuming you simply want to crunch data, the minimalistic approach would be:
SQL> declare
2 procedure ProcessEmp( e emp%RowType ) is
3 begin
4 dbms_output.put_line( 'processing employee..'||e.ename );
5 end;
6 begin
7 for e in(select * from emp order by 1) loop
8 ProcessEmp(e);
9 end loop;
10 end;
11 /
processing employee..SMITH
processing employee..ALLEN
processing employee..WARD
processing employee..JONES
processing employee..MARTIN
processing employee..BLAKE
processing employee..CLARK
processing employee..SCOTT
processing employee..KING
processing employee..TURNER
processing employee..ADAMS
processing employee..JAMES
processing employee..FORD
processing employee..MILLER
PL/SQL procedure successfully completed.
SQL> An implicit bulk collect is done by the FOR loop, courtesy of the PL/SQL optimiser. As the procedure ProcessEmp() does not perform SQL processing itself (e.g. using employee data to fire off UPDATE, DELETE or INSERT SQL statements), a collection is not really needed as it would not contribute to the procedure's performance.
If however nested SQL statements are fired from inside that cursor fetch loop, using a collection would enable these SQLs to make use of bulk binding.
However, this approach ALWAYS need to be question, examined and validated - as a single SQL can often be used, combining the outer read/fetch loop (SELECT), with the nested SQLs (UPDATE/INSERT) done - using the MERGE or INSERT..SELECT statements for example.
Explicit bulk processing should be an exception - as pushing data from the SQL engine to the PL/SQL engine, only to push that PL/SQL engine's data back to the SQL engine, is invariable a flawed, non performant, and non scalable approach. -
Hi,
How do you exit from an sql script?
e.g
DECLARE
VAR1 = VARCHAR2(10);
VAR2 = VARCHAR2(10);
BEGIN
VAR1 := 'hello';
VAR2 := 'world';
IF VAR1 != VAR2
THEN
DBMS_OUTPUT.PUT_LINE('Variables not equal');
## Exit here! <------- HOW?????
END IF;
END;
Cheers,
WarrenIf I understand correctly, you have a series of anonymous PL/SQL blocks in a script. If some test fails in one of them, then you do not want to run the rest of the script.
If exiting sqlplus is an acceptable means of failing, then you can do something like:
WHENEVER SQLERROR EXIT 1;
DECLARE
v1 VARCHAR2(20);
v2 VARCHAR2(20);
BEGIN
v1 := 'ABCDE';
v2 := 'FBCDE';
IF v1 <> v2 THEN
DBMS_OUTPUT.Put_Line('Variables Not Equal');
RAISE NO_DATA_FOUND;
END IF;
END;
DECLARE
v3 VARCHAR2(20);
BEGIN
v3 := 'Second Block';
END;
/in your script. As shown, the script will exit sqlplus without executing the second block. You can use any sql error instead of no data found.
Another possibility if exiting sqlplus is not acceptable would be to do something like this in your script:
VARIABLE failed NUMBER;
DECLARE
v1 VARCHAR2(20);
v2 VARCHAR2(20);
BEGIN
:failed := 0;
v1 := 'ABCDE';
v2 := 'FBCDE';
IF v1 <> v2 THEN
DBMS_OUTPUT.Put_Line('Variables Not Equal');
:failed := 1;
RETURN;
END IF;
END;
DECLARE
v3 VARCHAR2(20);
BEGIN
IF :failed = 0 THEN
v3 := 'Second Block';
END IF;
END;
/Note, the IF :failed = 0/END IF block should cover all the code in each subsequent anonymous block.
A third approach would be to re-write the series of anonymous blocks as a package, then create a small driver script to call each procedure in turn unless one returns an error.
TTFN
John -
Exiting from video help?
Probably the main frustration I have encountered with the new 5G iPod Video, is how to exit from a Movie I am viewing. That is, I am viewing a movie and wish to stop and shut down the iPod. I can eventually get this to work, but I have not figured out the proper shutdown steps. I get it to eventually work by just button clicking until it happens.
One example is while watching a video, I select the Play/Pause button to stop the video. Then I exit to the Menu. But if I select the Play/Pause button again and hold it (for shutdown), it will start playing the video.
Second example is while watching a video, I select the Play/Pause button to stop the video. If I then select the Play/Pause button again and hold it (for shutdown), it will start playing the video.
Anybody have the correct procedures to get out of Video mode?When the movie is playing, press and hold play/pause and the iPod will shut off.
If you exit the video first (or pause it), you have to wait for the hard drive to stop spinning (or until you go to a different mode) before it will shut down. -
Calling a procedure (with refcursor) from another procedure
I have a procedure that returns refcursor (it's used by a Java application).
I am able to run the proc via SQLPlus like below:
var a refcursor;
exec MY_PKG.get_content_prc(:a);
print a;
I would like to use/call this proc from another procedure and I am not able to, since arg is refcursor.
create or replace procedure p
is
v refcursor;
begin
MY_PKG.get_content_prc(:v);
end;
Error I get is:
SQL> show err
Errors for PROCEDURE P2:
LINE/COL ERROR
4/3 PL/SQL: Item ignored
4/7 PLS-00201: identifier 'CURSOR' must be declared
6/5 PL/SQL: Statement ignored
6/57 PLS-00320: the declaration of the type of this expression is
incomplete or malformed
Hope someone can direct me.
RegardsBecause you are not using the right syntax.
You need to do something like this
LOOP
/* Fetch from cursor variable. */
FETCH emp_cv INTO emp_rec;
EXIT WHEN emp_cv%NOTFOUND; -- exit when last row is fetched
-- process data record
END LOOP;This is from the PL/SQL User's Guide and Reference.
I would recommend reading this fine manual, it is faster than guessing. -
How to capture return value from stored procedure?
Hi All,
I want to capture the retun values from this procedure to a table - CALL SYS.GET_OBJECT_DEFINITION('SCHEMA_NAME', 'TABLE_NAME').
The below approach is not working -
Insert into STG.STG_DDL
Call SYS.GET_OBJECT_DEFINITION('DWG', 'DWG_SITE')
Could you please have a look on the same?
Thank you,
VijeeshThanks a lot Everyone.
Considering the discussed options, and an approach explained in this thread - -http://scn.sap.com/thread/3291461 , I have written an SQL to build the Alter statements to add the columns & Constrains to table.
The below Query will provide the scripts to build a table in another environment.
select * from (
select TABLE_name,'tbl_Create' column_name, 1 as position, 'CREATE TABLE '|| schema_name ||'.'|| table_name ||' ( DUMMY_CLMN INTEGER);' as SQLCMD
from tableS
where schema_name ='DWG'
and TABLE_name ='DWG_PRODUCTION_VOLUME_TRX'
UNION ALL
-- MASS change of NOT NULL COLUMNS
-- set to NOT NULL - character data type, double, decimal fixed - need the length but not the scale
select TABLE_name,column_name, position + 100, 'ALTER TABLE '|| schema_name ||'.'|| table_name ||' ADD ('||column_name ||' '||data_type_name ||' (' || length ||') NOT NULL) ;' as SQLCMD
from table_columns
where is_nullable = 'FALSE'
and schema_name ='DWG'
and TABLE_name ='DWG_PRODUCTION_VOLUME_TRX'
and data_type_name in ('VARCHAR', 'NVARCHAR', 'DOUBLE')
and scale is NULL
UNION ALL
-- MASS change of NOT NULL COLUMNS
-- set to NOT NULL - character data type, double, decimal fixed - need the length but not the scale
select TABLE_name,column_name, position + 100,'ALTER TABLE '|| schema_name ||'.'|| table_name ||' ADD ('||column_name ||' '||data_type_name ||' (' || length ||') );' as SQLCMD
from table_columns
where is_nullable = 'TRUE'
and schema_name ='DWG'
and TABLE_name ='DWG_PRODUCTION_VOLUME_TRX'
and data_type_name in ('VARCHAR', 'NVARCHAR', 'DOUBLE')
and scale is NULL
UNION ALL
-- set to NOT NULL - DECIMAL (FLOATING POINT)- needs length and scale
select TABLE_name,column_name, position + 100, 'ALTER TABLE '|| schema_name ||'.'|| table_name ||' ADD ('||column_name ||' '||data_type_name ||' (' || length ||','|| scale ||') NOT NULL) ;' as SQLCMD
from table_columns
where is_nullable = 'FALSE'
and schema_name ='DWG'
and TABLE_name ='DWG_PRODUCTION_VOLUME_TRX'
and data_type_name in ('DECIMAL' )
and scale is not null
UNION ALL
-- set to NOT NULL - DECIMAL (FLOATING POINT)- needs length and scale
select TABLE_name,column_name, position + 100, 'ALTER TABLE '|| schema_name ||'.'|| table_name ||' ADD ('||column_name ||' '||data_type_name ||' (' || length ||','|| scale ||') ) ;' as SQLCMD
from table_columns
where is_nullable = 'TRUE'
and schema_name ='DWG'
and TABLE_name ='DWG_PRODUCTION_VOLUME_TRX'
and data_type_name in ('DECIMAL' )
and scale is not null
UNION ALL
-- set to NOT NULL - DECIMAL (FLOATING POINT)- needs length and null scale
select TABLE_name,column_name, position + 100, 'ALTER TABLE '|| schema_name ||'.'|| table_name ||' ADD ('||column_name ||' '||data_type_name ||' (' || length ||') NOT NULL) ;' as SQLCMD
from table_columns
where is_nullable = 'FALSE'
and schema_name ='DWG'
and TABLE_name ='DWG_PRODUCTION_VOLUME_TRX'
and data_type_name in ('DECIMAL' )
and scale is null
UNION ALL
-- set to NOT NULL - DECIMAL (FLOATING POINT)- needs length and null scale
select TABLE_name,column_name, position + 100, 'ALTER TABLE '|| schema_name ||'.'|| table_name ||' ADD ('||column_name ||' '||data_type_name ||' (' || length ||') NOT NULL) ;' as SQLCMD
from table_columns
where is_nullable = 'TRUE'
and schema_name ='DWG'
and TABLE_name ='DWG_PRODUCTION_VOLUME_TRX'
and data_type_name in ('DECIMAL' )
and scale is null
UNION ALL
-- set to NOT NULL - DATE | TIME | SECONDDATE | TIMESTAMP | TINYINT | SMALLINT | INTEGER - don't need length or scale
select TABLE_name,column_name, position + 100, 'ALTER TABLE '|| schema_name ||'.'|| table_name ||' ADD ('||column_name ||' '||data_type_name ||' NOT NULL) ;' as SQLCMD
from table_columns
where is_nullable = 'FALSE'
and schema_name ='DWG'
and TABLE_name ='DWG_PRODUCTION_VOLUME_TRX'
and data_type_name in ('DATE', 'LONGDATE', 'TIME', 'SECONDDATE', 'TIMESTAMP', 'TINYINT', 'SMALLINT', 'INTEGER' )
-- and scale is not null
UNION ALL
-- set to NOT NULL - DATE | TIME | SECONDDATE | TIMESTAMP | TINYINT | SMALLINT | INTEGER - don't need length or scale
select TABLE_name,column_name, position + 100, 'ALTER TABLE '|| schema_name ||'.'|| table_name ||' ADD ('||column_name ||' '||data_type_name ||' ) ;' as SQLCMD
from table_columns
where is_nullable = 'TRUE'
and schema_name ='DWG'
and TABLE_name ='DWG_PRODUCTION_VOLUME_TRX'
and data_type_name in ('DATE', 'LONGDATE', 'TIME', 'SECONDDATE', 'TIMESTAMP', 'TINYINT', 'SMALLINT', 'INTEGER' )
-- and scale is not null
UNION ALL
select table_name, 'PK' AS column_name, 9990, 'ALTER TABLE '||table_name||' ADD CONSTRAINT Primary_key PRIMARY KEY ('||PK_COLUMN_NAME1||
case when PK_COLUMN_NAME2 is null then ' ' else ','|| PK_COLUMN_NAME2 end ||
case when PK_COLUMN_NAME3 is null then ' ' else ','|| PK_COLUMN_NAME3 end ||
case when PK_COLUMN_NAME4 is null then ' ' else ','|| PK_COLUMN_NAME4 end ||');'
from
(SELECT DISTINCT C1.table_name , C1.COLUMN_NAME AS PK_COLUMN_NAME1, C2.COLUMN_NAME AS PK_COLUMN_NAME2, C3.COLUMN_NAME AS PK_COLUMN_NAME3, C4.COLUMN_NAME AS PK_COLUMN_NAME4
FROM (SELECT * FROM CONSTRAINTS WHERE POSITION=1 AND IS_PRIMARY_KEY = 'TRUE') C1
LEFT JOIN (SELECT * FROM CONSTRAINTS WHERE POSITION=2 AND IS_PRIMARY_KEY = 'TRUE') C2
ON C1.table_name = C2.table_name
LEFT JOIN (SELECT * FROM CONSTRAINTS WHERE POSITION=3 AND IS_PRIMARY_KEY = 'TRUE') C3
ON C2.table_name = C3.table_name
LEFT JOIN (SELECT * FROM CONSTRAINTS WHERE POSITION=4 AND IS_PRIMARY_KEY = 'TRUE') C4
ON C3.table_name = C4.table_name
LEFT JOIN (SELECT * FROM CONSTRAINTS WHERE POSITION=5 AND IS_PRIMARY_KEY = 'TRUE') C5
ON C4.table_name = C5.table_name
) PK
where table_name = 'DWG_PRODUCTION_VOLUME_TRX'
UNION ALL
select table_name, 'UK' AS column_name, 9991, 'ALTER TABLE '||table_name||' ADD CONSTRAINT UNIQUE ('||UK_COLUMN_NAME1||
case when UK_COLUMN_NAME2 is null then ' ' else ','|| UK_COLUMN_NAME2 end ||
case when UK_COLUMN_NAME3 is null then ' ' else ','|| UK_COLUMN_NAME3 end ||
case when UK_COLUMN_NAME4 is null then ' ' else ','|| UK_COLUMN_NAME4 end ||');'
FROM
(SELECT DISTINCT C1.table_name , C1.COLUMN_NAME AS UK_COLUMN_NAME1, C2.COLUMN_NAME AS UK_COLUMN_NAME2, C3.COLUMN_NAME AS UK_COLUMN_NAME3, C4.COLUMN_NAME AS UK_COLUMN_NAME4
FROM (SELECT * FROM CONSTRAINTS WHERE POSITION=1 AND IS_PRIMARY_KEY = 'FALSE') C1
LEFT JOIN (SELECT * FROM CONSTRAINTS WHERE POSITION=2 AND IS_PRIMARY_KEY = 'FALSE') C2
ON C1.table_name = C2.table_name
LEFT JOIN (SELECT * FROM CONSTRAINTS WHERE POSITION=3 AND IS_PRIMARY_KEY = 'FALSE') C3
ON C2.table_name = C3.table_name
LEFT JOIN (SELECT * FROM CONSTRAINTS WHERE POSITION=4 AND IS_PRIMARY_KEY = 'FALSE') C4
ON C3.table_name = C4.table_name
LEFT JOIN (SELECT * FROM CONSTRAINTS WHERE POSITION=5 AND IS_PRIMARY_KEY = 'FALSE') C5
ON C4.table_name = C5.table_name
) UK
where table_name = 'DWG_PRODUCTION_VOLUME_TRX'
UNION ALL
SELECT REFERENCED_TABLE_NAME AS table_name,'FK' AS column_name, 9992,
'ALTER TABLE DWG.'||TABLE_NAME||' ADD FOREIGN KEY ( '||COLUMN_NAME||' ) REFERENCES '|| REFERENCED_TABLE_NAME||'('||COLUMN_NAME||' ) ON UPDATE CASCADE ON DELETE RESTRICT;'
FROM REFERENTIAL_CONSTRAINTS
WHERE REFERENCED_TABLE_NAME = 'DWG_SITE'
UNION ALL
select TABLE_name,'tbl_ClmnDrop' column_name, 9995 as position, 'ALTER TABLE '|| schema_name ||'.'|| table_name ||' DROP ( DUMMY_CLMN );' as SQLCMD
from tableS
where schema_name ='DWG'
and TABLE_name ='DWG_PRODUCTION_VOLUME_TRX'
order by position; -
How to call one procedure from another procedure
Hi all,
Could anyone give me clue how to call a procedure contains out parameters
from another procedure.
I had following procedures.
1)
create or replace procedure INS_PUR_ORDER
p_poamt in number,
p_podate in date,
p_poid out number
is
begin
select pkseq.nextval into p_poid from dual;
insert into pur_order(poamt,podate,poid)
values (p_poamt,p_podate,p_poid);
end;
2)
create or replace procedure INS_PUR_ORDER_DETAIL
p_pounits in number,
p_poddate in date,
p_poid in number)
is
begin
Insert into pur_order_detail(podid,pounits,poddate,poid)
values(pdseq.nextval,p_pounits,p_poddate,p_poid);
end;
I need to write a 3rd procedure which calls above two procedures.
like
call first procedure ,basing on the return value
i.e if p_poid != 0 then
we need to call second procedure
in the loop.
thanks in advance.
rampa.Not sure what are you doing, you can not assign cursor to another cursor, may be you are looking for this?
SQL> create or replace procedure proc1 ( result out sys_refcursor)
2 is
3
4 begin
5 open result for
6 select 'HELLO WORLD' from dual ;
7 end proc1 ;
8 /
Procedure created.
Elapsed: 00:00:00.01
SQL> create or replace procedure proc2
2 is
3 l_cursor sys_refcursor ;
4 begin
5 l_cursor := proc1 ;
6
7
8 open l_cursor;
9 fetch l_cursor into l_text;
10 dbms_output.put_line(l_text);
11 close l_cursor;
12
13
14 end proc2 ;
15 /
Warning: Procedure created with compilation errors.
Elapsed: 00:00:00.01
SQL> show error;
Errors for PROCEDURE PROC2:
LINE/COL ERROR
5/4 PL/SQL: Statement ignored
5/16 PLS-00306: wrong number or types of arguments
in call to 'PROC1'
6/4 PLS-00201: identifier 'L_TEXT' must be
declared
6/4 PL/SQL: Statement ignored
8/4 PLS-00382: expression is of wrong type
8/4 PL/SQL: SQL Statement ignored
9/4 PL/SQL: SQL Statement ignored
9/24 PLS-00201: identifier 'L_TEXT' must be
declared
10/4 PL/SQL: Statement ignored
10/25 PLS-00201: identifier 'L_TEXT' must be
declared
---- this is the correct waySQL>ed
1 create or replace procedure proc2
2 is
3 l_cursor sys_refcursor ;
4 l_text varchar2(100);
5 begin
---- procedure call
6 proc1(l_cursor);
7 -- open l_cursor;
8 fetch l_cursor into l_text;
9 dbms_output.put_line(l_text);
10 close l_cursor;
11* end proc2 ;
SQL> /
Procedure created.
Elapsed: 00:00:00.01
SQL> set serveroutput on
SQL> execute proc2;
HELLO WORLD
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.00
SQL> -
How can I exit from full-screen View?
On the View menu, I clicked "Full screen View", but then I couldn't find any way back to normal view. I had to Force-Quit Firefox to escape.
How do you exit from Full Screen View?
(I tried Esc, Ctrl-C, and many other key combinations)
Thanks, PeterRTry F11.
Maybe you are looking for
-
NULL value in static list of values???
I'm creating a static list of values and I want to check against these values in a table with a sql query. My question is, can I have the value for one of the items be NULL? Like, is the following static list of values ok: STATIC2:No Status;,Hire;HIR
-
Why Can't I run Acrobat 9.0 Pro in 64 bit Windows 7?
Earlier today I was limping along with 9.0 Pro in windows 7. Then it stopped working. Although the document would scan, there were no characters on the page when the scan was complete.
-
I just added two new email accounts. When I add the signatures for these accounts it adds them just fine, they show up in the right header signature box, everything works just fine...until I close mail. When i reopen the signatures are still in the '
-
ORA-39152 : While Impoting data using dbms_datapump utility
Hi, Could anyone help me on this. I am importing data using dbms_datapump utility and setting 'Table_exists_action' ='APPEND',getting the error "ORA-39152: Table exists. Data will be appended to existing table but all dependent metadata will be skipp
-
Install Mavericks on Mac Pro 3 running Mt. Lion 10.7.5?
I am running Mt Lion 10.7.5 on a Mac Pro 3 with 2 x 3 Ghz Dual Core Intel Xeon Processor and can't install Mavericks? Should I be able to install on this machine?