insert 触发器如何取新总增行任意字段值

flyingscv 2008-12-30 09:48:40
比如取name字段可以:new.name
但如果字段名是变量,如何获取?
比如:fieldname:='name',如何用:new和fieldname取该值
...全文
119 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyingscv 2008-12-31
  • 打赏
  • 举报
回复
这个倒也是一个方法,就是动态生成触发器:)
flyingscv 2008-12-30
  • 打赏
  • 举报
回复
好像不行啊,execute immediate 语句里不认识变量啥的
jinjazz 2008-12-30
  • 打赏
  • 举报
回复
这个只能用动态sql了
sleepzzzzz 2008-12-30
  • 打赏
  • 举报
回复
或者
execute immediate 'select :new.'||fieldname || ' into 变量 from dual';
sleepzzzzz 2008-12-30
  • 打赏
  • 举报
回复
-- 使用动态sql试试:

1.声明变量..name;
2.execute immediate 'name=:new.'||fieldname;
....
范佩西_11 2008-12-30
  • 打赏
  • 举报
回复
用if then逐个判断
if field=name1 then
:new.name1
elsif ...
then
:new.
.....
flyingscv 2008-12-30
  • 打赏
  • 举报
回复
还是没有解决
好像没办法解决,oracle 不支持复杂变量绑定,比如:new

准备采用代码实现,放弃用触发器做这么复杂的逻辑了!

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧