终于找到了一个,Oracle的一个插件 SQL SERVER PLUSIN,在Oracle官方网站上有得下载。
它可以将Sql server中的自增标识字段变为 Sequence+Trigger
将Sql server 存储过程返回游标的写法变为 Procedure+Package
不过还是不能100%转换的,80%左右吧,有些系统函数是转换不了的,例如:IDENT_CURRENT(),还有case语句等。
下面是的PACKAGE 是工具自动加的,用于Oracle存储过程传出游标:
CREATE OR REPLACE PACKAGE OMWB_EMULATION.globalPkg AUTHID CURRENT_USER AS
/* The following are T/SQL specific global variables. */
identity INTEGER;
trancount INTEGER := 0;
TYPE RCT1 IS REF CURSOR;/*new weak cursor definition*/
PROCEDURE incTrancount;
PROCEDURE decTrancount;
END globalPkg;
CREATE OR REPLACE PACKAGE BODY OMWB_EMULATION.globalPkg AS
/* This is a dummy package body added by the migration
workbench in order to emulate T/SQL specific global variables. */
PROCEDURE incTrancount IS
BEGIN
trancount := trancount + 1;
END incTrancount;
PROCEDURE decTrancount IS
BEGIN
trancount := trancount - 1;
END decTrancount;
END globalPkg;
然后存储过程变为(有返回游标的):
CREATE OR REPLACE PROCEDURE Mypro(
param1 IN VARCHAR2 DEFAULT NULL,
RC1 IN OUT Omwb_emulation.globalPkg.RCT1)
as
......