有没有方法把这种多个占位符的替换下,用一个参数代替多个占位参数,例如
update tpf_revealbaseparams a
set a.c_jjyzfs = NVL(:1,c_jjyzfs), a.c_tzmb = NVL(:2,c_tzmb),
a.c_tzcl = NVL(:3,c_tzcl), a.c_fxsytz = NVL(:4,c_fxsytz),
a.c_glrbg = NVL(:5,c_glrbg), a.c_tenantcode = NVL(:6,c_tenantcode),
a.c_tgrbgzgsx = NVL(:7,c_tgrbgzgsx), a.c_tgrbgtzyz = NVL(:8,c_tgrbgtzyz),
a.c_tgrbgcwxx = NVL(:9,c_tgrbgcwxx), a.c_tzgw = NVL(:10,c_tzgw),
a.c_jjdqrq = NVL(:11,c_jjdqrq);
execute immediate v_sql USING p_jjyzfs,p_tzmb,p_tzcl,p_fxsytz,p_glrbg,
p_tenantcode,p_tgrbgzgsx,p_tgrbgtzyz,p_tgrbgcwxx,p_tzgw,
p_jjdqrq;
实现类似 定义一个变量v_usingsql :='p_jjyzfs,p_tzmb,p_tzcl,p_fxsytz,p_glrbg,
p_tenantcode,p_tgrbgzgsx,p_tgrbgtzyz,p_tgrbgcwxx,p_tzgw,
p_jjdqrq';
得以实现:execute immediate v_sql USING v_usingsql ;
实际上这是行不通的,占位符要一一匹对在不是相同值的情况下;
有没有大神有好的什么方法可以实现这种类似功能。
update tpf_revealbaseparams a
set a.c_jjyzfs = NVL(:1,c_jjyzfs), a.c_tzmb = NVL(:2,c_tzmb),
a.c_tzcl = NVL(:3,c_tzcl), a.c_fxsytz = NVL(:4,c_fxsytz),
a.c_glrbg = NVL(:5,c_glrbg), a.c_tenantcode = NVL(:6,c_tenantcode),
a.c_tgrbgzgsx = NVL(:7,c_tgrbgzgsx), a.c_tgrbgtzyz = NVL(:8,c_tgrbgtzyz),
a.c_tgrbgcwxx = NVL(:9,c_tgrbgcwxx), a.c_tzgw = NVL(:10,c_tzgw),
a.c_jjdqrq = NVL(:11,c_jjdqrq);
execute immediate v_sql USING p_jjyzfs,p_tzmb,p_tzcl,p_fxsytz,p_glrbg,
p_tenantcode,p_tgrbgzgsx,p_tgrbgtzyz,p_tgrbgcwxx,p_tzgw,
p_jjdqrq;
实现类似 定义一个变量v_usingsql :='p_jjyzfs,p_tzmb,p_tzcl,p_fxsytz,p_glrbg,
p_tenantcode,p_tgrbgzgsx,p_tgrbgtzyz,p_tgrbgcwxx,p_tzgw,
p_jjdqrq';
得以实现:execute immediate v_sql USING v_usingsql ;
实际上这是行不通的,占位符要一一匹对在不是相同值的情况下;
有没有大神有好的什么方法可以实现这种类似功能。
解决方案 »
- 关于oracle中scheme的问题?
- 一个菜鸟的疑问
- oracle SQL Loader 读取csv 开头行bom问题(乱码)
- oracle实现类似于Java语言中String的split方法, 达人进!
- 請求高手解決一個 sequence 問題
- oracle执行某项操作后,等待一个小时以上没有反应,处于等待状态
- 一个说难不难的触发器
- 可以在oracle中定义不带参数的存储过程和函数吗? 以及pack中关于变量如何共享问题??
- 我的机器是xp系统,256M内存,2.3赛扬,已经装了sqlserver2000,想再装一个oracle看看,会不会系统崩溃阿??
- PL/SQL的for循环怎么写?
- ORA-01735: 无效的 ALTER TABLE 选项(Oracle SQL )
- SQL 求和最大
:N,就要求 N 个参数放在 using 后l