关于安装脚本
安装脚本可以具有创建应用程序所需的所有 SQL 语句,也可以是运行其他脚本的主脚本。
脚本是文件中以 .sql(例如 create_app.sql)结尾的一系列 SQL 语句。当在客户机程序(如 SQL*Plus 或 SQL Developer)中运行脚本时,SQL 语句将按照其在脚本中的显示顺序运行。SQL 语句创建应用程序的脚本称为安装脚本。
要部署应用程序,需要在部署环境中运行一个或多个安装脚本。对于新应用程序,必须创建安装脚本。对于较旧的应用程序,安装脚本可能存在,但如果没有,您可以创建它们。
关于 DDL 语句和方案对象相关性
安装脚本包含用于创建方案对象的 DDL 语句,以及(可选)用于将数据加载到 DDL 语句创建的表中的 INSERT 语句。要正确创建安装脚本并按正确的顺序运行多个安装脚本,必须了解应用程序的方案对象之间的相关性。
如果对象 A 的定义引用对象 B,则 A 依赖 B。因此,在创建 A 之前必须先创建 B。否则,创建 B 的语句会失败或所创建的 B 处于无效状态,具体取决于对象类型。
对于复杂应用程序,创建对象的顺序很不明确。通常,您必须咨询数据库设计者或参阅设计图。
另请参见:
-
Oracle Database Development Guide(了解有关方案对象依赖性的详细信息)
关于 INSERT 语句和约束条件
运行包含 INSERT 语句的安装脚本时,必须确定在部署环境中的新表中插入源表(在开发环境中)中的数据时是否可能违反约束条件。
对于应用程序中的每个源表,您必须确定在将其数据插入新表时是否可能违反任何约束条件。如果违反约束条件,则必须先禁用这些约束条件,然后插入数据,最后再尝试重新启用约束条件。如果某个数据项违反约束条件,则直到更正该数据项后才能重新启用该约束条件。
如果您严格按正确的顺序插入查找数据(如“加载数据”),则不会违反约束条件。因此,不需要先将其禁用。
如果要插入外部源 (如文件、电子表格或旧应用程序) 中的数据,或插入包含许多相关数据的表中的数据,则在插入数据之前,请先禁用约束条件。
可以通过以下方式禁用和重新启用约束条件:
-
使用 SQL Developer 一次禁用和重新启用一个约束条件。
-
在“Connections(连接)”框架中,选择相应的表。
-
在标记为表名的窗格中,选择子选项卡约束条件。
-
在表上所有约束条件的列表中,将
ENABLED更改为DISABLED(或相反)。
-
-
编辑安装脚本,添加禁用和重新启用每个约束的 SQL 语句。
-
创建包含禁用和启用每个约束条件的 SQL 语句的 SQL 脚本。
-
在 Oracle 数据库数据字典中找到约束条件,然后创建包含 SQL 语句的 SQL 脚本以禁用和启用每个约束条件。
例如,要找到并启用在“创建表”中的 EVALUATIONS、PERFORMANCE_PARTS 和 SCORES 表中使用的约束条件,请将这些语句输入到工作表:
SELECT 'ALTER TABLE '|| TABLE_NAME || ' DISABLE CONSTRAINT '|| CONSTRAINT_NAME ||';' FROM user_constraints WHERE table_name IN ('EVALUATIONS','PERFORMANCE_PARTS','SCORES'); SELECT 'ALTER TABLE '|| TABLE_NAME || ' ENABLE CONSTRAINT '|| CONSTRAINT_NAME ||';' FROM user_constraints WHERE table_name IN ('EVALUATIONS','PERFORMANCE_PARTS','SCORES');另请参见: