分类信息
各地考试

当前位置:首页 » Oracle认证 » 综合辅导 » 正文

Oracle认证第五章知识点辅导(6)


时间:2013-10-24 来源:Oracle认证考试网 浏览次数:181  【华夏培训网:中国教育培训第一门户

代码演示:动态SQLDECLARE sql_stmt VARCHAR2(200); --动态SQL语句 emp_id NUMBER(4) := 7566; salary NUMBER(7,2); dept_id NU

代码演示:动态SQL

 

DECLARE

   sql_stmt    VARCHAR2(200);  --动态SQL语句

   emp_id      NUMBER(4) := 7566;

   salary      NUMBER(7,2);

   dept_id     NUMBER(2) := 90;

   dept_name   VARCHAR2(14) := 'PERSONNEL';

   location    VARCHAR2(13) := 'DALLAS';

   emp_rec     emp%ROWTYPE;

BEGIN

   --无子句的execute immediate

   EXECUTE IMMEDIATE 'CREATE TABLE bonus1 (id NUMBER, amt NUMBER)';  ①

   ----using子句的execute immediate

   sql_stmt := 'INSERT INTO dept VALUES (:1, :2, :3)'; 

   EXECUTE IMMEDIATE sql_stmt USING dept_id, dept_name, location;  ②

   ----into子句的execute immediate

   sql_stmt := 'SELECT * FROM emp WHERE empno = :id';

   EXECUTE IMMEDIATE sql_stmt INTO emp_rec USING emp_id;  ③

 

   ----returning into子句的execute immediate

   sql_stmt := 'UPDATE emp SET sal = 2000 WHERE empno = :1

      RETURNING sal INTO :2';

   EXECUTE IMMEDIATE sql_stmt USING emp_id RETURNING INTO salary;  ④

 

   EXECUTE IMMEDIATE 'DELETE FROM dept WHERE deptno = :num'

      USING dept_id;  ⑤

END;

 

代码解析:

①     动态执行一个完整的SQL语句。

②     SQL语句中存在3个参数分别标识为:[:1、:2、:3],因此需要用USING关键字对三个参数分别赋值。

③     对动态查询语句可以使用INTO子句把查询的结果保存到一个变量中,要求该结果只能是单行。

④     在Oracle的insert,update,delete语句都可以使用RETURNING子句把操作影响的行中的数据返回,对SQL语句中存在RETURNING子句时,在动态执行时可以使用RETURNING INTO来接收。

⑤     动态执行参数中可以是:[:数字]也可以是[:字符串]。





       Oracle认证

 

推荐图文

热门点击排行

©2015 hxpx.com All Rights Reserved 滇ICP备13002816号-1
华夏培训网唯一网址www.hxpx.com