Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> dbms_sql

dbms_sql

From: Eleanor Shavell <ele_at_mit.edu>
Date: 1997/12/03
Message-ID: <3485D30D.5D97@mit.edu>#1/1

hi,
  I'm trying to use dbms sql to call a procedure dynamically. The procecure returns a value in an 'out' variable. (I couldn't get this to work with a function for some reason). When I hard code the procedure name, it works , and
I get the result back:

	ls_result	varchar2(10);
	ls_block 	varchar2(1000);
	v_dummy 	integer;
	v_cursor 	integer;
	ls_argument	varchar2(10);

	begin

	ls_argument := '12345';
	ls_result := '1';
	v_cursor:= dbms_sql.open_cursor;
	
	ls_block := 
		'BEGIN 
		 	 MYPROC (:ls_prop,:ls_res);
		 END;';

	dbms_sql.parse(v_cursor,ls_block,dbms_sql.v7);
	dbms_sql.bind_variable(v_cursor, ':ls_prop', ls_argument,10);
	dbms_sql.bind_variable(v_cursor, ':ls_res',ls_result,10);

	v_dummy:= dbms_sql.execute(v_cursor);
	
	dbms_sql.variable_value (v_cursor,':ls_res', ls_result);

	dbms_sql.close_cursor(v_cursor);

BUT, I don't know the name of the procedure , so I want to construct the block
to be something like:

'BEGIN

		:myproc (:ls_prop,:ls_res);
	END;';

I can't get this to work.
Any ideas?

Thanks a lot,
Eleanor Shavell

'BEGIN
Received on Wed Dec 03 1997 - 00:00:00 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US