ORACLE merge 更新链接列解决方案
来源:互联网 发布:淘宝旺铺价格 编辑:程序博客网 时间:2024/05/16 07:51
oracle merge的确是个很好的命令,用一条命令就可以解决不少的逻辑关系,但是如果碰到需要更新目标表的连接列的时候,问题就出现了
Merge Into Srv_Instance Si
Using (Select Array_Circuit(i).Circuit_Id Circuit_Id From Dual) o
On (Si.Route_Id = o.Circuit_Id)
When Matched Then
Update Set Si.Route_Id = v_Pw_Id Where Si.Delete_State = '0'
When Not Matched Then
Insert(
Inst_Id,Dis_Seq,Prod_Inst_Id,Srv_Id,Route_Id,
Route_Type,Order_Seq,Opr_State_Id,Delete_State,
Order_Layer,Act_Type,Old_Sp,Modify_Op,Modiry_Date)
Values(
Lpad(Seq_Srv_Instance_Inst_Id.Nextval, 24, '0'),
To_Char(Systimestamp, 'missff') ||Seq_Srv_Instance_Inst_Id.Nextval,
Trim('RefreshId' || To_Char(Systimestamp, 'YYMMDDhh24missff') ||
Lpad(Dbms_Random.Value(0, 1000), 5, '0')),
'1010',
v_Pw_Id,
'1048',
0,
170003,
0,
0,
'101',
Gv_Old_Sp,
'1',
Sysdate);
如果执行这个代码的话就要报ora-38104错误了,我是这样解决的问题的,具体看代码
Update Srv_Instance Si
Set Si.Route_Id = v_Pw_Id
Where Si.Route_Id = Array_Circuit(i).Circuit_Id;
If (Sql%Rowcount = 0) Then
Insert Into Srv_Instance
(Inst_Id,
Dis_Seq,
Prod_Inst_Id,
Srv_Id,
Route_Id,
Route_Type,
Order_Seq,
Opr_State_Id,
Delete_State,
Order_Layer,
Act_Type,
Old_Sp,
Modify_Op,
Modiry_Date)
Values
(Lpad(Seq_Srv_Instance_Inst_Id.Nextval, 24, '0'),
To_Char(Systimestamp, 'missff') || Seq_Srv_Instance_Inst_Id.Nextval,
Trim('RefreshId' || To_Char(Systimestamp, 'YYMMDDhh24missff') ||
Lpad(Dbms_Random.Value(0, 1000), 5, '0')),
'1010',
v_Pw_Id,
'1048',
0,
170003,
0,
0,
'101',
Gv_Old_Sp,
'1',
Sysdate);
End If;
- ORACLE merge 更新链接列解决方案
- oracle列过大解决方案
- Oracle链接出错解决方案
- Oracle中的Merge函数(批量更新/删除)
- oracle使用 merge 更新或插入数据
- oracle使用merge更新或插入数据
- Oracle 使用MERGE INTO 语句更新数据
- Oracle 的 merge 更新和插入操作
- Oracle 使用MERGE INTO 语句更新数据
- Oracle 使用MERGE INTO 语句更新数据
- Oracle 使用MERGE INTO 语句更新数据
- Oracle 使用MERGE INTO 语句更新数据
- oracle大量数据更新优化(merge)
- oracle merge 更新或插入数据
- oracle merge 更新或插入数据
- asp.net 链接 oracle 解决方案
- Weblogic反序列化漏洞补丁更新解决方案
- MERGE Into 无法更新ON子句中引用的列
- 1049. Counting Ones (30)
- linux下编译出错 collect2: ld terminated with signal 7 [Bus error], core dumped
- 【转载】Linux命令的返回值
- HTTP请求(GET与POST区别)和响应
- 选择ARM7还是cortex-M3?
- ORACLE merge 更新链接列解决方案
- 装饰设计模式
- mysql
- EBS R12中SLA子分类帐与子模块的关联关系
- Fedora 18 安装 flash 插件
- myeclipse 6.5 svn link
- python数据库操作
- hibernate常见异常
- String对中文长度的计算问题