Oracle与MSSQL过程之间的转化.docVIP

  • 6
  • 0
  • 约4.6千字
  • 约 7页
  • 2018-05-04 发布于浙江
  • 举报
Oracle与MSSQL过程之间的转化

以下面两个过程为例。两者的功能相似。 1.MSSQL脚本 ?/**?更改表名?**/ ?Begin declare?@tempPoTableName?varchar 50 --性能对象表名 declare?@tempPoSpName?varchar 50 --性能过程名 declare?@errorInfo?varchar 200 --错误信息 declare?@cnt?int --计数器 declare?@tempSQL????varchar 1000 --定义表名、同步表名和存储过程游标 set?@tempSQL? ??declare?allValues_Cursor?cursor?for?+CHAR 13 ?+?CHAR 10 set?@tempSQL? ??@tempSQL?+??select?POTABLENAME,POSPNAME?from?PM_NEPODEF_TABLE WHERE?POID 110499?and?POID 110580 EXEC? @tempSQL OPEN?allValues_Cursor --判断是否由符合游标条件的行,如果没有则关闭和释放游标,异常返回 IF @@CURSOR_ROWS? ?0 BEGIN CLOSE?allValues_Cursor DEALLOCATE?allValues_Cursor set?@errorInfo? ?没有指定表名或存储过程名! print?@errorInfo return END print?开始更改原有表名…… FETCH??NEXT?FROM?allValues_Cursor?INTO?@tempPoTableName,@tempPoSpName --根据给定的表名、存储过程名?创建相应的数据存储存储过程 WHILE?? @@FETCH_STATUS? ?-1 BEGIN print?@tempPoTableName IF? EXISTS? SELECT?name?from?sysobjects?WHERE?name @tempPoTableName BEGIN set?@tempSQL? ?ALTER?TABLE?+?@tempPoTableName+?DROP constraint?PK_+@tempPoTableName EXEC? @tempSQL set?@tempSQL? ?@tempPoTableName+_TMP EXEC?Sp_rename?@tempPoTableName,@tempSQL END ELSE BEGIN print?没有找到表+@tempPoTableName; END??? IF? EXISTS? SELECT?name?from?sysobjects?WHERE?name @tempPoSpName BEGIN set?@tempSQL? ?DROP?PROCEDURE?+@tempPoSpName; EXEC? @tempSQL END ELSE BEGIN print?没有找到过程+@tempPoSpName; END FETCH??NEXT?FROM?allValues_Cursor?INTO?@tempPoTableName,@tempPoSpName END CLOSE?allValues_Cursor DEALLOCATE?allValues_Cursor print?结束更改原有表名…… print? GO 2.ORACLE脚本 BEGIN ?DECLARE tempPoTableName?varchar2 50 ; --性能对象表名 tempPoSpName?varchar2 50 ; --性能过程名 errorInfo?varchar2 200 ; --错误信息 tempSQL????varchar2 1000 ; cnt1???number 1 ; cnt2???number 2 ; --定义表名、同步表名和存储过程游标 Cursor?allValues_Cursor?is select?UPPER TRIM POTABLENAME ,UPPER TRIM POSPNAME ?from PM_NEPODEF_TABLE?WHERE?POID 110499?and?POID 110580; BEGIN OPEN?allValues_Cursor; --判断是否由符合游标条件的行,如果没有则关闭和释放游标,异常返回 DBMS_OUTPUT.PUT_LINE 开始更改原有表名…… ; FETCH??allValues_Cursor?INTO?tempPoTableName,tempPoSpName; --根据给定的表名、存储过程名?创建相应的数据存储存储过程 WHILE?all

文档评论(0)

1亿VIP精品文档

相关文档