很多时候,需要把开发环境中的应用连同对应的数据库对象(表,索引,视图,序列,触发器等)以及数据一同导入到生产环境中。如果单纯地使用应用地导出(Export),智能导出应用本身,而不能带出数据库对象及数据。下面简单介绍如何导出应用地时候同时带出数据库对象和数据。这里要注意的是,导出的数据在APEX里叫种子数据。每个表最多只能导出10000条记录。
第一步:生成数据库对象安装脚本
在应用开发页面的上部,点击“支持对象”。
在“安装”菜单下选择“安装脚本”。并创建新的安装脚本。
选择“从数据库对象创建”。
选择要生成的安装脚本的数据库对象。这里强烈建议,一类数据库对象单独生成一个安装脚本。
选择需要生成安装脚本的表。建议勾选“Include DDL realated to tables”。这样与所选表相关的索引,触发器等数据库对象也会一并生成。
浏览生成的SQL脚本并做必要的修改。然后点击创建。
第二步:创建数据包
还是在“安装脚本”页面,在最右侧的菜单栏里选择“创建数据包”。
选择要导出的数据表。
确认后点击“完成”,生成数据安装脚本。
第三步:检查安装脚本
1,检查数据库对象安装脚本的顺序。有些数据库对象是有相关依赖的,比如,表的主键ID需要一个序列自动生成,那就需要先安装序列的脚本,然后再安装表的脚本。又如:有主外键约束关系的,必须要安装带主键的表,再安装带外键的表。否则在安装的时候会因为找不到对应的数据库对象而报错。调整脚本安装顺序有两个地方。
通过调整脚本的序列号。点击下图的“名称”列进去,修改每个安装脚本的序列号。序列号越小,越优先导出/导入(执行)。例如,把序列的安装脚本调整到表的安装脚本前面。
点击每个脚本最左边的小铅笔,进入安装脚本编辑界面,调整(编辑)创建数据库对象的执行顺序。
2,检查数据安装包的数据导入顺序。对于有主外键约束的表,必须先导主表数据,再导从表数据。否则会因为主键缺失导致从表数据导入失败。例如下面的master和detail两张表,master要先执行。同样是点击脚本最左边的小铅笔进入编辑界面调整(编辑)数据导入的执行顺序。
另外:如果安装脚本里有触发器的,建议在安装脚本里把触发器DISABLE。避免导入数据的时候引发触发器,导致数据导入失败。
第四步:导出应用
在“导出首选项”里,一定要选择“是,在导入后自动安装”。
这样,导出的SQL脚本里就包括了数据库对象和数据包的安装脚本。在目的工作区直接导入即可。
===========全文结束===========
更多Oracle APEX的知识和技巧,请猛戳下面二维码持续关注微信公众号“APEX中文社区”和“徐大爷的学习笔记”。
APEX中文社区
徐大爷的学习笔记