教您Oracle动态查询语句的用法

Oracle动态查询语句是一类特殊的查询语句,下面就为您详细介绍Oracle动态查询语句的语法,如果您对Oracle动态查询方面感兴趣的话,不妨一看。

创新互联建站是一家集网站建设,济阳企业网站建设,济阳品牌网站建设,网站定制,济阳网站建设报价,网络营销,网络优化,济阳网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

1. 当使用EXECUTE IMMEDIATE语句处理单行查询时,需要使用INTO子句接受返回数据:

 
 
 
  1. DECLARE
  2. query_stat VARCHAR2(100):='SELECT * FROM emp'||'WHERE empno=:eno';
  3. emp_record emp%ROWTYPE;
  4. BEGIN
  5. EXECUTE IMMEDIATE query_stat INTO emp_record USING &eno;
  6. dbms_output.put_line('姓名:'||emp_record.ename||',岗位:'||emp_record.job);
  7. END;

2. EXECUTE IMMEDIATE只能用于处理单行查询,为了动态处理SELECT语句所返回的多行数据,需要定义游标变量,并使用OPEN-FOR, FETCH, CLOSE语句共同完成。具体步骤如下:

#1 定义游标变量:因为动态处理多行查询需要使用游标变量完成,所以需要在定义部分定义游标变量,语法如下:

 
 
 
  1. TYPE cursortype IS REF CURSOR;
  2.                 cursor_variable cursortype;

#2 打开游标变量:打开游标变量会执行游标变量所对应的动态SELECT语句,并将查询结果存放到游标结果集。语法如下:

 
 
 
  1. OPEN cursor_variable FOR dynamic_string
  2.                              [USING bind_argument];

#3 提取数据:提取数据用于将结果集中的行数据存放到PL/SQL变量,语法如下:

 
 
 
  1. FETCH cursor_variable INTO {VAR1};

#4 关闭游标变量:关闭游标变量用于释放游标结果集,语法如下:

 
 
 
  1. CLOSE cursor_variable;

实例如下:

 
 
 
  1. DECLARE
  2.     TYPE empcurtyp IS REF CURSOR;
  3.     emp_cv empcurtyp;
  4.     emp_record emp%ROWTYPE;
  5.     sql_stat VARCHAR2(100);
  6. BEGIN
  7.      sql_stat :='SELECT * FROM emp WHERE deptno=:dno';
  8.      OPEN emp_cv FOR sql_stat USING &dno;
  9.      LOOP
  10.         FETCH emp_cv INTO emp_record;
  11.         EXIT WHEN emp_cv%NOTFOUND;
  12.         dbms_output.put_line('雇员名:'||emp_record.ename||',工资:'||emp_record.sal);
  13.      END LOOP;
  14.      CLOSE emp_cv;
  15. END;

以上就是Oracle动态查询语句的用法介绍。

网站标题:教您Oracle动态查询语句的用法
转载来源:http://www.shufengxianlan.com/qtweb/news22/522272.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联