Oracle到SQL Server的转换
时间:2011-12-16
来源:互联网
请问:
朋友们,下面这段需要在SQL Server中运行该如何转换。我的难点是在 变量和赋值的处理上。
先在此,谢谢大家!
create procedure sync_dec_operator(m_ems_no varchar2, m_i_e_flag varchar2) is
m_sql varchar2(2000);
begin
m_sql := 'insert into T_ems1(seq_no,i_e_flag,trade_code,ems_no)
select t.seq_no,t.i_e_flag,t.trade_co,t.manual_no from T_ems' ||
m_i_e_flag ||
'_head t where not exists (select 0 from T_ems1 t1 where t1.seq_no = t.seq_no)
and (t.manual_no = :ems_no or
exists (select 0 from T_ems t1 where t1.ems_no = :ems_no))';
execute immediate m_sql
using m_ems_no, m_ems_no;
execute immediate m_sql
using m_ems_no, m_i_e_flag;
朋友们,下面这段需要在SQL Server中运行该如何转换。我的难点是在 变量和赋值的处理上。
先在此,谢谢大家!
create procedure sync_dec_operator(m_ems_no varchar2, m_i_e_flag varchar2) is
m_sql varchar2(2000);
begin
m_sql := 'insert into T_ems1(seq_no,i_e_flag,trade_code,ems_no)
select t.seq_no,t.i_e_flag,t.trade_co,t.manual_no from T_ems' ||
m_i_e_flag ||
'_head t where not exists (select 0 from T_ems1 t1 where t1.seq_no = t.seq_no)
and (t.manual_no = :ems_no or
exists (select 0 from T_ems t1 where t1.ems_no = :ems_no))';
execute immediate m_sql
using m_ems_no, m_ems_no;
execute immediate m_sql
using m_ems_no, m_i_e_flag;
作者: zyglovely 发布时间: 2011-12-16
看不太懂啊
作者: ssp2009 发布时间: 2011-12-16
对照两边的语法翻译就是了.
作者: qianjin036a 发布时间: 2011-12-16
大概可以這樣改,
在Print看生成的語句
SQL code
在Print看生成的語句
SQL code
CREATE PROCEDURE sync_dec_operator( @m_ems_no NVARCHAR(200), @m_i_e_flag NVARCHAR(200) ) AS DECLARE @m_sql nvarchar(2000) BEGIN SET @m_sql='insert into T_ems1(seq_no,i_e_flag,trade_code,ems_no) select t.seq_no,t.i_e_flag,t.trade_co,t.manual_no from T_ems' +@m_i_e_flag+ '_head t where not exists (select 0 from T_ems1 t1 where t1.seq_no = t.seq_no) and (t.manual_no = @m_ems_no or exists (select 0 from T_ems t1 where t1.ems_no = @m_ems_no))' PRINT @m_sql--顯示語句 EXECUTE sp_executesql @m_sql,'@m_ems_no NVARCHAR(200)',@m_ems_no END
作者: roy_88 发布时间: 2011-12-16
SQL code
--大概这个样子 create procedure sync_dec_operator ( @m_ems_no varchar(max), @m_i_e_flag int ) as begin declare @m_sql varchar(max) set @m_sql=' insert into T_ems1(seq_no,i_e_flag,trade_code,ems_no) select t.seq_no,t.i_e_flag,t.trade_co,t.manual_no from T_ems'+ltrim(@m_i_e_flag)+'+head t where not exists (select 0 from T_ems1 t1 where t1.seq_no = t.seq_no) and t.manual_no='+@m_ems_no+' or exists (select 0 from T_ems t1 where t1.ems_no ='+@m_ems_no+')' exec (@m_sql)
作者: fredrickhu 发布时间: 2011-12-16
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28