WEB开发网      濠电娀娼ч崐濠氬疾椤愶附鍋熸い鏍ㄧ〒闂勫嫰鏌﹀Ο渚Ц闁诲氦顕ч湁婵犲﹤楠告禍鍓х磼鏉堛劌绗氶柟宄版嚇閹晠宕归銈嗘濠电偞鍨堕幐鎾磻閹捐秮褰掓偐閻戞﹩妫勯梺鎼炲妼鐎涒晝绮嬪澶樻晝闁挎繂鏌婇敃鍌涚厵閻庢稒锚閻忥絾绻濇繝鍐ㄧ伌闁诡垰鍟村畷鐔碱敂閸♀晙绱樺┑鐐差嚟婵儳螞閸曨剚鍙忛柍鍝勬噹缁€澶嬬箾閹存繄锛嶆鐐灲閹綊宕惰濡插鏌涢妸銉ヮ劉缂佸倸绉归弫鎾绘晸閿燂拷 ---闂備焦瀵уú鈺呭箯閿燂拷
开发学院数据库Oracle Oracle与MSSQL过程之间的转化 阅读

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脚本

1 2 3  下一页

Tags:Oracle MSSQL 过程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接