| How to get a var from SQL in a unix shell [message #126770] | 
			Wed, 06 July 2005 09:45   | 
		 
		
			
				
				
				
					
						
						Ganjz
						 Messages: 2 Registered: July 2005 
						
					 | 
					Junior Member  | 
					 | 
		 
		 
	 | 
 
	
		HI, 
 
Here's a SQL script. 
 
DECLARE 
a varchar2 (10); 
b number; 
c number; 
d varchar2 (100); 
 
begin 
a := 'LOG'; 
scc_lpr_pkg.driver(a,b,c,d); 
end; 
/ 
 
ok now my question:  
  I try to get the value returned from the SQL procedure in a UNIX shell. 
 
i have already a shell calling the sql and i just don't know how to get the vars in that shell. 
 
thank for reading. 
 
 
 
 
 
		
		
		[Updated on: Wed, 06 July 2005 09:49] Report message to a moderator  
 |  
	| 
		
	 | 
 
 
 | 
	
		
		
			| Re: How to get a var from SQL in a unix shell [message #126785 is a reply to message #126770] | 
			Wed, 06 July 2005 11:29    | 
		 
		
			
				
				
				
					
						
						somnath1974
						 Messages: 15 Registered: July 2005 
						
					 | 
					Junior Member  | 
					 | 
		 
		 
	 | 
 
	
		Hi, 
In the sqlplus session that you might have opened decalre a host variable like for example 
  
sqlplus -S $USERNAME/$USERPASSWORD@$DATABASENAME <<EOJ >>$LOGFILE 
    SET FEEDBACK ON 
    SET SERVEROUTPUT ON 
# The following declares the variable 
    VARIABLE exec_status NUMBER 
    exec my_Stored_proc 
    exit :exec_status 
 
Best Regards, 
Somnath
		
		
		
 |  
	| 
		
	 | 
 
 
 | 
	
		
		
			| Re: How to get a var from SQL in a unix shell [message #127108 is a reply to message #126785] | 
			Fri, 08 July 2005 13:04   | 
		 
		
			
				
				
				
					
						
						andrew again
						 Messages: 2577 Registered: March 2000 
						
					 | 
					Senior Member  | 
					 | 
		 
		 
	 | 
 
	
		#!/bin/ksh
#======================================================
# stored proc with parms
#======================================================
## CREATE OR REPLACE PROCEDURE p1 (i_parm IN NUMBER, o_parm OUT NUMBER)
## IS
## BEGIN
##    o_parm := 5 * i_parm;
## END;
## /
my_in_parm=5
RETVAL=`sqlplus -s scott/tiger@dev <<EOF
set serveroutput on
--WHENEVER SQLERROR EXIT 1
DECLARE
   x   NUMBER := $my_in_parm;
   y   NUMBER;
BEGIN
   p1 (x, y);
   DBMS_OUTPUT.put_line ('o_parm from p1 is ' || y);
END;
/
exit;
EOF`
echo $RETVAL
X=`echo $RETVAL | awk '{print $5}'`
echo $X 
 
>t.ksh 
 
o_parm from p1 is 25 PL/SQL procedure successfully completed. 
25 
		
		
		
 |  
	| 
		
	 | 
 
 
 |