知识大全 把Oracle数据库移植到Microsoft SQL Server 7.0(4)

Posted

篇首语:没有伞的孩子必须学会努力奔跑。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 把Oracle数据库移植到Microsoft SQL Server 7.0(4)相关的知识,希望对你有一定的参考价值。

把Oracle数据库移植到Microsoft SQL Server 7.0(4)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  引用完整性 下表提供了一个用来定义referential完整性约束的语法比较 约束 Oracle Microsoft SQL Server PRIMARY KEY [CONSTRAINT constraint_name] PRIMARY KEY (col_name [ col_name [ col_name ]]) [USING INDEX storage_parameters] [CONSTRAINT constraint_name] PRIMARY KEY [CLUSTERED | NONCLUSTERED] (col_name [ col_name [ col_name ]]) [ON segment_name] [NOT FOR REPLICATION] UNIQUE [CONSTRAINT constraint_name] UNIQUE (col_name [ col_name [ col_name ]]) [USING INDEX storage_parameters] [CONSTRAINT constraint_name] UNIQUE [CLUSTERED | NONCLUSTERED](col_name [ col_name [ col_name ]]) [ON segment_name] [NOT FOR REPLICATION] FOREIGN KEY [CONSTRAINT constraint_name] [FOREIGN KEY (col_name [ col_name [ col_name ]])] REFERENCES [owner ]ref_table [(ref_col [ ref_col [ ref_col ]])] [ON DELETE CASCADE] [CONSTRAINT constraint_name] [FOREIGN KEY (col_name [ col_name [ col_name ]])] REFERENCES [owner ]ref_table [(ref_col [ ref_col [ ref_col ]])] [NOT FOR REPLICATION] DEFAULT Column property not a constraint DEFAULT (constant_expression) [CONSTRAINT constraint_name] DEFAULT constant_expression | niladic function | NULL [FOR col_name] [NOT FOR REPLICATION] CHECK [CONSTRAINT constraint_name] CHECK (expression) [CONSTRAINT constraint_name] CHECK [NOT FOR REPLICATION] (expression)   NOT FOR REPLICATION子句用来在复制过程中挂起列级别 FOREIGN KEY 以及CHECK约束   外部键 定义外部关键字的语法在各种RDBMS中都是相似的 在外部关键字中标明的列数和每一列的数据类型必须和 REFERENCES子句相匹配 一个输入到列中的非空的值必须在REFERENCES子句中定义表和列中存在 并且被提 及的表的列必须有一个PRIMARY KEY或者UNIQUE约束 Microsoft SQL Server约束提供了在同一个数据库中引用表的能力 要实现在数据库范围的应用完整性 可 以使用基于表的触发器 Oracle和SQL Server都支持自引用表 这种表中有对同一个表的一列或几列的引用 例如 CLASS表中的 prereq列可以引用CLASS表中的ccode列以确保一个有效的课程编号是作为一个子句的先决条件输入的 在Oracle中实现层叠式的删除和修改是使用CASCADE DELETE子句 而SQL Server用表触发器来实现同样的 功能 如果需要了解更多的信息 请参看本章后面的 SQL语言支持 部分   用户定义的完整性 用户定义的完整性允许你定义特定的商业规则 该规则不属于其他完整性的范畴   存储过程 Microsoft SQL Server存储程序用CREATE PROCEDURE语句来接受或者返回用户提供的参数 除临时存储程序 以外 存储程序是在当前数据库中创建的 下表显示了Oracle和SQL Server的语法 Oracle Microsoft SQL  CREATE OR REPLACE PROCEDURE [user ]procedure     [(argument [IN | OUT] datatype     [ argument [IN | OUT] datatype] IS | AS block CREATE PROC[EDURE] procedure_name        [;number]     [        @parameter data_type [VARYING]        [= default] [OUTPUT]     ]     [ …n] [WITH      REPILE   | ENCRYPTION |       REPILE ENCRYPTION ] [FOR REPLICATION] AS     sql_statement […n]   在SQL Server中 临时存储程序是在tempdb数据库中通过在procedure_name前加上数字标记来创建的 加一 个数字标记(#procedure_name)表示是一个本地临时存储程序 加两个数字标记(##procedure_name)表示 是一个全局临时程序 一个本地临时程序只能被创建它的用户使用 执行本地临时程序的许可不能授予其他用户 本地临时程序在 用户会话结束时自动删除 一个全局的临时程序可以被所有的SQL Server用户使用 如果一个全局临时程序被创建了 所有的用户都可 以访问它 并且不能显式的撤回许可 全局临时程序在最后一个用户会话结束的时候自动删除 SQL Server存储程序可以有最多 级嵌套 嵌套层数在被调用的程序开始执行时增加 在被调用的程序结束 运行时减少 下面的例子说明了怎样用一个Transact SQL存储程序来代替一个Oracle的PL/SQL封装函数 Transact SQL的 版本更简单一些 因为SQL Server的返回结果的能力是在一个存储程序中直接用SELECT语句设置的 不需要 使用游标 Oracle Microsoft SQL  CREATE OR REPLACE PACKAGE    STUDENT_ADMIN P AS ROWCOUNT    NUMBER := ;    CURSOR C RETURN    STUDENT%ROWTYPE;    FUNCTION    SHOW_RELUCTANT_STUDENTS (WORKVAR OUT VARCHAR )       RETURN NUMBER; END P ; / CREATE OR REPLACE PACKAGE BODY    STUDENT_ADMIN P AS CURSOR C    RETURN STUDENT%ROWTYPE IS       SELECT * FROM       STUDENT_ADMIN STUDENT         WHERE NOT EXISTS       (SELECT X FROM       STUDENT_ADMIN GRADE       WHERE       GRADE SSN=STUDENT SSN) ORDER       BY SSN; FUNCTION SHOW_RELUCTANT_STUDENTS    (WORKVAR OUT VARCHAR ) RETURN    NUMBER IS    WORKREC STUDENT%ROWTYPE;    BEGIN       IF NOT C %ISOPEN THEN OPEN C ;       ROWCOUNT := ;       ENDIF;       FETCH C INTO WORKREC;       IF (C %NOTFOUND) THEN         CLOSE C ;         ROWCOUNT := ;       ELSE         WORKVAR := WORKREC FNAME||          ||WORKREC LNAME||          social security number          ||WORKREC SSN|| is not enrolled            in any classes! ;         ROWCOUNT := ROWCOUNT + ;       ENDIF; RETURN(ROWCOUNT); CREATE PROCEDURE STUDENT_ADMIN SHOW_ RELUCTANT_STUDENTS AS SELECT FNAME+ +LNAME+ social   security number + SSN+ is not enrolled in any    classes! FROM STUDENT_ADMIN STUDENT S WHERE NOT EXISTS    (SELECT X FROM    STUDENT_ADMIN GRADE G    WHERE G SSN=S SSN) ORDER BY SSN RETURN@@ROWCOUNT GO       EXCEPTION WHEN OTHERS THEN IF C %ISOPEN THEN CLOSE C ; ROWCOUNT := ; ENDIF; RAISE_APPLICATION_ERROR( SQLERRM); END SHOW_RELUCTANT_STUDENTS; END P ; /     SQL Server不支持与Oracle包或者函数相似的构造 也不支持在创建存储程序时的CREATE OR REPLACE选项   延迟存储过程的执行 Microsoft SQL Server提供了WAITFOR 允许开发人员给定一个时间 时间段 或者事件来触发一个语句块 存储程序或者事务的执行 这是Transact SQL对于Oracle中dbms_lock_sleep的等价 WAITFOR DELAY time | TIME time 指示Microsoft SQL Server等待直到给定的时间过去以后再执行 最多可以到 小时 在这里 DELAY 指示Microsoft SQL Server等待 直到给定数量的时间过去以后才执行 最多可以设置到 小时 time 需要等待的时间 时间可以是任何可接受的datetime数据类型的格式 或者可以作为一个本地变量给出 但是 不能指定datetime值的日期部分 TIME 指示SQL Server等到指定的时间 例如 BEGIN WAITFOR TIME : EXECUTE update_all_stats END   指定存储程序中的参数 要在一个存储程序中指定一个参数 可以使用下面给出的语法 Oracle Microsoft SQL  Varname datatype DEFAULT ; @parameter data_type [VARYING]    [= default] [OUTPUT]   触发器(Triggers) Oracle和Microsoft SQL Server都有触发器 但它们在执行上有些不同 cha138/Article/program/Oracle/201311/17836

相关参考

知识大全 将Access数据库移植到Microsoft SQL Server 7.0

将Access数据库移植到MicrosoftSQLServer7.0  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快

知识大全 如何把本地MySql数据库移植到远程服务器上

如何把本地MySql数据库移植到远程服务器上  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  如何

知识大全 用Oracle导入导出工具实现Oracle数据库移植

用Oracle导入导出工具实现Oracle数据库移植  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 Oracle11g数据库移植

Oracle11g数据库移植  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  数据库版本频繁更新不

知识大全 讲解Oracle移动数据文件到新分区的过程

讲解Oracle移动数据文件到新分区的过程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!此过程用s

知识大全 SQLServer2005移植到Oracle10g经验总结

SQLServer2005移植到Oracle10g经验总结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 cmd命令行模式

  Oracle数据导入导出imp/exp就相当于oracle数据还原与备份exp命令可以把数据从远程数据库服务器导出到本地的dmp文件imp命令可以把dmp文件从本地导入到远处的数据库服务器中利用这

知识大全 oracle新建用户,授权,建表空间

  这段时间在学oracle终于把公司的数据库成功导入到我自己的数据库里了  create用户  sql代码SQL>createuservisiontvidentifiedbyvisiontvd

知识大全 SQL&Loader可把文件中的数据装载到OR

SQL&Loader可把文件中的数据装载到OR  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  S

知识大全 数据库移植到SQL Server 2008R2出现“3145错误”怎么办

数据库移植到SQLServer2008R2出现“3145错误”怎么办  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快