- 创建指定的包
 SP_CREATE_SYSTEM_PACKAGES用来创建或删除指定的系统包,除了DMGEO、DBMS_JOB、DBMS_WORKLOAD_REPOSITORY和DBMS_SCHEDULER以外。
 语法如下:
 void
SP_CREATE_SYSTEM_PACKAGES (
CREATE_FLAG int,
PKGNAME varchar(128)
)
参数详解
 CREATE_FLAG
 为1时表示创建指定的系统包;为0表示删除这个系统包。
 PKGNAME
 指定要创建的包名。除了DMGEO、DBMS_JOB、DBMS_WORKLOAD_REPOSITORY和DBMS_SCHEDULER以外的系统包。
 返回值 无
 
2.创建所有系统包
 SP_CREATE_SYSTEM_PACKAGES,用来创建或删除除了DMGEO、DBMS_JOB、DBMS_WORKLOAD_REPOSITORY和DBMS_SCHEDULER以外的所有系统包。若在创建过程中某个系统包由于特定原因未能创建成功,会跳过继续创建后续的系统包
 语法如下:
 void
SP_CREATE_SYSTEM_PACKAGES (
CREATE_FLAG int
)
参数详解
 CREATE_FLAG
 为1时表示创建除了DMGEO、DBMS_JOB、DBMS_WORKLOAD_REPOSITORY和DBMS_SCHEDULER以外的所有系统包;为0表示删除这些系统包。
 返回值 无
 创建包
 SP_CREATE_SYSTEM_PACKAGES (1);

删除包
 
在此创建包

时间变短
3.检测系统包是否启用
 SF_CHECK_SYSTEM_PACKAGES
 SF_CHECK_SYSTEM_PACKAGES用来检测系统包的启用状态。是否启用系统包,由是否执行过SP_CREATE_SYSTEM_PACKAGES(1);语句决定,执行过,表示已启用。
 语法如下:
 int
SF_CHECK_SYSTEM_PACKAGES()
 返回值
 0:未启用;1:已启用
 举例说明
 获得系统包的启用状态。
 
默认未启用系统包
SF_CHECK_SYSTEM_PACKAGE(<PACKAGE_NAME>)
 SF_CHECK_SYSTEM_PACKAGE(<PACKAGE_NAME>)可用来检查某个特定的系统包是否启用。
 语法如下:
 int
 SF_CHECK_SYSTEM_PACKAGES(
 PACKAGE_NAME VARCHAR
 )
 返回值 0:未启用;1:已启用
select SF_CHECK_SYSTEM_PACKAGE(‘DEBUG SYSTEM’)
 
包间依赖关系
 部分系统包之间有依赖关系。当用户创建这些系统包的时候,系统也会自动创建它们所依赖的包。被依赖包一旦被删除,依赖包就会失效。
 DBMS_METADATA 依赖 DBMS_LOB,utl_raw;
 DBMS_lob依赖于utl_raw;
 DBMS_alert包依赖于DBMS_lock和DBMS_utility两个包;
 DBMS_WORKLOAD_REPOSTIORY包依赖于UTL_FILE;
DMGEO 系统包
 实现了 SFA 标准(《OpenGIS® Implementation Standard for Geographic information - Simple feature access - Part 2: SQL option》) 中规定的SQL 预定义 schema,基于 SQL UDT(自定义数据类型)的空间数据类型和空间数据类型的初始化,以及针对空间数据类型的几何体计算函数。
用户在使用DMGEO包之前,需要提前调用系统过程SP_INIT_GEO_SYS(1)创建DMGEO包,包创建成功后就可以使用空间数据类型以及包提供的方法。
 SP_INIT_GEO_SYS(1);
 
如果dmgeo包已存在,调用SP_INIT_GEO_SYS(2),系统将只重建dmgeo包方法,而不影响现有的空间数据类型以及数据。
 SP_INIT_GEO_SYS(2);

查看dmgeo的SPATIAL_REF_SYS表
 Select *from SPATIAL_REF_SYS
 
如果dmgeo包已存在,调用SP_INIT_GEO_SYS(3)将只重建SPATIAL_REF_SYS表,而不影响现有的空间数据类型以及数据。
 SP_INIT_GEO_SYS(3);
 
调用系统过程SP_INIT_GEO_SYS(0)可以删除DMGEO包,任何与空间数据类型相关的表、函数、过程、触发器等对象均会被级联删除。
 SP_INIT_GEO_SYS(0);

建议在不需要保留现有空间数据时, 使用下列语句来重建GEO包。
 SP_INIT_GEO_SYS(0);
 SP_INIT_GEO_SYS(1);
 需要保留现有空间数据时, 使用下列语句来重建GEO包。
 SP_INIT_GEO_SYS(3);
 SP_INIT_GEO_SYS(2);
社区地址:https://eco.dameng.com










