Sqlserver2005迁移至Oracle系列之二:生成存储过程
2009-03-03 13:11:21 来源:WEB开发网--进一步处理,注意各步骤的顺序不可随意调换
begin
--处理tab(换成空格)
update ##sp set [definition] = replace(replace(replace([definition],char(9),replicate(char(32),4)),char(10),char(32)),char(13),char(32))
--处理return
update ##sp set [definition] = [definition] + ';' where rtrim(ltrim([definition])) like 'return%'
--处理%create%procedure%
update ##sp set [definition] = replace([definition],'procedure','OR REPLACE PROCEDURE') where [definition] like '%create%procedure%'
--处理%exec%
update ##sp set [definition] = 'null;--' + replace(replace([definition],'execute ',' '),'exec ',' ') where [definition] like '%exec%'
--处理%end%
update ##sp set [definition] = [definition] + ';' where ltrim(rtrim([definition])) = 'end'
--处理%set%nocount%
update ##sp set [definition] = '' where [definition] like '%set%nocount%'
--处理%insert%values%(补足";"号)
update ##sp set [definition] = [definition] + ';' where [definition] like '%insert%values%'
--处理%if %(补足then)
update ##sp set [definition] = [definition] + ' then' where [definition] like '%if %'
--处理%else if%
update ##sp set [definition] = replace([definition],'else if','elsif') where [definition] like '%else if%'
--处理%declare %
update ##sp set [definition] = replace([definition],'declare','') where [definition] like '%declare %'
--替换不规范关键字' uid,'、',uid'、' uid '
update ##sp set [definition] = replace(replace(replace([definition],' uid ',' "UID" '),',uid ',',"UID" '),' uid,',' "UID",')
--替换不规范关键字' index,'、',index'、' index '
update ##sp set [definition] = replace(replace(replace([definition],' index ',' "INDEX" '),',index ',',"INDEX" '),' index,',' "INDEX",')
--替换不规范关键字' mode,'、',mode'、' mode '
update ##sp set [definition] = replace(replace(replace([definition],' mode ',' "MODE" '),',mode ',',"MODE" '),' mode,',' "MODE",')
--替换不规范关键字' type,'、',type'、' type '
update ##sp set [definition] = replace(replace(replace([definition],' type ',' "TYPE" '),',type ',',"TYPE" '),' type,',' "TYPE",')
--替换非法字母%@%(为v_)
update ##sp set [definition] = replace([definition],'@','v_') where [definition] like '%@%'
--处理%ErrorRemark%
update ##sp set [definition] = replace(replace(replace([definition],'+','||'),'=',':='),'set','') + ';' where [definition] like '%ErrorRemark%'
--处理';;'
update ##sp set [definition] = replace(replace([definition],';;',';'),';;',';') where [definition] like '%;;%'
--处理连续空格、标点符号空格
update ##sp set [definition] = replace([definition],' ;',';')
update ##sp set [definition] = replace([definition],' ,',',')
update ##sp set [definition] = replace([definition],'-- ','--')
--删除空行
delete from ##sp where [definition] = ''
--删除--行注释
--delete from ##sp where [definition] like '--%'
end
--将语句变为小写
--update ##sp set [definition] = upper([definition])
--输出结果
select ([definition]) + '' from ##sp order by id
--where [definition] like '%select%v_%=%' and [definition] not like '%where%'
系列文章:
Sqlserver2005迁移至Oracle系列之一:生成表(上)
Sqlserver2005迁移至Oracle系列之一:生成表(下)
Sqlserver2005迁移至Oracle系列之二:生成存储过程
Sqlserver2005迁移至Oracle系列之三:在Oracle中创建sql中的常见函数
Sqlserver2005迁移至Oracle系列之四:在Oracle中创建位或运算函数-bitor
Sqlserver2005迁移至Oracle系列之五:角色、用户、及权限
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››sqlserver安装和简单的使用
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
更多精彩
赞助商链接