pl/sql--动态SQL常用方法

本文总结了PL/SQL中使用动态SQL的四种常见场景,包括不同类型的DDL及DML语句、带有绑定变量的更新与查询操作,并提供了具体示例。

说明:写存储过程的时候经常都会用到动态SQL,现做一小结

PL/SQL中常用动态SQL方法

类型1:不是查询语句,只是DDL语句,UPDATE,INSERT,DELETE,没有绑定变量

例:

EXECUTE IMMEDIATE 'CREATE INDEX emp_ind_1 on emp (sal, hiredate)';

EXECUTE IMMEDIATE
   'UPDATE ' || l_table || ' SET sal = 10000 WHERE empno = 1506'

类型2:不是查询语句,只是UPDATE,INSERT,DELETE,有绑定变量

例:

EXECUTE IMMEDIATE
   'UPDATE ' || l_table || ' SET sal = :salary WHERE = :employee_id'
   USING 10000, 1506;


类型3:有绑定变量的查询

例:

EXECUTE IMMEDIATE
   'SELECT last_name, salary FROM employee
     WHERE department_id = :dept_id'
   USING 10
   INTO l_last_name, l_salary;

类型4:一个语句,它所SELECT的列是不确定的,动态的[还没玩过这种..]

例:

OPEN l_cursor FOR
   'SELECT ' || l_column_list ||
     'FROM employee';



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15720542/viewspace-619768/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/15720542/viewspace-619768/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值