从SQL SERVER 向ORACLE 8迁移的技术实现方案(2)
2008-09-08 12:52:54 来源:WEB开发网<3>、从SQL SERVER向ORACLE的迁移方案
1、通过比较上面SQL语法的不同并考虑现有SQL SERVER的实际编程风格,在从
T-SQL向PL/SQL迁移时,要遵守下面规则:
1> 在CREATE TRIGGER定义中采用AFTER关键字,即调整为事后触发器。
2> 在CREATE TRIGGER定义中采用FOR EACH ROW关键字,即调整为行级触发
器。
3> 将触发器主体中的“inserted”调整为“:new”,将“deleted”调整为“:old”。
4> 在触发器主体中禁用CURSOR操作:new与:old。
5> 在触发器主体中禁用COMMIT、ROLLBACK、SAVEPOINT等事务控制语句。
2、用触发器解决ID列向SEQUENCE迁移的问题:
下面的GenerateStudentID触发器使用了:new。这是一个before INSERT触
发器,其目的是使用student_sequence序列所产生的数值填写
students表的ID字段。
例:
CREATE OR REPLACE TRIGGER GenerateStudentID
BEFORE INSERT ON students
FOR EACH ROW
BEGIN
SELECT student_sequence.nextval
INTO :new.ID
FROM dual;
END;
在上面的触发器主体中,GenerateStudentID实际上修改了:new.ID的值。这
是:new最有用的一个特性——当该语句真正被执行时,:new中的存储内容就
将被使用。有了这个触发器,我们就可以使用下面这样的INSERT语句,而不
会产生错误:
INSERT INTO students (first_name, last_name)
VALUES (‘LUO’, ‘TAO’) ;
尽管我们没有为主键列ID(这是必需的)指定取值,触发器将会提供所需要
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
更多精彩
赞助商链接