Oracle与MSSQL过程之间的转化
2007-05-06 12:07:19 来源:WEB开发网核心提示:这两天写数据库升级脚本,发现MSSQL和Oracle之间的转化还是比较容易的,Oracle与MSSQL过程之间的转化,以下面两个过程为例,两者的功能相似,1.MSSQL脚本/**更改表名**/Begindeclare@tempPoTableNamevarchar(50)--性能对象表名declare@tempPoSpN
这两天写数据库升级脚本,发现MSSQL和Oracle之间的转化还是比较容易的。
以下面两个过程为例。两者的功能相似。
1.MSSQL脚本
/**更改表名**/
Begin
declare@tempPoTableNamevarchar(50) --性能对象表名
declare@tempPoSpNamevarchar(50) --性能过程名
declare@errorInfovarchar(200) --错误信息
declare@cntint --计数器
declare@tempSQL varchar(1000)
--定义表名、同步表名和存储过程游标
set@tempSQL='declareallValues_Cursorcursorfor'+CHAR(13)+CHAR(10)
set@tempSQL= @tempSQL+'selectPOTABLENAME,POSPNAMEfromPM_NEPODEF_TABLE
WHEREPOID>110499andPOID<110580'
EXEC(@tempSQL)
OPENallValues_Cursor
--判断是否由符合游标条件的行,如果没有则关闭和释放游标,异常返回
IF(@@CURSOR_ROWS=0)
BEGIN
CLOSEallValues_Cursor
DEALLOCATEallValues_Cursor
set@errorInfo='没有指定表名或存储过程名!'
print@errorInfo
return
END
print'开始更改原有表名……'
FETCH NEXTFROMallValues_CursorINTO@tempPoTableName,@tempPoSpName
--根据给定的表名、存储过程名创建相应的数据存储存储过程
WHILE (@@FETCH_STATUS<>-1)
BEGIN
print@tempPoTableName
IF(EXISTS(SELECTnamefromsysobjectsWHEREname=@tempPoTableName))
BEGIN
set@tempSQL='ALTERTABLE'+@tempPoTableName+'DROP
constraintPK_'+@tempPoTableName
EXEC(@tempSQL)
set@tempSQL=@tempPoTableName+'_TMP'
EXECSp_rename@tempPoTableName,@tempSQL
END
ELSE
BEGIN
print'没有找到表'+@tempPoTableName;
END
IF(EXISTS(SELECTnamefromsysobjectsWHEREname=@tempPoSpName))
BEGIN
set@tempSQL='DROPPROCEDURE'+@tempPoSpName;
EXEC(@tempSQL)
END
ELSE
BEGIN
print'没有找到过程'+@tempPoSpName;
END
FETCH NEXTFROMallValues_CursorINTO@tempPoTableName,@tempPoSpName
END
CLOSEallValues_Cursor
DEALLOCATEallValues_Cursor
print'结束更改原有表名……'
print'------------------------'
END
GO
2.ORACLE脚本
- ››oracle 恢复误删除的表和误更新的表
- ››Oracle分页查询排序数据重复问题
- ››Oracle创建dblink报错:ORA-01017、ORA-02063解决
- ››Oracle 提高SQL执行效率的方法
- ››Oracle 动态查询,EXECUTE IMMEDIATE select into...
- ››Oracle 11g必须开启的服务及服务详细介绍
- ››oracle性能34条优化技巧
- ››oracle数据库生成随机数的函数
- ››Oracle 数据库表空间容量调整脚本
- ››oracle单库彻底删除干净的方法
- ››Oracle创建表空间、创建用户以及授权、查看权限
- ››oracle 中 UPDATE nowait 的使用方法
更多精彩
赞助商链接