繁体   English   中英

将 Oracle 过程转换为 MSSQL

[英]Converting Oracle Procedure into MSSQL

我正在尝试将此过程从 Oracle 转换为 Microsoft SQL。我使用 SQLINE 但没有成功。 该代码应该将最多行插入表中。 它在 Oracle 中运行良好,只是想在 MSSQL 中做类似的事情。

这是过程

 ```create or replace procedure insert_emp as 
    begin
for p in 0..1000 loop
insert into emp (empno, empname, salary, hiredate, dept, title) values(p||1,'Bob',30000,'02-FEB-2004','SALES','EMP');
insert into emp (empno, empname, salary, hiredate, dept, title) values(p||2,'Raj',80000,'02-MAR-2018','MRKTNG','EMP');
insert into emp (empno, empname, salary, hiredate, dept, title) values(p||3,'Kevin',90000,'05-APR-2010','ADMIN','EMP');
insert into emp (empno, empname, salary, hiredate, dept, title) values(p||4,'Laila',30000,'12-FEB-2004','PURCHASE','EMP');
insert into emp (empno, empname, salary, hiredate, dept, title) values(p||5,'Steve',100000,'15-JAN-2008','SALES','MGR');
insert into emp (empno, empname, salary, hiredate, dept, title) values(p||6,'Lucy',80000,'10-FEB-2014','MRKTNG','MGR');
insert into emp (empno, empname, salary, hiredate, dept, title) values(p||7,'Nathan',120000,'17-JUN-2012','ADMIN','MGR');
insert into emp (empno, empname, salary, hiredate, dept, title) values(p||8,'Jose',60000,'16-JUL-2015','DESIGN','EMP');
insert into emp (empno, empname, salary, hiredate, dept, title) values(p||9,'Andrew',80000,'18-AUG-2005','SALES','EMP');
insert into emp (empno, empname, salary, hiredate, dept, title) values(p||10,'Lata',90000,'02-FEB-1998','SALES','EMP');
end loop;
commit;
end ;```

这里是 SQLINE 中转换的过程,但它不在 MSSQL 中运行。

   ```begin
declare p cursor for 0..1000 open p;
 fetch p into;
 while @@fetch_status=0
 begin   
insert into emp (empno, empname, salary, hiredate, dept, title) values(isnull(p, '')+1,'bob',30000,'02-feb-2004','sales','emp');
insert into emp (empno, empname, salary, hiredate, dept, title) values(isnull(p, '')+2,'raj',80000,'02-mar-2018','mrktng','emp');
insert into emp (empno, empname, salary, hiredate, dept, title) values(isnull(p, '')+3,'kevin',90000,'05-apr-2010','admin','emp');
insert into emp (empno, empname, salary, hiredate, dept, title) values(isnull(p, '')+4,'laila',30000,'12-feb-2004','purchase','emp');
insert into emp (empno, empname, salary, hiredate, dept, title) values(isnull(p, '')+5,'steve',100000,'15-jan-2008','sales','mgr');
insert into emp (empno, empname, salary, hiredate, dept, title) values(isnull(p, '')+6,'lucy',80000,'10-feb-2014','mrktng','mgr');
insert into emp (empno, empname, salary, hiredate, dept, title) values(isnull(p, '')+7,'nathan',120000,'17-jun-2012','admin','mgr');
insert into emp (empno, empname, salary, hiredate, dept, title) values(isnull(p, '')+8,'jose',60000,'16-jul-2015','design','emp');
insert into emp (empno, empname, salary, hiredate, dept, title) values(isnull(p, '')+9,'andrew',80000,'18-aug-2005','sales','emp');
if p<>0 begin  
insert into emp (empno, empname, salary, hiredate, dept, title) values(isnull(p, '')+0,'lata',90000,'02-feb-1998','sales','emp');
end 
fetch p into;
end;
close p;
deallocate p;
commit;
end;```

谢谢!

DECLARE @P INT = 0;
WHILE @P < 100
begin   
insert into emp (empno, empname, salary, hiredate, dept, title) values(@P+1,'bob',30000,'02-feb-2004','sales','emp');
insert into emp (empno, empname, salary, hiredate, dept, title) values(@P+2,'raj',80000,'02-mar-2018','mrktng','emp');
insert into emp (empno, empname, salary, hiredate, dept, title) values(@P+3,'kevin',90000,'05-apr-2010','admin','emp');
insert into emp (empno, empname, salary, hiredate, dept, title) values(@P+4,'laila',30000,'12-feb-2004','purchase','emp');
insert into emp (empno, empname, salary, hiredate, dept, title) values(@P+5,'steve',100000,'15-jan-2008','sales','mgr');
insert into emp (empno, empname, salary, hiredate, dept, title) values(@P+6,'lucy',80000,'10-feb-2014','mrktng','mgr');
insert into emp (empno, empname, salary, hiredate, dept, title) values(@P+7,'nathan',120000,'17-jun-2012','admin','mgr');
insert into emp (empno, empname, salary, hiredate, dept, title) values(@P+8,'jose',60000,'16-jul-2015','design','emp');
insert into emp (empno, empname, salary, hiredate, dept, title) values(@P+9,'andrew',80000,'18-aug-2005','sales','emp');
insert into emp (empno, empname, salary, hiredate, dept, title) values(@P+0,'lata',90000,'02-feb-1998','sales','emp');
SET @P+=1;
end ;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM