我想从oracle合并查询中返回主键.
我使用单个语句插入,如果不存在,我不想使用过程或函数这样做..
我使用单个语句插入,如果不存在,我不想使用过程或函数这样做..
这是示例查询
merge into myTable e using (select :empname name from dual) s on (UPPER(TRIM(e.empname)) = UPPER(TRIM(s.name))) when not matched then insert (empname) values (s.name)
我需要获得myTable的另一个主键字段.使用序列和触发器插入主键
有一个问题.
> Merge Into不支持返回,因此无法正常工作.
>不会始终使用序列,因为它仅在插入新记录时使用.
>获取序列的现有值将不起作用,因为如果要在当前会话中尚未使用序列时查询Sequence.currval,则会出现错误.
解决它:
>使用过程或匿名程序块尝试更新值.如果更新后sql%rowcount返回0,请执行插入.>使用选择(查询UPPER(TRIM(名称)))查找已更新的记录.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。