Chinaunix首页 | 论坛 | 博客
  • 博客访问: 104574379
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-04-30 16:14:36

 

动态SQL.
在一般的PL/SQL编程开发中,可以使用SQL的DML语句和事务控制语句,但是DDL语句及会话控制语句却不能在PL/SQL中直接使用,要想实现在PL/SQL中使用DDL语句及会话控制语句,可以通过动态SQL来实现.
动态SQL语法如下:
execute immediate 动态SQL语句字符串
[into 接收select语句选择的记录值]
[using 绑定输入参数变量];
OK,下面来看看几个简单的实例.
例一:
--创建表,在pl/sql中使用DDL语句.
--注,动态创建的表,使用DML语句时也只能是动态操作.
declare
s_sql varchar2(200);
begin
s_sql:='create table tab1(id number,name varchar2(20))';
execute immediate s_sql;
execute immediate 'insert into tab1 values(1,''aa'')';
end;

例二:
--方便用户输入
declare
s_id number;
s_rec emp%rowtype;
begin
s_id:=&请输入编号;
execute immediate 'select * from emp where empno=:id' into s_rec using s_id;
dbms_output.put_line('编号'||s_id||'薪水为'||s_rec.sal);
--异常处理
exception
when no_data_found then
dbms_output.put_line('没有此编号');
end;

 

原文:http://hujing1229.blog.ccidnet.com/blog-htm-do-showone-uid-60604-type-blog-itemid-185778.html


阅读(198) | 评论(0) | 转发(0) |
0

上一篇:pl/sql编程之游标

下一篇:pl/sql编程(1)

给主人留下些什么吧!~~