请选择 进入手机版 | 继续访问电脑版
贠老师培训群:150322713    贠老师QQ:767708506

贠老师office培训-excel学习网

 找回密码
 立即注册
点击咨询贠老师
查看: 168|回复: 6

动态查询,动态生成cursor或者动态执行SQL的DML操作

[复制链接]

607

主题

604

帖子

1909

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1909
发表于 2016-1-7 23:10:35 | 显示全部楼层 |阅读模式
定义PROCEDURE P1 ( P_Asset_Type IN varchar2,P_Asset_SubType IN varchar2,P_OrderIds IN varchar2)。
需要根据传入参数动态查询,动态生成cursor或者动态执行SQL的DML操作。
1.简单的查询
SELECT   ABC from TableA where ORDER_ID IN ( P_OrderIds) ;
2. 动态生成cursor
定义游标和变量:
type   v_cursor   is   ref   cursor;   
C1 v_cursor;    v_command varchar2(2000);
v_command := ''SELECT    ABC from TableA  where ORDER_ID IN ( '' ||P_OrderIds|| '' ) '';
OPEN C1 for v_command;
3.动态DML操作
v_command2 := ''UPDATE TableA  
               SET ASSET_TYPE_CD = ''''''||P_Asset_Type||'''''',''
                ||''ASSET_SUBTYPE_CD = ''''''||P_Asset_SubType||''''''''
                ||''WHERE ORDER_ID IN ( ''||P_OrderIds||'' ) '';

execute immediate v_command2;(动态sql)
回复

使用道具 举报

7

主题

860

帖子

65

积分

注册会员

Rank: 2

积分
65
发表于 2016-6-9 11:25:50 | 显示全部楼层
这个资料非常不错,好东东!
回复 支持 反对

使用道具 举报

0

主题

882

帖子

6

积分

注册会员

Rank: 2

积分
6
发表于 2016-9-20 20:59:57 | 显示全部楼层
学习贵在坚持哦
回复 支持 反对

使用道具 举报

4

主题

1044

帖子

195

积分

注册会员

Rank: 2

积分
195
发表于 2017-4-18 18:42:04 | 显示全部楼层
太给力啊 跪谢啊
回复 支持 反对

使用道具 举报

1

主题

929

帖子

20

积分

注册会员

Rank: 2

积分
20
发表于 2017-9-28 18:14:48 | 显示全部楼层
赞赞
回复 支持 反对

使用道具 举报

0

主题

921

帖子

61

积分

注册会员

Rank: 2

积分
61
发表于 2018-3-20 18:17:08 | 显示全部楼层
学习贵在坚持哦
回复 支持 反对

使用道具 举报

7

主题

860

帖子

65

积分

注册会员

Rank: 2

积分
65
发表于 2018-11-13 14:05:29 | 显示全部楼层
顶楼主,帮你顶个贴,我挣个积分
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



陕ICP备15003731号  

贠老师培训 GMT+8, 2018-12-19 21:30 , Processed in 0.240934 second(s), 33 queries .

快速回复 返回顶部 返回列表