| 
		
			| RETURNING in EXECUTE IMMEDIATE [message #10026] | Tue, 23 December 2003 01:35  |  
			| 
				
				
					| resy Messages: 86
 Registered: December 2003
 | Member |  |  |  
	| hi, 
 just read the following code,
 
 sql_stmt := 'UPDATE emp SET sal = 2000 WHERE empno = :1
 RETURNING sal INTO :2';
 
 EXECUTE IMMEDIATE sql_stmt USING emp_id RETURNING INTO salary;
 
 here what does 'RETURNING' do?
 
 thanx for all answers.
 |  
	|  |  | 
	| 
		
			| Re: RETURNING in EXECUTE IMMEDIATE [message #10027 is a reply to message #10026] | Tue, 23 December 2003 02:54  |  
			| 
				
				
					| Art Metzer Messages: 2480
 Registered: December 2002
 | Senior Member |  |  |  
	| See also this link to the documentation of the RETURNING INTO clause of EXECUTE IMMEDIATE.SQL> DECLARE
  2      sql_stmt        VARCHAR2(100);
  3      emp_id          emp.empno%TYPE := 7844;
  4      orig_salary     emp.sal%TYPE;
  5      salary          emp.sal%TYPE;
  6      new_salary      emp.sal%TYPE;
  7  BEGIN
  8      SELECT e.sal
  9      INTO   orig_salary
 10      FROM   emp       e
 11      WHERE  e.empno = emp_id;
 12
 13      DBMS_OUTPUT.PUT_LINE(emp_id || '''s original salary = ' || orig_salary);
 14      DBMS_OUTPUT.PUT_LINE('Value of ''salary'' variable before update = ' || salary);
 15
 16      sql_stmt := 'UPDATE emp SET sal = 2000 WHERE empno = :1 RETURNING sal INTO :2';
 17
 18      EXECUTE IMMEDIATE sql_stmt USING emp_id RETURNING INTO salary;
 19
 20      DBMS_OUTPUT.PUT_LINE('Value of ''salary'' variable after update = ' || salary);
 21
 22      SELECT e.sal
 23      INTO   new_salary
 24      FROM   emp       e
 25      WHERE  e.empno = emp_id;
 26
 27      DBMS_OUTPUT.PUT_LINE(emp_id || '''s salary now = ' || new_salary);
 28  END;
 29  /
7844's original salary = 1500
Value of 'salary' variable before update =
Value of 'salary' variable after update = 2000
7844's salary now = 2000
  
PL/SQL procedure successfully completed.
  
SQL>
 Hope this helps,
 
 Art.
 |  
	|  |  |