暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

数据泵批量导出导入非系统用户数据

原创 Leo 2023-02-19
1287

文档课题:数据泵批量导出导入非系统用户数据 parfile.

1、导出

1.1、字符集

SYS@orcl> select userenv('language') from dual;

 

USERENV('LANGUAGE')

----------------------------------------------------

AMERICAN_AMERICA.AL32UTF8

1.2、建目录

[oracle@leo-11g-ogg ~]$ mkdir -p /home/oracle/dpbak/data/

[oracle@leo-11g-ogg ~]$ mkdir -p /home/oracle/dpbak/logs/

[oracle@leo-11g-ogg ~]$ mkdir scripts

SYS@orcl> create directory pump_dir as '/home/oracle/dpbak/data/';

 

Directory created.

 

SYS@orcl> create directory pump_log as '/home/oracle/dpbak/logs/';

 

Directory created.

1.3、编写parfile

[oracle@leo-11g-ogg scripts]$ pwd

/home/oracle/scripts

[oracle@leo-11g-ogg scripts]$ vi expdpfull.par

添加如下:

job_name=jszx_expdp_full_new2

parallel=16

full=y

filesize=20m

dumpfile=pump_dir:mydb_%U.dat

logfile=pump_log:expdp_11g_log.txt

cluster=N

COMPRESSION=ALL

REUSE_DUMPFILES=Y

exclude=statistics

exclude=schema:"in ('SYSTEM','SYSMAN','WMSYS','OUTLN','DIP','ORACLE_OCM','APPQOSSYS','EXFSYS','XDB','ORDSYS','CTXSYS','ORDDATA','ORDPLUGINS','SI_INFORMTN_SCHEMA','MDSYS','OLAPSYS','MDDATA','SPATIAL_WFS_ADMIN_USR','SPATIAL_CSW_ADMIN_USR','FLOWS_FILES','APEX_PUBLIC_USER','APEX_030200','OWBSYS','OWBSYS_AUDIT','ANONYMOUS','XS$NULL')"

注意:此处未排除ogg用户,导出日志未见ogg数据是因为ogg用户下没有数据,但ogg用户的相关定义会被导出,在导入时要特别注意.

[oracle@leo-11g-ogg scripts]$ vi expdpfull.sh

添加如下:

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db

export ORACLE_SID=orcl

export PATH=$ORACLE_HOME/bin:$PATH

cd /home/oracle/dpbak/data/

rm /home/oracle/dpbak/data/*

expdp \'/ as sysdba \' parfile=/home/oracle/scripts/expdpfull.par

1.4、导出作业

--执行expdp导出作业.

[oracle@leo-11g-ogg scripts]$ nohup ./expdpfull.sh &

[oracle@leo-11g-ogg scripts]$ tail -5000f nohup.out

 

Export: Release 11.2.0.4.0 - Production on Thu Dec 22 14:20:45 2022

 

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

 

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

FLASHBACK automatically enabled to preserve database integrity.

Starting "SYS"."JSZX_EXPDP_FULL_NEW2":  "/******** AS SYSDBA" parfile=/home/oracle/scripts/expdpfull.par

Estimate in progress using BLOCKS method...

Processing object type DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA

Total estimation using BLOCKS method: 21.25 MB

. . exported "SCOTT"."DEPT"                              5.093 KB       5 rows

. . exported "SCOTT"."EMP"                               5.625 KB      14 rows

. . exported "SCOTT"."SALGRADE"                          4.882 KB       5 rows

. . exported "SCOTT"."TESTDDL"                           5.382 KB    1000 rows

. . exported "SCOTT"."BONUS"                                 0 KB       0 rows

. . exported "LEO"."TEST"                                2.062 MB  182306 rows

Processing object type DATABASE_EXPORT/TABLESPACE

Processing object type DATABASE_EXPORT/PROFILE

Processing object type DATABASE_EXPORT/SYS_USER/USER

Processing object type DATABASE_EXPORT/SCHEMA/USER

Processing object type DATABASE_EXPORT/ROLE

Processing object type DATABASE_EXPORT/GRANT/SYSTEM_GRANT/PROC_SYSTEM_GRANT

Processing object type DATABASE_EXPORT/SCHEMA/GRANT/SYSTEM_GRANT

Processing object type DATABASE_EXPORT/SCHEMA/ROLE_GRANT

Processing object type DATABASE_EXPORT/SCHEMA/DEFAULT_ROLE

Processing object type DATABASE_EXPORT/SCHEMA/TABLESPACE_QUOTA

Processing object type DATABASE_EXPORT/RESOURCE_COST

Processing object type DATABASE_EXPORT/TRUSTED_DB_LINK

Processing object type DATABASE_EXPORT/SCHEMA/SEQUENCE/SEQUENCE

Processing object type DATABASE_EXPORT/DIRECTORY/DIRECTORY

Processing object type DATABASE_EXPORT/DIRECTORY/GRANT/OWNER_GRANT/OBJECT_GRANT

Processing object type DATABASE_EXPORT/CONTEXT

Processing object type DATABASE_EXPORT/SCHEMA/SYNONYM

Processing object type DATABASE_EXPORT/SYSTEM_PROCOBJACT/PRE_SYSTEM_ACTIONS/PROCACT_SYSTEM

Processing object type DATABASE_EXPORT/SYSTEM_PROCOBJACT/PROCOBJ

Processing object type DATABASE_EXPORT/SYSTEM_PROCOBJACT/POST_SYSTEM_ACTIONS/PROCACT_SYSTEM

Processing object type DATABASE_EXPORT/SCHEMA/PROCACT_SCHEMA

Processing object type DATABASE_EXPORT/SCHEMA/TABLE/PROCACT_INSTANCE

Processing object type DATABASE_EXPORT/SCHEMA/TABLE/TABLE

Processing object type DATABASE_EXPORT/SCHEMA/PACKAGE/PACKAGE_SPEC

Processing object type DATABASE_EXPORT/SCHEMA/FUNCTION/FUNCTION

Processing object type DATABASE_EXPORT/SCHEMA/PROCEDURE/PROCEDURE

Processing object type DATABASE_EXPORT/SCHEMA/FUNCTION/ALTER_FUNCTION

Processing object type DATABASE_EXPORT/SCHEMA/PROCEDURE/ALTER_PROCEDURE

Processing object type DATABASE_EXPORT/SCHEMA/TABLE/INDEX/INDEX

Processing object type DATABASE_EXPORT/SCHEMA/TABLE/CONSTRAINT/CONSTRAINT

Processing object type DATABASE_EXPORT/SCHEMA/PACKAGE_BODIES/PACKAGE/PACKAGE_BODY

Processing object type DATABASE_EXPORT/SCHEMA/TABLE/CONSTRAINT/REF_CONSTRAINT

Processing object type DATABASE_EXPORT/SCHEMA/POST_SCHEMA/PROCACT_SCHEMA

Processing object type DATABASE_EXPORT/AUDIT

Master table "SYS"."JSZX_EXPDP_FULL_NEW2" successfully loaded/unloaded

******************************************************************************

Dump file set for SYS.JSZX_EXPDP_FULL_NEW2 is:

  /home/oracle/dpbak/data/mydb_01.dat

  /home/oracle/dpbak/data/mydb_02.dat

  /home/oracle/dpbak/data/mydb_03.dat

  /home/oracle/dpbak/data/mydb_04.dat

Job "SYS"."JSZX_EXPDP_FULL_NEW2" successfully completed at Thu Dec 22 14:21:26 2022 elapsed 0 00:00:40

2、导入

2.1、目标端字符集

SQL> select userenv('language') from dual;

 

USERENV('LANGUAGE')

----------------------------------------------------------------------------------------------------

SIMPLIFIED CHINESE_CHINA.AL32UTF8

2.2、dmp文件处理

sftp> lcd C:\Users\Administrator\Desktop\impdp

sftp> cd /home/oracle/dpbak/data

sftp> get *

2.3、执行导入

C:\Users\Administrator>impdp system/oracle_4U@192.168.11.1:1521/orcl directory=impdp_dir dumpfile=mydb_01.dat,mydb_02.dat,mydb_03.dat,mydb_04.dat full=y logfile=impdp.log

 

特别说明:通过上述导出的dmp文件在导入时注意以下,否则会像如下所示告警.

a、导入前设置数据库字符集环境变量.

b、源端导出的用户在目标端要有对应的用户,并且有对应的表空间.

 

Import: Release 19.0.0.0.0 - Production on 星期四 12月 22 14:59:40 2022

Version 19.3.0.0.0

 

Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.

 

连接到: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

已成功加载/卸载了主表 "SYSTEM"."SYS_IMPORT_FULL_01"

已在 AL32UTF8 字符集和 AL16UTF16 NCHAR 字符集中完成导入

已在 AL32UTF8 字符集和 UTF8 NCHAR 字符集中完成导出

警告: 字符集转换过程中可能出现数据丢失情况

启动 "SYSTEM"."SYS_IMPORT_FULL_01":  system/********@192.168.11.1:1521/orcl directory=impdp_dir dumpfile=mydb_01.dat,mydb_02.dat,mydb_03.dat,mydb_04.dat full=y logfile=impdp.log

处理对象类型 DATABASE_EXPORT/TABLESPACE

ORA-31684: 对象类型 TABLESPACE:"UNDOTBS1" 已存在

 

ORA-31684: 对象类型 TABLESPACE:"TEMP" 已存在

 

ORA-31684: 对象类型 TABLESPACE:"USERS" 已存在

 

ORA-39083: 对象类型 TABLESPACE:"LEO_TS" 创建失败, 出现错误:

ORA-01119: 创建数据库文件 '/u01/app/oracle/oradata/orcl/leo_ts01.dbf' 时出错

ORA-27040: 文件创建错误, 无法创建文件

OSD-04002: ???????

O/S-Error: (OS 3) ?????????????????

 

失败的 sql 为:

CREATE TABLESPACE "LEO_TS" DATAFILE '/u01/app/oracle/oradata/orcl/leo_ts01.dbf' SIZE 104857600 AUTOEXTEND ON NEXT 8192 MAXSIZE 32767M LOGGING ONLINE PERMANENT BLOCKSIZE 8192 EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT  NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO

 

处理对象类型 DATABASE_EXPORT/PROFILE

处理对象类型 DATABASE_EXPORT/SYS_USER/USER

ORA-31685: 由于权限不足, 对象类型 USER:"SYS" 失败.失败的 sql 为:

 ALTER USER "SYS" IDENTIFIED BY VALUES 'S:2EBACCE54EE63069670B582E5EDC5C6A500897138AC895D11DD23BF42611;A586E74A0FA6A0BC' TEMPORARY TABLESPACE "TEMP"

 

处理对象类型 DATABASE_EXPORT/SCHEMA/USER

ORA-31684: 对象类型 USER:"MGMT_VIEW" 已存在

 

ORA-39083: 对象类型 USER:"OGG" 创建失败, 出现错误:

ORA-00959: 表空间 'OGG_TBS' 不存在

 

失败的 sql 为:

 CREATE USER "OGG" IDENTIFIED BY VALUES 'S:86AD55F8D7B481B89A327EC59BF8F1F0DBD2158A776AB3DA93A89FA8F43C;9D40CEB03B40836B' DEFAULT TABLESPACE "OGG_TBS" TEMPORARY TABLESPACE "TEMP"

 

ORA-39083: 对象类型 USER:"LEO" 创建失败, 出现错误:

ORA-00959: 表空间 'LEO_TS' 不存在

 

失败的 sql 为:

 CREATE USER "LEO" IDENTIFIED BY VALUES 'S:C5E059443A8718B6A0D350F9239C490C3336ED960D920BEF6CE3C1E3E27A;17343090FE6942BE' DEFAULT TABLESPACE "LEO_TS" TEMPORARY TABLESPACE "TEMP"

 

处理对象类型 DATABASE_EXPORT/ROLE

ORA-31684: 对象类型 ROLE:"SELECT_CATALOG_ROLE" 已存在

 

ORA-31684: 对象类型 ROLE:"EXECUTE_CATALOG_ROLE" 已存在

 

ORA-31684: 对象类型 ROLE:"DBFS_ROLE" 已存在

 

ORA-31684: 对象类型 ROLE:"AQ_ADMINISTRATOR_ROLE" 已存在

 

ORA-31684: 对象类型 ROLE:"AQ_USER_ROLE" 已存在

 

ORA-31684: 对象类型 ROLE:"ADM_PARALLEL_EXECUTE_TASK" 已存在

 

ORA-31684: 对象类型 ROLE:"GATHER_SYSTEM_STATISTICS" 已存在

 

ORA-31684: 对象类型 ROLE:"RECOVERY_CATALOG_OWNER" 已存在

 

ORA-31684: 对象类型 ROLE:"SCHEDULER_ADMIN" 已存在

 

ORA-31684: 对象类型 ROLE:"HS_ADMIN_SELECT_ROLE" 已存在

 

ORA-31684: 对象类型 ROLE:"HS_ADMIN_EXECUTE_ROLE" 已存在

 

ORA-31684: 对象类型 ROLE:"HS_ADMIN_ROLE" 已存在

 

ORA-31684: 对象类型 ROLE:"GLOBAL_AQ_USER_ROLE" 已存在

 

ORA-31684: 对象类型 ROLE:"OEM_ADVISOR" 已存在

 

ORA-31684: 对象类型 ROLE:"OEM_MONITOR" 已存在

 

ORA-31684: 对象类型 ROLE:"WM_ADMIN_ROLE" 已存在

 

ORA-31684: 对象类型 ROLE:"JAVAUSERPRIV" 已存在

 

ORA-31684: 对象类型 ROLE:"JAVAIDPRIV" 已存在

 

ORA-31684: 对象类型 ROLE:"JAVASYSPRIV" 已存在

 

ORA-31684: 对象类型 ROLE:"JAVADEBUGPRIV" 已存在

 

ORA-31684: 对象类型 ROLE:"EJBCLIENT" 已存在

 

ORA-31684: 对象类型 ROLE:"JMXSERVER" 已存在

 

ORA-31684: 对象类型 ROLE:"JAVA_ADMIN" 已存在

 

ORA-31684: 对象类型 ROLE:"JAVA_DEPLOY" 已存在

 

ORA-31684: 对象类型 ROLE:"CTXAPP" 已存在

 

ORA-31684: 对象类型 ROLE:"XDBADMIN" 已存在

 

ORA-31684: 对象类型 ROLE:"XDB_SET_INVOKER" 已存在

 

ORA-31684: 对象类型 ROLE:"AUTHENTICATEDUSER" 已存在

 

ORA-31684: 对象类型 ROLE:"XDB_WEBSERVICES" 已存在

 

ORA-31684: 对象类型 ROLE:"XDB_WEBSERVICES_WITH_PUBLIC" 已存在

 

ORA-31684: 对象类型 ROLE:"XDB_WEBSERVICES_OVER_HTTP" 已存在

 

ORA-31684: 对象类型 ROLE:"ORDADMIN" 已存在

 

ORA-31684: 对象类型 ROLE:"CWM_USER" 已存在

 

ORA-31684: 对象类型 ROLE:"SPATIAL_WFS_ADMIN" 已存在

 

ORA-31684: 对象类型 ROLE:"WFS_USR_ROLE" 已存在

 

ORA-31684: 对象类型 ROLE:"SPATIAL_CSW_ADMIN" 已存在

 

ORA-31684: 对象类型 ROLE:"CSW_USR_ROLE" 已存在

 

ORA-31684: 对象类型 ROLE:"MGMT_USER" 已存在

 

ORA-31684: 对象类型 ROLE:"APEX_ADMINISTRATOR_ROLE" 已存在

 

ORA-31684: 对象类型 ROLE:"OWB$CLIENT" 已存在

 

ORA-31684: 对象类型 ROLE:"OWB_DESIGNCENTER_VIEW" 已存在

 

ORA-31684: 对象类型 ROLE:"OWB_USER" 已存在

 

处理对象类型 DATABASE_EXPORT/GRANT/SYSTEM_GRANT/PROC_SYSTEM_GRANT

ORA-39083: 对象类型 PROC_SYSTEM_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

BEGIN

SYS.DBMS_AQADM.GRANT_SYSTEM_PRIVILEGE('MANAGE_ANY','"OGG"',TRUE);COMMIT; END;

 

ORA-39083: 对象类型 PROC_SYSTEM_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

BEGIN

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_EVALUATION_CONTEXT_OBJ, '"AQ_ADMINISTRATOR_ROLE"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_EVALUATION_CONTEXT_OBJ, '"OGG"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_EVALUATION_CONTEXT_OBJ, '"ALINA"',TRUE);

COMMIT; END;

 

ORA-39083: 对象类型 PROC_SYSTEM_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

BEGIN

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_RULE_OBJ, '"AQ_ADMINISTRATOR_ROLE"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_RULE_OBJ, '"OGG"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_RULE_OBJ, '"ALINA"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_ANY_RULE, '"OGG"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_ANY_RULE, '"ALINA"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.ALTER_ANY_RULE, '"OGG"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.ALTER_ANY_RULE, '"ALINA"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.EXECUTE_ANY_RULE, '"OGG"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.EXECUTE_ANY_RULE, '"ALINA"',TRUE);

COMMIT; END;

 

ORA-39083: 对象类型 PROC_SYSTEM_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

BEGIN

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_RULE_SET_OBJ, '"AQ_ADMINISTRATOR_ROLE"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_RULE_SET_OBJ, '"OGG"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_RULE_SET_OBJ, '"ALINA"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_ANY_RULE_SET, '"OGG"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_ANY_RULE_SET, '"ALINA"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.ALTER_ANY_RULE_SET, '"OGG"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.ALTER_ANY_RULE_SET, '"ALINA"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.EXECUTE_ANY_RULE_SET, '"OGG"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.EXECUTE_ANY_RULE_SET, '"ALINA"',TRUE);

COMMIT; END;

 

ORA-39083: 对象类型 PROC_SYSTEM_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

BEGIN

SYS.DBMS_AQADM.GRANT_SYSTEM_PRIVILEGE('MANAGE_ANY','"OGG"',TRUE);COMMIT; END;

 

ORA-39083: 对象类型 PROC_SYSTEM_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

BEGIN

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_EVALUATION_CONTEXT_OBJ, '"AQ_ADMINISTRATOR_ROLE"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_EVALUATION_CONTEXT_OBJ, '"OGG"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_EVALUATION_CONTEXT_OBJ, '"ALINA"',TRUE);

COMMIT; END;

 

ORA-39083: 对象类型 PROC_SYSTEM_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

BEGIN

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_RULE_OBJ, '"AQ_ADMINISTRATOR_ROLE"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_RULE_OBJ, '"OGG"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_RULE_OBJ, '"ALINA"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_ANY_RULE, '"OGG"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_ANY_RULE, '"ALINA"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.ALTER_ANY_RULE, '"OGG"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.ALTER_ANY_RULE, '"ALINA"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.EXECUTE_ANY_RULE, '"OGG"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.EXECUTE_ANY_RULE, '"ALINA"',TRUE);

COMMIT; END;

 

ORA-39083: 对象类型 PROC_SYSTEM_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

BEGIN

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_RULE_SET_OBJ, '"AQ_ADMINISTRATOR_ROLE"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_RULE_SET_OBJ, '"OGG"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_RULE_SET_OBJ, '"ALINA"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_ANY_RULE_SET, '"OGG"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_ANY_RULE_SET, '"ALINA"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.ALTER_ANY_RULE_SET, '"OGG"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.ALTER_ANY_RULE_SET, '"ALINA"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.EXECUTE_ANY_RULE_SET, '"OGG"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.EXECUTE_ANY_RULE_SET, '"ALINA"',TRUE);

COMMIT; END;

 

ORA-39126: 在 KUPW$WORKER.SEND_TRACE_MSG [KUPW: ORA-39083: 对象类型 PROC_SYSTEM_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

BEGIN

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_RULE_SET_OBJ, '"AQ_ADMINISTRATOR_ROLE"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_RULE_SET_OBJ, '"OGG"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_RULE_SET_OBJ, '"ALINA"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_ANY_RULE_SET, '"OGG"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_ANY_RULE_SET, '"ALINA"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.ALTER_ANY_RULE_SET, '"OGG"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.ALTER_ANY_RULE_SET, '"ALINA"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.EXECUTE_ANY_RULE_SET, '"OGG"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.EXECUTE_ANY_RULE_SET, '"ALINA"',TRUE);

COMMIT; END;

] 中 Worker 发生意外致命错误

PROC_SYSTEM_GRANT

ORA-06502: PL/SQL: 数字或值错误 :  字符串缓冲区太小

 

ORA-06512: 在 "SYS.DBMS_SYS_ERROR", line 105

ORA-06512: 在 "SYS.KUPW$WORKER", line 12620

ORA-06512: 在 "SYS.DBMS_SYS_ERROR", line 105

ORA-06512: 在 "SYS.KUPW$WORKER", line 34278

 

----- PL/SQL Call Stack -----

  object      line  object

  handle    number  name

00007FF97F7656C0     33476  package body SYS.KUPW$WORKER.WRITE_ERROR_INFORMATION

00007FF97F7656C0     12641  package body SYS.KUPW$WORKER.DETERMINE_FATAL_ERROR

00007FF97F7656C0     34341  package body SYS.KUPW$WORKER.SEND_TRACE_MSG

00007FF97F7656C0     28767  package body SYS.KUPW$WORKER.SEND_MSG

00007FF97F7656C0      5418  package body SYS.KUPW$WORKER.LOAD_METADATA

00007FF97F7656C0     13781  package body SYS.KUPW$WORKER.DISPATCH_WORK_ITEMS

00007FF97F7656C0      2429  package body SYS.KUPW$WORKER.MAIN

00007FF97F76B538         2  anonymous block

 

KUPW: In procedure UPDATE_TYPE_COMPLETION_ROW

KUPW: Old Seqno: 38 New Path:  PO Num: -6 New Seqno: 0 error count: 1

KUPW: Primary row is: FALSE

KUPW: Working on old seqno with count of: 5

KUPW: In procedure SEND_MSG. Fatal=0

KUPW: Error count: 4

KUPW: ORA-39083: 对象类型 PROC_SYSTEM_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

BEGIN

SYS.DBMS_AQADM.GRANT_SYSTEM_PRIVILEGE('MANAGE_ANY','"OGG"',TRUE);COMMIT; END;

 

KUPW: ORA-39083: 对象类型 PROC_SYSTEM_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

BEGIN

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_EVALUATION_CONTEXT_OBJ, '"AQ_ADMINISTRATOR_ROLE"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_EVALUATION_CONTEXT_OBJ, '"OGG"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_EVALUATION_CONTEXT_OBJ, '"ALINA"',TRUE);

COMMIT; END;

 

KUPW: ORA-39083: 对象类型 PROC_SYSTEM_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

BEGIN

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_RULE_OBJ, '"AQ_ADMINISTRATOR_ROLE"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_RULE_OBJ, '"OGG"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_RULE_OBJ, '"ALINA"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_ANY_RULE, '"OGG"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.CREATE_ANY_RULE, '"ALINA"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.ALTER_ANY_RULE, '"OGG"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.ALTER_ANY_RULE, '"ALINA"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.EXECUTE_ANY_RULE, '"OGG"',TRUE);

 

SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(SYS.DBMS_RULE_ADM.EXECUTE_ANY_RULE, '"ALINA"',TRUE);

COMMIT; END;

 

KUPW: In procedure DETERMINE_FATAL_ERROR with ORA-06502: PL/SQL: 数字或值错误 :  字符串缓冲区太小

 

处理对象类型 DATABASE_EXPORT/SCHEMA/GRANT/SYSTEM_GRANT

ORA-39083: 对象类型 SYSTEM_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

GRANT SELECT ANY TRANSACTION TO "OGG"

 

ORA-39083: 对象类型 SYSTEM_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

GRANT FLASHBACK ANY TABLE TO "OGG"

 

ORA-39083: 对象类型 SYSTEM_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

GRANT SELECT ANY DICTIONARY TO "OGG"

 

ORA-39083: 对象类型 SYSTEM_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

GRANT DROP ANY DIRECTORY TO "OGG"

 

ORA-39083: 对象类型 SYSTEM_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

GRANT CREATE ANY DIRECTORY TO "OGG"

 

ORA-39083: 对象类型 SYSTEM_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

GRANT CREATE SEQUENCE TO "OGG"

 

ORA-39083: 对象类型 SYSTEM_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

GRANT SELECT ANY TABLE TO "OGG"

 

ORA-39083: 对象类型 SYSTEM_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

GRANT ALTER ANY TABLE TO "OGG"

 

ORA-39083: 对象类型 SYSTEM_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

GRANT CREATE TABLE TO "OGG"

 

ORA-39083: 对象类型 SYSTEM_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

GRANT BECOME USER TO "OGG"

 

ORA-39083: 对象类型 SYSTEM_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

GRANT UNLIMITED TABLESPACE TO "OGG"

 

ORA-39083: 对象类型 SYSTEM_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

GRANT RESTRICTED SESSION TO "OGG"

 

ORA-39083: 对象类型 SYSTEM_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

GRANT ALTER SESSION TO "OGG"

 

ORA-39083: 对象类型 SYSTEM_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

GRANT CREATE SESSION TO "OGG"

 

ORA-39083: 对象类型 SYSTEM_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'LEO' 不存在

 

失败的 sql 为:

GRANT UNLIMITED TABLESPACE TO "LEO"

 

处理对象类型 DATABASE_EXPORT/SCHEMA/ROLE_GRANT

ORA-39083: 对象类型 ROLE_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

 GRANT "CONNECT" TO "OGG"

 

ORA-39083: 对象类型 ROLE_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

 GRANT "RESOURCE" TO "OGG"

 

ORA-39083: 对象类型 ROLE_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

 GRANT "SELECT_CATALOG_ROLE" TO "OGG"

 

ORA-39083: 对象类型 ROLE_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

 GRANT "DBA" TO "OGG"

 

ORA-39083: 对象类型 ROLE_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

 GRANT "GGS_GGSUSER_ROLE" TO "OGG"

 

ORA-39083: 对象类型 ROLE_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'LEO' 不存在

 

失败的 sql 为:

 GRANT "CONNECT" TO "LEO"

 

ORA-39083: 对象类型 ROLE_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'LEO' 不存在

 

失败的 sql 为:

 GRANT "RESOURCE" TO "LEO"

 

处理对象类型 DATABASE_EXPORT/SCHEMA/DEFAULT_ROLE

ORA-39083: 对象类型 DEFAULT_ROLE:"OGG" 创建失败, 出现错误:

ORA-01918: 用户 'OGG' 不存在

 

失败的 sql 为:

 ALTER USER "OGG" DEFAULT ROLE ALL

 

ORA-39083: 对象类型 DEFAULT_ROLE:"LEO" 创建失败, 出现错误:

ORA-01918: 用户 'LEO' 不存在

 

失败的 sql 为:

 ALTER USER "LEO" DEFAULT ROLE ALL

 

处理对象类型 DATABASE_EXPORT/SCHEMA/TABLESPACE_QUOTA

ORA-39083: 对象类型 TABLESPACE_QUOTA:"LEO" 创建失败, 出现错误:

ORA-01918: 用户 'LEO' 不存在

 

失败的 sql 为:

DECLARE   TEMP_COUNT NUMBER;   SQLSTR VARCHAR2(200); BEGIN   SQLSTR := 'ALTER USER "LEO" QUOTA UNLIMITED ON "LEO_TS"';  EXECUTE IMMEDIATE SQLSTR;EXCEPTION   WHEN OTHERS THEN    IF SQLCODE = -30041 THEN       SQLSTR := 'SELECT COUNT(*) FROM USER_TABLESPACES               WHERE TABLESPACE_NAME = ''LEO_TS'' AND CONTENTS = ''TEMPORARY''';      EXECUTE IMMEDIATE SQLSTR INTO TEMP_COUNT;      IF TEMP_COUNT = 1 THEN RETURN;       ELSE RAISE;       END IF;    ELSE      RAISE;    END IF;END;

 

处理对象类型 DATABASE_EXPORT/RESOURCE_COST

处理对象类型 DATABASE_EXPORT/TRUSTED_DB_LINK

处理对象类型 DATABASE_EXPORT/SCHEMA/SEQUENCE/SEQUENCE

ORA-39083: 对象类型 SEQUENCE:"OGG"."GGS_MARKER_SEQ" 创建失败, 出现错误:

ORA-01917: 用户或角色 '' 不存在

 

失败的 sql 为:

 CREATE SEQUENCE  "OGG"."GGS_MARKER_SEQ"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 4501 CACHE 500 NOORDER  CYCLE  NOKEEP  NOSCALE  GLOBAL

 

ORA-39083: 对象类型 SEQUENCE:"OGG"."GGS_DDL_SEQ" 创建失败, 出现错误:

ORA-01917: 用户或角色 '' 不存在

 

失败的 sql 为:

 CREATE SEQUENCE  "OGG"."GGS_DDL_SEQ"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 4001 CACHE 500 NOORDER  CYCLE  NOKEEP  NOSCALE  GLOBAL

 

处理对象类型 DATABASE_EXPORT/DIRECTORY/DIRECTORY

ORA-31684: 对象类型 DIRECTORY:"DATA_PUMP_DIR" 已存在

 

ORA-31684: 对象类型 DIRECTORY:"XMLDIR" 已存在

 

处理对象类型 DATABASE_EXPORT/DIRECTORY/GRANT/OWNER_GRANT/OBJECT_GRANT

ORA-39083: 对象类型 OBJECT_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

GRANT WRITE ON DIRECTORY "GGS_DDL_TRACE" TO "OGG" WITH GRANT OPTION

 

ORA-39083: 对象类型 OBJECT_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

GRANT READ ON DIRECTORY "GGS_DDL_TRACE" TO "OGG" WITH GRANT OPTION

 

ORA-39083: 对象类型 OBJECT_GRANT 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

GRANT EXECUTE ON DIRECTORY "GGS_DDL_TRACE" TO "OGG" WITH GRANT OPTION

 

处理对象类型 DATABASE_EXPORT/CONTEXT

ORA-31684: 对象类型 CONTEXT:"GLOBAL_AQCLNTDB_CTX" 已存在

 

ORA-31684: 对象类型 CONTEXT:"DBFS_CONTEXT" 已存在

 

ORA-31684: 对象类型 CONTEXT:"REGISTRY$CTX" 已存在

 

ORA-31684: 对象类型 CONTEXT:"LT_CTX" 已存在

 

ORA-31684: 对象类型 CONTEXT:"DR$APPCTX" 已存在

 

ORA-31684: 对象类型 CONTEXT:"EM_USER_CONTEXT" 已存在

 

ORA-31684: 对象类型 CONTEXT:"STORAGE_CONTEXT" 已存在

 

处理对象类型 DATABASE_EXPORT/SCHEMA/SYNONYM

ORA-31684: 对象类型 SYNONYM:"APEX_030200"."OWA_UTIL" 已存在

 

ORA-31684: 对象类型 SYNONYM:"APEX_030200"."OWA_COOKIE" 已存在

 

ORA-31684: 对象类型 SYNONYM:"APEX_030200"."HTP" 已存在

 

ORA-31684: 对象类型 SYNONYM:"APEX_030200"."HTF" 已存在

 

ORA-31684: 对象类型 SYNONYM:"APEX_030200"."UTL_ENCODE" 已存在

 

ORA-31684: 对象类型 SYNONYM:"APEX_030200"."UTL_FILE" 已存在

 

ORA-31684: 对象类型 SYNONYM:"APEX_030200"."UTL_HTTP" 已存在

 

ORA-31684: 对象类型 SYNONYM:"APEX_030200"."UTL_RAW" 已存在

 

ORA-31684: 对象类型 SYNONYM:"APEX_030200"."UTL_SMTP" 已存在

 

ORA-31684: 对象类型 SYNONYM:"APEX_030200"."UTL_URL" 已存在

 

ORA-31684: 对象类型 SYNONYM:"APEX_030200"."DBA_ARGUMENTS" 已存在

 

处理对象类型 DATABASE_EXPORT/SYSTEM_PROCOBJACT/PRE_SYSTEM_ACTIONS/PROCACT_SYSTEM

ORA-39083: 对象类型 PROCACT_SYSTEM 创建失败, 出现错误:

ORA-20000: Incompatible version of Workspace Manager Installed

 

失败的 sql 为:

BEGIN

declare ver varchar2(100) ; cnt integer ; dummy integer; vdummy varchar2(30) ; compile_exception EXCEPTION; PRAGMA EXCEPTION_INIT(compile_exception, -06550); invalid_table EXCEPTION; PRAGMA EXCEPTION_INIT(invalid_table, -00942); procedure createErrorProc is begin execute immediate 'create or replace function system.wm$_check_install return boolean is begin return true ; end;' ; end ; begin select status into vdummy from dba_registry where comp_id = 'OWM' ; if (vdummy not in ('VALID', 'UPGRADED', 'LOADED')) then raise compile_exception ; end if ; select 1 into dummy from dual where exists (select 1 from all_users where username = 'WMSYS') ; execute immediate 'create or replace function wmsys.wm$_old_version return varchar2 is begin return ''11.2.0.4.0'' ; end;' ; select count(*) into cnt from dba_procedures where object_name='LT_EXPORT_PKG' and procedure_name='IMPORTEXPORTSUPPORT'; if (cnt=0) then raise_application_error(-20000, 'Incompatible version of Workspace Manager Installed'); end if ; execute immediate 'select value from wmsys.wm$env_vars where name=''OWM_VERSION''' into ver ; if (0>0 and ver != '11.2.0.4.0') then raise_application_error(-20000, 'Unable to import due to one or more versioned tables not having a ''VERSIONED'' status'); end if ; execute immediate 'declare cnt integer ; begin select count(*) into cnt from (select workspace from wmsys.wm$version_hierarchy_table where version!=0 union all select table_name from wmsys.wm$versioned_tables) ; if (cnt>0)

 

ORA-39083: 对象类型 PROCACT_SYSTEM 创建失败, 出现错误:

ORA-20000: Incompatible version of Workspace Manager Installed

 

失败的 sql 为:

BEGIN

declare ver varchar2(100) ; cnt integer ; dummy integer; vdummy varchar2(30) ; compile_exception EXCEPTION; PRAGMA EXCEPTION_INIT(compile_exception, -06550); invalid_table EXCEPTION; PRAGMA EXCEPTION_INIT(invalid_table, -00942); procedure createErrorProc is begin execute immediate 'create or replace function system.wm$_check_install return boolean is begin return true ; end;' ; end ; begin select status into vdummy from dba_registry where comp_id = 'OWM' ; if (vdummy not in ('VALID', 'UPGRADED', 'LOADED')) then raise compile_exception ; end if ; select 1 into dummy from dual where exists (select 1 from all_users where username = 'WMSYS') ; execute immediate 'create or replace function wmsys.wm$_old_version return varchar2 is begin return ''11.2.0.4.0'' ; end;' ; select count(*) into cnt from dba_procedures where object_name='LT_EXPORT_PKG' and procedure_name='IMPORTEXPORTSUPPORT'; if (cnt=0) then raise_application_error(-20000, 'Incompatible version of Workspace Manager Installed'); end if ; execute immediate 'select value from wmsys.wm$env_vars where name=''OWM_VERSION''' into ver ; if (0>0 and ver != '11.2.0.4.0') then raise_application_error(-20000, 'Unable to import due to one or more versioned tables not having a ''VERSIONED'' status'); end if ; execute immediate 'declare cnt integer ; begin select count(*) into cnt from (select workspace from wmsys.wm$version_hierarchy_table where version!=0 union all select table_name from wmsys.wm$versioned_tables) ; if (cnt>0)

 

ORA-39126: 在 KUPW$WORKER.SEND_TRACE_MSG [KUPW: ORA-39083: 对象类型 PROCACT_SYSTEM 创建失败, 出现错误:

ORA-20000: Incompatible version of Workspace Manager Installed

 

失败的 sql 为:

BEGIN

declare ver varchar2(100) ; cnt integer ; dummy integer; vdummy varchar2(30) ; compile_exception EXCEPTION; PRAGMA EXCEPTION_INIT(compile_exception, -06550); invalid_table EXCEPTION; PRAGMA EXCEPTION_INIT(invalid_table, -00942); procedure createErrorProc is begin execute immediate 'create or replace function system.wm$_check_install return boolean is begin return true ; end;' ; end ; begin select status into vdummy from dba_registry where comp_id = 'OWM' ; if (vdummy not in ('VALID', 'UPGRADED', 'LOADED')) then raise compile_exception ; end if ; select 1 into dummy from dual where exists (select 1 from all_users where username = 'WMSYS') ; execute immediate 'create or replace function wmsys.wm$_old_version return varchar2 is begin return ''11.2.0.4.0'' ; end;' ; select count(*) into cnt from dba_procedures where object_name='LT_EXPORT_PKG' and procedure_name='IMPORTEXPORTSUPPORT'; if (cnt=0) then raise_application_error(-20000, 'Incompatible version of Workspace Manager Installed'); end if ; execute immediate 'select value from wmsys.wm$env_vars where name=''OWM_VERSION''' into ver ; if (0>0 and ver != '11.2.0.4.0') then raise_application_error(-20000, 'Unable to import due to one or more versioned tables not having a ''VERSIONED'' status'); end if ; execute immediate 'declare cnt integer ; begin select count(*) into cnt from (select workspace from wmsys.wm$version_hierarchy_table where version!=0 union all select table_name from wmsys.wm$versioned_tables) ; if (cnt>0)

] 中 Worker 发生意外致命错误

PROCACT_SYSTEM

ORA-06502: PL/SQL: 数字或值错误 :  字符串缓冲区太小

 

ORA-06512: 在 "SYS.DBMS_SYS_ERROR", line 105

ORA-06512: 在 "SYS.KUPW$WORKER", line 12620

ORA-06512: 在 "SYS.DBMS_SYS_ERROR", line 105

ORA-06512: 在 "SYS.KUPW$WORKER", line 34278

 

----- PL/SQL Call Stack -----

  object      line  object

  handle    number  name

00007FF97F7656C0     33476  package body SYS.KUPW$WORKER.WRITE_ERROR_INFORMATION

00007FF97F7656C0     12641  package body SYS.KUPW$WORKER.DETERMINE_FATAL_ERROR

00007FF97F7656C0     34341  package body SYS.KUPW$WORKER.SEND_TRACE_MSG

00007FF97F7656C0     28767  package body SYS.KUPW$WORKER.SEND_MSG

00007FF97F7656C0      5418  package body SYS.KUPW$WORKER.LOAD_METADATA

00007FF97F7656C0     13781  package body SYS.KUPW$WORKER.DISPATCH_WORK_ITEMS

00007FF97F7656C0      2429  package body SYS.KUPW$WORKER.MAIN

00007FF97F76B538         2  anonymous block

 

DBMS_LOB.TRIM

DBMS_LOB.FREETEMPORARY

DBMS_LOB.FREETEMPORARY

KUPW: In procedure UPDATE_TYPE_COMPLETION_ROW

KUPW: Old Seqno: 108 New Path:  PO Num: -6 New Seqno: 0 error count: 1

KUPW: Primary row is: FALSE

KUPW: Working on old seqno with count of: 4

KUPW: In procedure SEND_MSG. Fatal=0

KUPW: Error count: 1

KUPW: In procedure DETERMINE_FATAL_ERROR with ORA-06502: PL/SQL: 数字或值错误 :  字符串缓冲区太小

 

处理对象类型 DATABASE_EXPORT/SYSTEM_PROCOBJACT/PROCOBJ

处理对象类型 DATABASE_EXPORT/SYSTEM_PROCOBJACT/POST_SYSTEM_ACTIONS/PROCACT_SYSTEM

ORA-39083: 对象类型 PROCACT_SYSTEM 创建失败, 出现错误:

ORA-29371: 暂挂区未激活

 

失败的 sql 为:

BEGIN

dbms_resource_manager.set_consumer_group_mapping_pri(1,7,6,9,8,10,5,4,3,2,11);

dbms_resource_manager.set_consumer_group_mapping('ORACLE_USER','"SYSTEM"','SYS_GROUP');

dbms_resource_manager.set_consumer_group_mapping('ORACLE_USER','"SYS"','SYS_GROUP');

dbms_resource_manager.set_consumer_group_mapping('ORACLE_FUNCTION','"BACKUP"','BATCH_GROUP');

dbms_resource_manager.set_consumer_group_mapping('ORACLE_FUNCTION','"COPY"','BATCH_GROUP');

dbms_resource_manager.set_consumer_group_mapping('ORACLE_FUNCTION','"DATALOAD"','ETL_GROUP');

dbms_resource_manager.submit_pending_area;COMMIT; END;

 

ORA-39083: 对象类型 PROCACT_SYSTEM 创建失败, 出现错误:

ORA-01917: 用户或角色 'OGG' 不存在

 

失败的 sql 为:

BEGIN

SYS.DBMS_UTILITY.EXEC_DDL_STATEMENT('GRANT EXECUTE ON DBMS_AQADM TO "OGG"');COMMIT; END;

 

处理对象类型 DATABASE_EXPORT/SCHEMA/PROCACT_SCHEMA

ORA-39083: 对象类型 PROCACT_SCHEMA 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

BEGIN

sys.dbms_logrep_imp.instantiate_schema(schema_name=>SYS_CONTEXT('USERENV','CURRENT_SCHEMA'), export_db_name=>'ORCL', inst_scn=>'2991859');COMMIT; END;

 

ORA-39083: 对象类型 PROCACT_SCHEMA 创建失败, 出现错误:

ORA-31625: 必须有方案 LEO 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

BEGIN

sys.dbms_logrep_imp.instantiate_schema(schema_name=>SYS_CONTEXT('USERENV','CURRENT_SCHEMA'), export_db_name=>'ORCL', inst_scn=>'2991859');COMMIT; END;

 

处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/PROCACT_INSTANCE

处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/TABLE

ORA-39083: 对象类型 TABLE:"LEO"."TEST" 创建失败, 出现错误:

ORA-00959: 表空间 'LEO_TS' 不存在

 

失败的 sql 为:

CREATE TABLE "LEO"."TEST" ("OWNER" VARCHAR2(30 BYTE), "OBJECT_NAME" VARCHAR2(128 BYTE), "SUBOBJECT_NAME" VARCHAR2(30 BYTE), "OBJECT_ID" NUMBER, "DATA_OBJECT_ID" NUMBER, "OBJECT_TYPE" VARCHAR2(19 BYTE), "CREATED" DATE, "LAST_DDL_TIME" DATE, "TIMESTAMP" VARCHAR2(19 BYTE), "STATUS" VARCHAR2(7 BYTE), "TEMPORARY" VARCHAR2(1 BYTE), "GENERATED" VARCHAR2(1 BYTE), "SECONDARY" VARCHAR2(1 BYTE), "NAMESPACE" NUMBER, "EDITION_NAME" VARCHAR2(30 BYTE)) SEGMENT CREATION IMMEDIATE PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255  NOCOMPRESS LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "LEO_TS"

 

ORA-39083: 对象类型 TABLE:"OGG"."GGS_STICK" 创建失败, 出现错误:

ORA-01918: 用户 'OGG' 不存在

 

失败的 sql 为:

CREATE GLOBAL TEMPORARY TABLE "OGG"."GGS_STICK" ("PROPERTY" VARCHAR2(400 BYTE) NOT NULL ENABLE, "VALUE" VARCHAR2(400 BYTE)) ON COMMIT PRESERVE ROWS

 

ORA-39083: 对象类型 TABLE:"OGG"."GGS_TEMP_UK" 创建失败, 出现错误:

ORA-01918: 用户 'OGG' 不存在

 

失败的 sql 为:

CREATE GLOBAL TEMPORARY TABLE "OGG"."GGS_TEMP_UK" ("SEQNO" NUMBER NOT NULL ENABLE, "KEYNAME" VARCHAR2(400 BYTE), "COLNAME" VARCHAR2(400 BYTE), "NULLABLE" NUMBER, "VIRTUAL" NUMBER, "UDT" NUMBER, "ISSYS" NUMBER) ON COMMIT PRESERVE ROWS

 

ORA-39083: 对象类型 TABLE:"OGG"."GGS_TEMP_COLS" 创建失败, 出现错误:

ORA-01918: 用户 'OGG' 不存在

 

失败的 sql 为:

CREATE GLOBAL TEMPORARY TABLE "OGG"."GGS_TEMP_COLS" ("SEQNO" NUMBER NOT NULL ENABLE, "COLNAME" VARCHAR2(400 BYTE), "NULLABLE" NUMBER, "VIRTUAL" NUMBER, "UDT" NUMBER, "ISSYS" NUMBER) ON COMMIT PRESERVE ROWS

 

处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA

. . 导入了 "SCOTT"."DEPT"                              5.093 KB       5 行

. . 导入了 "SCOTT"."EMP"                               5.625 KB      14 行

. . 导入了 "SCOTT"."SALGRADE"                          4.882 KB       5 行

. . 导入了 "SCOTT"."TESTDDL"                           5.382 KB    1000 行

. . 导入了 "SCOTT"."BONUS"                                 0 KB       0 行

处理对象类型 DATABASE_EXPORT/SCHEMA/PACKAGE/PACKAGE_SPEC

ORA-39083: 对象类型 PACKAGE 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE PACKAGE        DDLVersionSpecific AS

 

CURSOR uk_curs (powner IN VARCHAR2, ptable IN VARCHAR2) IS

    SELECT key.key_name index_name,

                    key.column_name,

                    key.descend

              FROM (SELECT c.constraint_name key_name,

                            c.column_name column_name,

                            c.position position,

                            'ASC' descend

                    FROM dba_cons_columns c

                    WHERE c.owner = powner

                        AND c.table_name = ptable

                        AND c.constraint_name = (

                              SELECT MIN(con1.name) FROM

                                     sys.user$ user1,

                                     sys.user$ user2,

                                     sys.cdef$ cdef,

                                     sys.con$ con1,

                                     sys.con$ con2,

                                     sys.obj$ obj1,

                                     sys.obj$ obj2

                               WHERE user1.name = powner

                                 AND obj1.name = ptable

                                 AND cdef.type# = 3

                                 AND bitand(cdef.defer, 4) = 4

                                 AND cdef.enabled is NOT NULL

                                 AND con2.owner# = user2.user#(+)

                                 AND cdef.robj# = obj2.obj#(+)

                                 AND cdef.rcon# = con2.con#

 

ORA-39083: 对象类型 PACKAGE 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE PACKAGE        DDLReplication AS

 

    /*

    Note about naming convention for constants:

    MD (metadata) constants

    MK (marker) constants

    NOTE: constant strings can be of any length up to 9(for example 'A1' or 'B2')

    NOTE: constant string cannot start with a digit

    NOTE: constant string cannot contain comma

    they are shortened to one byte or two bytes to produce less bulky output and save space in history tables

    */

 

    -- metadata columns

    -- IMPORTANT: when adding new ones, add them to tracing reporting routines

    MD_TAB_USERID CONSTANT VARCHAR2 (3) := 'A1';

    MD_COL_NAME CONSTANT VARCHAR2 (3) := 'A2';

    MD_COL_NUM CONSTANT VARCHAR2 (3) := 'A3';

    MD_COL_SEGCOL CONSTANT VARCHAR2 (3) := 'A4';

    MD_COL_TYPE CONSTANT VARCHAR2 (3) := 'A5';

    MD_COL_LEN CONSTANT VARCHAR2 (3) := 'A6';

    MD_COL_ISNULL CONSTANT VARCHAR2 (3) := 'A7';

    MD_COL_PREC CONSTANT VARCHAR2 (3) := 'A8';

    MD_COL_SCALE CONSTANT VARCHAR2 (3) := 'A9';

    MD_COL_CHARSETID CONSTANT VARCHAR2 (3) := 'B1';

    MD_COL_CHARSETFORM CONSTANT VARCHAR2 (3) := 'A';

    MD_COL_ALT_NAME CONSTANT VARCHAR2 (3) := 'C';

    MD_COL_ALT_TYPE CONSTANT VARCHAR2 (3) := 'D';

    MD_COL_ALT_PREC CONSTANT VARCHAR2 (3) := 'E';

    MD_COL_ALT_CHAR_USED CONSTANT VARCHAR2 (3) := 'F';

    MD_COL_ALT_XML_TYPE CONSTANT VARCHAR2 (3) := 'G';

    MD_TAB_COLCOUNT CONSTANT VARCHAR2 (3) := 'H';

    MD_TAB_DATAOBJECTID CONSTANT VARCHAR2 (3) := 'I';

    MD_TAB_CLUCOLS CONSTANT VARCHAR2 (3) := 'J';

 

 

ORA-39083: 对象类型 PACKAGE 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE PACKAGE       DDLAux AS

 

  TB_IOT CONSTANT NUMBER := 960;

  TB_CLUSTER CONSTANT NUMBER := 1024;

  TB_NESTED CONSTANT NUMBER := 8192;

  TB_TEMP CONSTANT NUMBER := 12582912;

  TB_EXTERNAL CONSTANT NUMBER := 2147483648;

 

  TYPE_INDEX CONSTANT NUMBER := 1;

  TYPE_TABLE CONSTANT NUMBER := 2;

  TYPE_VIEW CONSTANT NUMBER := 4;

  TYPE_SYNONYM CONSTANT NUMBER := 5;

  TYPE_SEQUENCE CONSTANT NUMBER := 6;

  TYPE_PROCEDURE CONSTANT NUMBER := 7;

  TYPE_FUNCTION CONSTANT NUMBER := 8;

  TYPE_PACKAGE CONSTANT NUMBER := 9;

  TYPE_TRIGGER CONSTANT NUMBER := 12;

 

  CMD_CREATE CONSTANT varchar2(10) := 'CREATE';

  CMD_DROP CONSTANT varchar2(10) := 'DROP';

  CMD_TRUNCATE CONSTANT varchar2(10) := 'TRUNCATE';

  CMD_ALTER CONSTANT varchar2(10) := 'ALTER';

 

 

  /* Add a rule for inclusion or exclusion so that DDL trigger will handle

   * the matching object appropriately. Rules are evaluated in the sorted

   * order (asc) of sno. If the sno is not specified then the rule will be

   * added in the tail end (max(sno) + 1). If the user

   * want to position the rule inbetween two already existing rule

   * could use decimals in between.

   * The users can place rules as 11.1, 11.2 etc.

   * The rules added will be placed in the table GGS_DDL_RULES

   * Rule addition examples

   * To exclude all objects having name like  GGS%

   *    addRule(obj_name=> 'GGS%');

   * To exclude all temporary table

   *    addRule(base_obj_property => TB_TEMP, obj_type => TYPE_TABLE);

   * To exclude all External table

 

ORA-39083: 对象类型 PACKAGE 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE PACKAGE        DDLVersionSpecific AS

 

CURSOR uk_curs (powner IN VARCHAR2, ptable IN VARCHAR2) IS

    SELECT key.key_name index_name,

                    key.column_name,

                    key.descend

              FROM (SELECT c.constraint_name key_name,

                            c.column_name column_name,

                            c.position position,

                            'ASC' descend

                    FROM dba_cons_columns c

                    WHERE c.owner = powner

                        AND c.table_name = ptable

                        AND c.constraint_name = (

                              SELECT MIN(con1.name) FROM

                                     sys.user$ user1,

                                     sys.user$ user2,

                                     sys.cdef$ cdef,

                                     sys.con$ con1,

                                     sys.con$ con2,

                                     sys.obj$ obj1,

                                     sys.obj$ obj2

                               WHERE user1.name = powner

                                 AND obj1.name = ptable

                                 AND cdef.type# = 3

                                 AND bitand(cdef.defer, 4) = 4

                                 AND cdef.enabled is NOT NULL

                                 AND con2.owner# = user2.user#(+)

                                 AND cdef.robj# = obj2.obj#(+)

                                 AND cdef.rcon# = con2.con#

 

ORA-39083: 对象类型 PACKAGE 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE PACKAGE        DDLReplication AS

 

    /*

    Note about naming convention for constants:

    MD (metadata) constants

    MK (marker) constants

    NOTE: constant strings can be of any length up to 9(for example 'A1' or 'B2')

    NOTE: constant string cannot start with a digit

    NOTE: constant string cannot contain comma

    they are shortened to one byte or two bytes to produce less bulky output and save space in history tables

    */

 

    -- metadata columns

    -- IMPORTANT: when adding new ones, add them to tracing reporting routines

    MD_TAB_USERID CONSTANT VARCHAR2 (3) := 'A1';

    MD_COL_NAME CONSTANT VARCHAR2 (3) := 'A2';

    MD_COL_NUM CONSTANT VARCHAR2 (3) := 'A3';

    MD_COL_SEGCOL CONSTANT VARCHAR2 (3) := 'A4';

    MD_COL_TYPE CONSTANT VARCHAR2 (3) := 'A5';

    MD_COL_LEN CONSTANT VARCHAR2 (3) := 'A6';

    MD_COL_ISNULL CONSTANT VARCHAR2 (3) := 'A7';

    MD_COL_PREC CONSTANT VARCHAR2 (3) := 'A8';

    MD_COL_SCALE CONSTANT VARCHAR2 (3) := 'A9';

    MD_COL_CHARSETID CONSTANT VARCHAR2 (3) := 'B1';

    MD_COL_CHARSETFORM CONSTANT VARCHAR2 (3) := 'A';

    MD_COL_ALT_NAME CONSTANT VARCHAR2 (3) := 'C';

    MD_COL_ALT_TYPE CONSTANT VARCHAR2 (3) := 'D';

    MD_COL_ALT_PREC CONSTANT VARCHAR2 (3) := 'E';

    MD_COL_ALT_CHAR_USED CONSTANT VARCHAR2 (3) := 'F';

    MD_COL_ALT_XML_TYPE CONSTANT VARCHAR2 (3) := 'G';

    MD_TAB_COLCOUNT CONSTANT VARCHAR2 (3) := 'H';

    MD_TAB_DATAOBJECTID CONSTANT VARCHAR2 (3) := 'I';

    MD_TAB_CLUCOLS CONSTANT VARCHAR2 (3) := 'J';

 

 

ORA-39083: 对象类型 PACKAGE 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE PACKAGE       DDLAux AS

 

  TB_IOT CONSTANT NUMBER := 960;

  TB_CLUSTER CONSTANT NUMBER := 1024;

  TB_NESTED CONSTANT NUMBER := 8192;

  TB_TEMP CONSTANT NUMBER := 12582912;

  TB_EXTERNAL CONSTANT NUMBER := 2147483648;

 

  TYPE_INDEX CONSTANT NUMBER := 1;

  TYPE_TABLE CONSTANT NUMBER := 2;

  TYPE_VIEW CONSTANT NUMBER := 4;

  TYPE_SYNONYM CONSTANT NUMBER := 5;

  TYPE_SEQUENCE CONSTANT NUMBER := 6;

  TYPE_PROCEDURE CONSTANT NUMBER := 7;

  TYPE_FUNCTION CONSTANT NUMBER := 8;

  TYPE_PACKAGE CONSTANT NUMBER := 9;

  TYPE_TRIGGER CONSTANT NUMBER := 12;

 

  CMD_CREATE CONSTANT varchar2(10) := 'CREATE';

  CMD_DROP CONSTANT varchar2(10) := 'DROP';

  CMD_TRUNCATE CONSTANT varchar2(10) := 'TRUNCATE';

  CMD_ALTER CONSTANT varchar2(10) := 'ALTER';

 

 

  /* Add a rule for inclusion or exclusion so that DDL trigger will handle

   * the matching object appropriately. Rules are evaluated in the sorted

   * order (asc) of sno. If the sno is not specified then the rule will be

   * added in the tail end (max(sno) + 1). If the user

   * want to position the rule inbetween two already existing rule

   * could use decimals in between.

   * The users can place rules as 11.1, 11.2 etc.

   * The rules added will be placed in the table GGS_DDL_RULES

   * Rule addition examples

   * To exclude all objects having name like  GGS%

   *    addRule(obj_name=> 'GGS%');

   * To exclude all temporary table

   *    addRule(base_obj_property => TB_TEMP, obj_type => TYPE_TABLE);

   * To exclude all External table

 

ORA-39126: 在 KUPW$WORKER.SEND_TRACE_MSG [KUPW: ORA-39083: 对象类型 PACKAGE 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE PACKAGE        DDLVersionSpecific AS

 

CURSOR uk_curs (powner IN VARCHAR2, ptable IN VARCHAR2) IS

    SELECT key.key_name index_name,

                    key.column_name,

                    key.descend

              FROM (SELECT c.constraint_name key_name,

                            c.column_name column_name,

                            c.position position,

                            'ASC' descend

                    FROM dba_cons_columns c

                    WHERE c.owner = powner

                        AND c.table_name = ptable

                        AND c.constraint_name = (

                              SELECT MIN(con1.name) FROM

                                     sys.user$ user1,

                                     sys.user$ user2,

                                     sys.cdef$ cdef,

                                     sys.con$ con1,

                                     sys.con$ con2,

                                     sys.obj$ obj1,

                                     sys.obj$ obj2

                               WHERE user1.name = powner

                                 AND obj1.name = ptable

                                 AND cdef.type# = 3

                                 AND bitand(cdef.defer, 4) = 4

                                 AND cdef.enabled is NOT NULL

                                 AND con2.owner# = user2.user#(+)

                                 AND cdef.robj# = obj2.obj#(+)

                                 AND cdef.rcon# = con2.con#

] 中 Worker 发生意外致命错误

PACKAGE:"OGG"."DDLAUX"

ORA-06502: PL/SQL: 数字或值错误 :  字符串缓

 

ORA-06512: 在 "SYS.DBMS_SYS_ERROR", line 105

ORA-06512: 在 "SYS.KUPW$WORKER", line 12620

ORA-06512: 在 "SYS.DBMS_SYS_ERROR", line 105

ORA-06512: 在 "SYS.KUPW$WORKER", line 34278

 

----- PL/SQL Call Stack -----

  object      line  object

  handle    number  name

00007FF97F7656C0     33476  package body SYS.KUPW$WORKER.WRITE_ERROR_INFORMATION

00007FF97F7656C0     12641  package body SYS.KUPW$WORKER.DETERMINE_FATAL_ERROR

00007FF97F7656C0     34341  package body SYS.KUPW$WORKER.SEND_TRACE_MSG

00007FF97F7656C0     28767  package body SYS.KUPW$WORKER.SEND_MSG

00007FF97F7656C0      5418  package body SYS.KUPW$WORKER.LOAD_METADATA

00007FF97F7656C0     13781  package body SYS.KUPW$WORKER.DISPATCH_WORK_ITEMS

00007FF97F7656C0      2429  package body SYS.KUPW$WORKER.MAIN

00007FF97F76B538         2  anonymous block

 

KUPW: In procedure UPDATE_TYPE_COMPLETION_ROW

KUPW: Old Seqno: 255 New Path:  PO Num: -6 New Seqno: 0 error count: 1

KUPW: Primary row is: FALSE

KUPW: In SET_HIDDEN_PARAMETER: name = _LOAD_WITHOUT_COMPILE value = NONE

KUPW: ...session altered

KUPW: load without compile cleared

KUPW: Working on old seqno with count of: 3

KUPW: In procedure SEND_MSG. Fatal=0

KUPW: Error count: 3

KUPW: In procedure DETERMINE_FATAL_ERROR with ORA-06502: PL/SQL: 数字或值错误 :  字符串缓冲区太小

 

处理对象类型 DATABASE_EXPORT/SCHEMA/FUNCTION/FUNCTION

ORA-39083: 对象类型 FUNCTION 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE FUNCTION        ddlora_errorIsUserCancel

RETURN BOOLEAN

IS

        tmess                 VARCHAR2(32767);

        error_is_user_cancel  BOOLEAN := FALSE;

        error_pos             INTEGER := 0;

BEGIN

        tmess := DBMS_UTILITY.format_error_stack;

        error_pos := Instr(tmess, 'ORA-01013: ', 1, 1);

        IF error_pos > 0 THEN

            error_is_user_cancel := TRUE;

        END IF;

        RETURN error_is_user_cancel;

END;

 

ORA-39083: 对象类型 FUNCTION 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE FUNCTION        ddlora_getAllColsLogging (

                                                             pobjid NUMBER)

RETURN NUMBER

IS

    all_log_group_exists NUMBER;

BEGIN

    BEGIN

        SELECT COUNT(*)

                INTO all_log_group_exists

                FROM sys.obj$ o,sys.cdef$ c

                WHERE

                        o.obj#=pobjid

                        AND o.obj#=c.obj#

                        AND c.type#=17

                        AND rownum=1;

 

                EXCEPTION

                WHEN OTHERS THEN

                                all_log_group_exists := 0;

        END;

    RETURN all_log_group_exists;

END;

 

ORA-39083: 对象类型 FUNCTION 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE FUNCTION        ddlora_getErrorStack

RETURN VARCHAR2

IS

        tmess VARCHAR2(32767);

BEGIN

        tmess := DBMS_UTILITY.format_error_backtrace;

        IF length (tmess) > 32767 - 5000 THEN

                tmess := SUBSTR (tmess, 5000); -- just trailing portion

        END IF;

        RETURN tmess;

END;

 

ORA-39083: 对象类型 FUNCTION 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE FUNCTION        ddlora_verifyDDL

RETURN VARCHAR2

IS

someErr NUMBER;

trigStat VARCHAR2(100);

BEGIN

    SELECT COUNT(*) INTO someErr

    FROM dba_errors WHERE owner = 'OGG' AND name = 'DDLORA_GETERRORSTACK' AND TYPE = 'FUNCTION';

    IF 0 <> someErr THEN

        RETURN 'ERRORS detected in installation of DDL Replication software components' || ' (1.1)';

    END IF;

 

    SELECT COUNT(*) INTO someErr

    FROM dba_errors WHERE owner = 'OGG' AND name = 'CREATE_TRACE' AND TYPE = 'PROCEDURE';

    IF 0 <> someErr THEN

        RETURN 'ERRORS detected in installation of DDL Replication software components' || ' (2)';

    END IF;

 

    SELECT COUNT(*) INTO someErr

    FROM dba_errors WHERE owner = 'OGG' AND name = 'TRACE_PUT_LINE' AND TYPE = 'PROCEDURE';

    IF 0 <> someErr THEN

        RETURN 'ERRORS detected in installation of DDL Replication software components' || ' (3)';

    END IF;

 

    SELECT COUNT(*) INTO someErr

    FROM dba_errors WHERE owner = 'OGG' AND name = 'FILE_SEPARATOR' AND TYPE = 'FUNCTION';

    IF 0 <> someErr THEN

        RETURN 'ERRORS detected in installation of DDL Replication software components' || ' (3.1)';

    END IF;

 

    SELECT COUNT(*) INTO someErr

    FROM dba_errors WHERE owner = 'OGG' AND name = 'INITIAL_SETUP' AND TYPE = 'PROCEDURE';

    IF 0 <> someErr THEN

        RETURN 'ERRORS detected in installation of DDL Replication software components' || ' (4)';

    END IF;

 

    SELECT COUNT(*) INTO someErr

    FROM dba_errors WHERE owner = 'OGG' AND nam

 

ORA-39083: 对象类型 FUNCTION 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE FUNCTION        file_separator

RETURN CHAR

IS

dump_dir VARCHAR2(400);

errorMessage VARCHAR2(32767);

fileSeparator CHAR := '/';

BEGIN

 

    SELECT VALUE INTO dump_dir

    FROM sys.v_$parameter

    WHERE name = 'user_dump_dest' ;

 

      IF instr(dump_dir,'/') > 0 THEN

        fileSeparator := '/';

      ELSIF instr(dump_dir,'\') > 0 THEN

        fileSeparator := '\';

      END IF;

 

      RETURN fileSeparator;

END file_separator;

 

ORA-39083: 对象类型 FUNCTION 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE FUNCTION        filterDDL (

    stmt IN VARCHAR2,

        ora_owner IN VARCHAR2,

        ora_name IN VARCHAR2,

        ora_objtype IN VARCHAR2,

        ora_optype IN VARCHAR2

)

RETURN VARCHAR2

IS

retVal VARCHAR2(400);

errorMessage VARCHAR2(32767);

BEGIN

 

    retVal := 'INCLUDE';

 

        --

        --

        --  DO NOT CUSTOMIZE BEFORE THIS COMMENT

        --

        --

 

 

        -- CUSTOMIZE HERE: compute retVal here. It must be either 'INCLUDE' or 'EXCLUDE'.

    -- if it is 'EXCLUDE', DDL will be excluded from DDL trigger processing

    -- and vice versa. Use input parameters to this function to perform this

    -- computation.

    --

    --

 

    --

    --

    -- DO NOT CUSTOMIZE AFTER THIS COMMENT

    --

    --

 

    -- intentionally commented out, as it may cause 6508. Use only if needed.

        -- IF "OGG" .DDLReplication.trace_level >= 1 THEN

            -- intentionally commented out, as it may cause 6508. Use only if needed.

            -- "OGG" .trace_put_line ('DDL', 'Returning ' || retVal || ' from filterDDL');

    -- END IF;

        RETURN retVal;

 

        EXCEPTION

    WHEN OTHERS THEN

        errorMessage := 'filterDDL:' || SQLERRM;

        dbms_output.put_line (errorMessage);

        RAISE;

END;

 

ORA-39083: 对象类型 FUNCTION 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE FUNCTION        ddlora_errorIsUserCancel

RETURN BOOLEAN

IS

        tmess                 VARCHAR2(32767);

        error_is_user_cancel  BOOLEAN := FALSE;

        error_pos             INTEGER := 0;

BEGIN

        tmess := DBMS_UTILITY.format_error_stack;

        error_pos := Instr(tmess, 'ORA-01013: ', 1, 1);

        IF error_pos > 0 THEN

            error_is_user_cancel := TRUE;

        END IF;

        RETURN error_is_user_cancel;

END;

 

ORA-39083: 对象类型 FUNCTION 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE FUNCTION        ddlora_getAllColsLogging (

                                                             pobjid NUMBER)

RETURN NUMBER

IS

    all_log_group_exists NUMBER;

BEGIN

    BEGIN

        SELECT COUNT(*)

                INTO all_log_group_exists

                FROM sys.obj$ o,sys.cdef$ c

                WHERE

                        o.obj#=pobjid

                        AND o.obj#=c.obj#

                        AND c.type#=17

                        AND rownum=1;

 

                EXCEPTION

                WHEN OTHERS THEN

                                all_log_group_exists := 0;

        END;

    RETURN all_log_group_exists;

END;

 

ORA-39083: 对象类型 FUNCTION 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE FUNCTION        ddlora_getErrorStack

RETURN VARCHAR2

IS

        tmess VARCHAR2(32767);

BEGIN

        tmess := DBMS_UTILITY.format_error_backtrace;

        IF length (tmess) > 32767 - 5000 THEN

                tmess := SUBSTR (tmess, 5000); -- just trailing portion

        END IF;

        RETURN tmess;

END;

 

ORA-39083: 对象类型 FUNCTION 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE FUNCTION        ddlora_verifyDDL

RETURN VARCHAR2

IS

someErr NUMBER;

trigStat VARCHAR2(100);

BEGIN

    SELECT COUNT(*) INTO someErr

    FROM dba_errors WHERE owner = 'OGG' AND name = 'DDLORA_GETERRORSTACK' AND TYPE = 'FUNCTION';

    IF 0 <> someErr THEN

        RETURN 'ERRORS detected in installation of DDL Replication software components' || ' (1.1)';

    END IF;

 

    SELECT COUNT(*) INTO someErr

    FROM dba_errors WHERE owner = 'OGG' AND name = 'CREATE_TRACE' AND TYPE = 'PROCEDURE';

    IF 0 <> someErr THEN

        RETURN 'ERRORS detected in installation of DDL Replication software components' || ' (2)';

    END IF;

 

    SELECT COUNT(*) INTO someErr

    FROM dba_errors WHERE owner = 'OGG' AND name = 'TRACE_PUT_LINE' AND TYPE = 'PROCEDURE';

    IF 0 <> someErr THEN

        RETURN 'ERRORS detected in installation of DDL Replication software components' || ' (3)';

    END IF;

 

    SELECT COUNT(*) INTO someErr

    FROM dba_errors WHERE owner = 'OGG' AND name = 'FILE_SEPARATOR' AND TYPE = 'FUNCTION';

    IF 0 <> someErr THEN

        RETURN 'ERRORS detected in installation of DDL Replication software components' || ' (3.1)';

    END IF;

 

    SELECT COUNT(*) INTO someErr

    FROM dba_errors WHERE owner = 'OGG' AND name = 'INITIAL_SETUP' AND TYPE = 'PROCEDURE';

    IF 0 <> someErr THEN

        RETURN 'ERRORS detected in installation of DDL Replication software components' || ' (4)';

    END IF;

 

    SELECT COUNT(*) INTO someErr

    FROM dba_errors WHERE owner = 'OGG' AND nam

 

ORA-39083: 对象类型 FUNCTION 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE FUNCTION        file_separator

RETURN CHAR

IS

dump_dir VARCHAR2(400);

errorMessage VARCHAR2(32767);

fileSeparator CHAR := '/';

BEGIN

 

    SELECT VALUE INTO dump_dir

    FROM sys.v_$parameter

    WHERE name = 'user_dump_dest' ;

 

      IF instr(dump_dir,'/') > 0 THEN

        fileSeparator := '/';

      ELSIF instr(dump_dir,'\') > 0 THEN

        fileSeparator := '\';

      END IF;

 

      RETURN fileSeparator;

END file_separator;

 

ORA-39083: 对象类型 FUNCTION 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE FUNCTION        filterDDL (

    stmt IN VARCHAR2,

        ora_owner IN VARCHAR2,

        ora_name IN VARCHAR2,

        ora_objtype IN VARCHAR2,

        ora_optype IN VARCHAR2

)

RETURN VARCHAR2

IS

retVal VARCHAR2(400);

errorMessage VARCHAR2(32767);

BEGIN

 

    retVal := 'INCLUDE';

 

        --

        --

        --  DO NOT CUSTOMIZE BEFORE THIS COMMENT

        --

        --

 

 

        -- CUSTOMIZE HERE: compute retVal here. It must be either 'INCLUDE' or 'EXCLUDE'.

    -- if it is 'EXCLUDE', DDL will be excluded from DDL trigger processing

    -- and vice versa. Use input parameters to this function to perform this

    -- computation.

    --

    --

 

    --

    --

    -- DO NOT CUSTOMIZE AFTER THIS COMMENT

    --

    --

 

    -- intentionally commented out, as it may cause 6508. Use only if needed.

        -- IF "OGG" .DDLReplication.trace_level >= 1 THEN

            -- intentionally commented out, as it may cause 6508. Use only if needed.

            -- "OGG" .trace_put_line ('DDL', 'Returning ' || retVal || ' from filterDDL');

    -- END IF;

        RETURN retVal;

 

        EXCEPTION

    WHEN OTHERS THEN

        errorMessage := 'filterDDL:' || SQLERRM;

        dbms_output.put_line (errorMessage);

        RAISE;

END;

 

ORA-39126: 在 KUPW$WORKER.SEND_TRACE_MSG [KUPW: ORA-39083: 对象类型 FUNCTION 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE FUNCTION        ddlora_verifyDDL

RETURN VARCHAR2

IS

someErr NUMBER;

trigStat VARCHAR2(100);

BEGIN

    SELECT COUNT(*) INTO someErr

    FROM dba_errors WHERE owner = 'OGG' AND name = 'DDLORA_GETERRORSTACK' AND TYPE = 'FUNCTION';

    IF 0 <> someErr THEN

        RETURN 'ERRORS detected in installation of DDL Replication software components' || ' (1.1)';

    END IF;

 

    SELECT COUNT(*) INTO someErr

    FROM dba_errors WHERE owner = 'OGG' AND name = 'CREATE_TRACE' AND TYPE = 'PROCEDURE';

    IF 0 <> someErr THEN

        RETURN 'ERRORS detected in installation of DDL Replication software components' || ' (2)';

    END IF;

 

    SELECT COUNT(*) INTO someErr

    FROM dba_errors WHERE owner = 'OGG' AND name = 'TRACE_PUT_LINE' AND TYPE = 'PROCEDURE';

    IF 0 <> someErr THEN

        RETURN 'ERRORS detected in installation of DDL Replication software components' || ' (3)';

    END IF;

 

    SELECT COUNT(*) INTO someErr

    FROM dba_errors WHERE owner = 'OGG' AND name = 'FILE_SEPARATOR' AND TYPE = 'FUNCTION';

    IF 0 <> someErr THEN

        RETURN 'ERRORS detected in installation of DDL Replication software components' || ' (3.1)';

    END IF;

 

    SELECT COUNT(*) INTO someErr

    FROM dba_errors WHERE owner = 'OGG' AND name = 'INITIAL_SETUP' AND TYPE = 'PROCEDURE';

    IF 0 <> someErr THEN

        RETURN 'ERRORS detected in installation of DDL Replication software components' || ' (4)';

    END IF;

 

    SELECT COUNT(*) INTO someErr

    FROM dba_errors WHERE owner = 'OGG' AND nam

] 中 Worker 发生意外致命错误

FUNCTION:"OGG"."FILTERDDL"

ORA-06502: PL/SQL: 数字或值错误 :  字符串

 

ORA-06512: 在 "SYS.DBMS_SYS_ERROR", line 105

ORA-06512: 在 "SYS.KUPW$WORKER", line 12620

ORA-06512: 在 "SYS.DBMS_SYS_ERROR", line 105

ORA-06512: 在 "SYS.KUPW$WORKER", line 34278

 

----- PL/SQL Call Stack -----

  object      line  object

  handle    number  name

00007FF97F7656C0     33476  package body SYS.KUPW$WORKER.WRITE_ERROR_INFORMATION

00007FF97F7656C0     12641  package body SYS.KUPW$WORKER.DETERMINE_FATAL_ERROR

00007FF97F7656C0     34341  package body SYS.KUPW$WORKER.SEND_TRACE_MSG

00007FF97F7656C0     28767  package body SYS.KUPW$WORKER.SEND_MSG

00007FF97F7656C0      5418  package body SYS.KUPW$WORKER.LOAD_METADATA

00007FF97F7656C0     13781  package body SYS.KUPW$WORKER.DISPATCH_WORK_ITEMS

00007FF97F7656C0      2429  package body SYS.KUPW$WORKER.MAIN

00007FF97F76B538         2  anonymous block

 

KUPW: In SET_HIDDEN_PARAMETER: name = _LOAD_WITHOUT_COMPILE value = NONE

KUPW: ...session altered

KUPW: load without compile cleared

KUPW: Working on old seqno with count of: 6

KUPW: In procedure SEND_MSG. Fatal=0

KUPW: Error count: 6

KUPW: ORA-39083: 对象类型 FUNCTION 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE FUNCTION        ddlora_errorIsUserCancel

RETURN BOOLEAN

IS

        tmess                 VARCHAR2(32767);

        error_is_user_cancel  BOOLEAN := FALSE;

        error_pos             INTEGER := 0;

BEGIN

        tmess := DBMS_UTILITY.format_error_stack;

        error_pos := Instr(tmess, 'ORA-01013: ', 1, 1);

        IF error_pos > 0 THEN

            error_is_user_cancel := TRUE;

        END IF;

        RETURN error_is_user_cancel;

END;

 

KUPW: ORA-39083: 对象类型 FUNCTION 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE FUNCTION        ddlora_getAllColsLogging (

                                                             pobjid NUMBER)

RETURN NUMBER

IS

    all_log_group_exists NUMBER;

BEGIN

    BEGIN

        SELECT COUNT(*)

                INTO all_log_group_exists

                FROM sys.obj$ o,sys.cdef$ c

                WHERE

                        o.obj#=pobjid

                        AND o.obj#=c.obj#

                        AND c.type#=17

                        AND rownum=1;

 

                EXCEPTION

                WHEN OTHERS THEN

                                all_log_group_exists := 0;

        END;

    RETURN all_log_group_exists;

END;

 

KUPW: ORA-39083: 对象类型 FUNCTION 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE FUNCTION        ddlora_getErrorStack

RETURN VARCHAR2

IS

        tmess VARCHAR2(32767);

BEGIN

        tmess := DBMS_UTILITY.format_error_backtrace;

        IF length (tmess) > 32767 - 5000 THEN

                tmess := SUBSTR (tmess, 5000); -- just trailing portion

        END IF;

        RETURN tmess;

END;

 

KUPW: In procedure DETERMINE_FATAL_ERROR with ORA-06502: PL/SQL: 数字或值错误 :  字符串缓冲区太小

 

处理对象类型 DATABASE_EXPORT/SCHEMA/PROCEDURE/PROCEDURE

ORA-39083: 对象类型 PROCEDURE 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE PROCEDURE        clear_trace

IS

output_file utl_file.file_type;

errorMessage VARCHAR2(32767);

BEGIN

 

    utl_file.fremove ('GGS_DDL_TRACE', 'ggs_ddl_trace.log');

EXCEPTION

    WHEN OTHERS THEN

        IF SQLCODE <>  - 29283 THEN -- avoid 'file not found'

            errorMessage := 'trace_put_line: ' || ':' || SQLERRM;

            RAISE;

        END IF;

END clear_trace;

 

ORA-39083: 对象类型 PROCEDURE 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE PROCEDURE        create_trace IS

dump_dir VARCHAR2(400);

errorMessage VARCHAR2(32767);

BEGIN

 

    SELECT VALUE INTO dump_dir

    FROM sys.v_$parameter

    WHERE name = 'user_dump_dest' ;

 

    EXECUTE IMMEDIATE 'create or replace directory GGS_DDL_TRACE as ''' || dump_dir || '''';

 

EXCEPTION

    WHEN OTHERS THEN

        errorMessage := 'create_trace: ' || ':' || SQLERRM;

        dbms_output.put_line (errorMessage);

        RAISE;

END create_trace;

 

ORA-39083: 对象类型 PROCEDURE 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE PROCEDURE        ddlora_getLobs (

                                                             powner IN VARCHAR2,

                                                             ptable IN VARCHAR2,

                                                             trueName IN VARCHAR2,

                                                             intcolNum IN NUMBER)

IS

    lobEncrypt VARCHAR2(400);

    lobCompress VARCHAR2(400);

    lobDedup VARCHAR2(400);

    errorMessage VARCHAR2(32767);

BEGIN

    BEGIN

        -- This query can be simplified further if sys.lob$ is used instead,

        -- or if column number is used instead of column name.

        SELECT max(decode(l.encrypt, 'NO', 0, 'NONE', 0, 1)) isEnc,

               max(decode(l.compression, 'NO', 0, 'NONE', 0, 1)) isComp,

               max(decode(l.deduplication, 'NO', 0, 'NONE', 0, 1)) isDedup

          INTO lobEncrypt, lobCompress, lobDedup

          FROM dba_tab_cols c, dba_tab_cols tc, dba_lobs l

          WHERE c.owner = tc.owner AND c.table_name = tc.table_name

            AND c.owner = l.owner AND c.table_name = l.table_name

            AND c.column_id = tc.column_id AND c.qualified_col_name = l.column_name

            AND c.owner = powner AND c.table_name = ptable AND tc.column_name= trueName;

 

    EXCEPTION

        WHEN OTHERS THEN

            errorMessage := 'get LOB info, error: ' || SQLERRM;

            "OGG" .trace_put_line ('DDL', errorMessage);

            RAISE;

    END;

    DDLReplication.insertToMar

 

ORA-39083: 对象类型 PROCEDURE 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE PROCEDURE        trace_put_line (

                                                        oper VARCHAR2,

                                                        message VARCHAR2)

IS

output_file utl_file.file_type;

errorMessage VARCHAR2(32767);

total_fragments NUMBER;

line_size NUMBER;

prepLine VARCHAR2(32767);

i NUMBER;

BEGIN

 

    output_file := utl_file.fopen ('GGS_DDL_TRACE', 'ggs_ddl_trace.log', 'A', max_linesize => 32767);

    prepLine := 'SESS ' || USERENV('SESSIONID') || '-' ||

    TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') || ' : ' || oper || ' : ';

    utl_file.put (output_file, prepLine);

    line_size := 900 - lengthb (prepLine) - 1;

    total_fragments := lengthb (message) / line_size + 1;

    IF total_fragments * line_size = lengthb (message) THEN

        total_fragments := total_fragments - 1;

    END IF;

 

    -- line cannot be bigger than approx 1000 bytes so split it up other

    FOR i IN 1..total_fragments LOOP

        utl_file.put_line (output_file, substrb (message, (i - 1) * line_size + 1, line_size));

    END LOOP;

 

    utl_file.fCLOSE (output_file);

EXCEPTION

    WHEN OTHERS THEN

        --

        -- If tracing fails, trigger *will not* fail:

        --

        -- closing file can cause an error too, so it's all in vain if we don't check

        BEGIN

            utl_file.fCLOSE (output_file);

        EXCEPTION

            WHEN OTHERS THEN

                NULL;

        END;

        errorMessage := 'trace_put_line: ' || ':' || SQLERRM;

        -- we

 

ORA-39083: 对象类型 PROCEDURE 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE PROCEDURE        clear_trace

IS

output_file utl_file.file_type;

errorMessage VARCHAR2(32767);

BEGIN

 

    utl_file.fremove ('GGS_DDL_TRACE', 'ggs_ddl_trace.log');

EXCEPTION

    WHEN OTHERS THEN

        IF SQLCODE <>  - 29283 THEN -- avoid 'file not found'

            errorMessage := 'trace_put_line: ' || ':' || SQLERRM;

            RAISE;

        END IF;

END clear_trace;

 

ORA-39083: 对象类型 PROCEDURE 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE PROCEDURE        create_trace IS

dump_dir VARCHAR2(400);

errorMessage VARCHAR2(32767);

BEGIN

 

    SELECT VALUE INTO dump_dir

    FROM sys.v_$parameter

    WHERE name = 'user_dump_dest' ;

 

    EXECUTE IMMEDIATE 'create or replace directory GGS_DDL_TRACE as ''' || dump_dir || '''';

 

EXCEPTION

    WHEN OTHERS THEN

        errorMessage := 'create_trace: ' || ':' || SQLERRM;

        dbms_output.put_line (errorMessage);

        RAISE;

END create_trace;

 

ORA-39083: 对象类型 PROCEDURE 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE PROCEDURE        ddlora_getLobs (

                                                             powner IN VARCHAR2,

                                                             ptable IN VARCHAR2,

                                                             trueName IN VARCHAR2,

                                                             intcolNum IN NUMBER)

IS

    lobEncrypt VARCHAR2(400);

    lobCompress VARCHAR2(400);

    lobDedup VARCHAR2(400);

    errorMessage VARCHAR2(32767);

BEGIN

    BEGIN

        -- This query can be simplified further if sys.lob$ is used instead,

        -- or if column number is used instead of column name.

        SELECT max(decode(l.encrypt, 'NO', 0, 'NONE', 0, 1)) isEnc,

               max(decode(l.compression, 'NO', 0, 'NONE', 0, 1)) isComp,

               max(decode(l.deduplication, 'NO', 0, 'NONE', 0, 1)) isDedup

          INTO lobEncrypt, lobCompress, lobDedup

          FROM dba_tab_cols c, dba_tab_cols tc, dba_lobs l

          WHERE c.owner = tc.owner AND c.table_name = tc.table_name

            AND c.owner = l.owner AND c.table_name = l.table_name

            AND c.column_id = tc.column_id AND c.qualified_col_name = l.column_name

            AND c.owner = powner AND c.table_name = ptable AND tc.column_name= trueName;

 

    EXCEPTION

        WHEN OTHERS THEN

            errorMessage := 'get LOB info, error: ' || SQLERRM;

            "OGG" .trace_put_line ('DDL', errorMessage);

            RAISE;

    END;

    DDLReplication.insertToMar

 

ORA-39083: 对象类型 PROCEDURE 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE PROCEDURE        trace_put_line (

                                                        oper VARCHAR2,

                                                        message VARCHAR2)

IS

output_file utl_file.file_type;

errorMessage VARCHAR2(32767);

total_fragments NUMBER;

line_size NUMBER;

prepLine VARCHAR2(32767);

i NUMBER;

BEGIN

 

    output_file := utl_file.fopen ('GGS_DDL_TRACE', 'ggs_ddl_trace.log', 'A', max_linesize => 32767);

    prepLine := 'SESS ' || USERENV('SESSIONID') || '-' ||

    TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') || ' : ' || oper || ' : ';

    utl_file.put (output_file, prepLine);

    line_size := 900 - lengthb (prepLine) - 1;

    total_fragments := lengthb (message) / line_size + 1;

    IF total_fragments * line_size = lengthb (message) THEN

        total_fragments := total_fragments - 1;

    END IF;

 

    -- line cannot be bigger than approx 1000 bytes so split it up other

    FOR i IN 1..total_fragments LOOP

        utl_file.put_line (output_file, substrb (message, (i - 1) * line_size + 1, line_size));

    END LOOP;

 

    utl_file.fCLOSE (output_file);

EXCEPTION

    WHEN OTHERS THEN

        --

        -- If tracing fails, trigger *will not* fail:

        --

        -- closing file can cause an error too, so it's all in vain if we don't check

        BEGIN

            utl_file.fCLOSE (output_file);

        EXCEPTION

            WHEN OTHERS THEN

                NULL;

        END;

        errorMessage := 'trace_put_line: ' || ':' || SQLERRM;

        -- we

 

ORA-39126: 在 KUPW$WORKER.SEND_TRACE_MSG [KUPW: ORA-39083: 对象类型 PROCEDURE 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE PROCEDURE        ddlora_getLobs (

                                                             powner IN VARCHAR2,

                                                             ptable IN VARCHAR2,

                                                             trueName IN VARCHAR2,

                                                             intcolNum IN NUMBER)

IS

    lobEncrypt VARCHAR2(400);

    lobCompress VARCHAR2(400);

    lobDedup VARCHAR2(400);

    errorMessage VARCHAR2(32767);

BEGIN

    BEGIN

        -- This query can be simplified further if sys.lob$ is used instead,

        -- or if column number is used instead of column name.

        SELECT max(decode(l.encrypt, 'NO', 0, 'NONE', 0, 1)) isEnc,

               max(decode(l.compression, 'NO', 0, 'NONE', 0, 1)) isComp,

               max(decode(l.deduplication, 'NO', 0, 'NONE', 0, 1)) isDedup

          INTO lobEncrypt, lobCompress, lobDedup

          FROM dba_tab_cols c, dba_tab_cols tc, dba_lobs l

          WHERE c.owner = tc.owner AND c.table_name = tc.table_name

            AND c.owner = l.owner AND c.table_name = l.table_name

            AND c.column_id = tc.column_id AND c.qualified_col_name = l.column_name

            AND c.owner = powner AND c.table_name = ptable AND tc.column_name= trueName;

 

    EXCEPTION

        WHEN OTHERS THEN

            errorMessage := 'get LOB info, error: ' || SQLERRM;

            "OGG" .trace_put_line ('DDL', errorMessage);

            RAISE;

    END;

    DDLReplication.insertToMar

] 中 Worker 发生意外致命错误

PROCEDURE:"OGG"."TRACE_PUT_LINE"

ORA-06502: PL/SQL: 数字或值错误 :

 

ORA-06512: 在 "SYS.DBMS_SYS_ERROR", line 105

ORA-06512: 在 "SYS.KUPW$WORKER", line 12620

ORA-06512: 在 "SYS.DBMS_SYS_ERROR", line 105

ORA-06512: 在 "SYS.KUPW$WORKER", line 34278

 

----- PL/SQL Call Stack -----

  object      line  object

  handle    number  name

00007FF97F7656C0     33476  package body SYS.KUPW$WORKER.WRITE_ERROR_INFORMATION

00007FF97F7656C0     12641  package body SYS.KUPW$WORKER.DETERMINE_FATAL_ERROR

00007FF97F7656C0     34341  package body SYS.KUPW$WORKER.SEND_TRACE_MSG

00007FF97F7656C0     28767  package body SYS.KUPW$WORKER.SEND_MSG

00007FF97F7656C0      5418  package body SYS.KUPW$WORKER.LOAD_METADATA

00007FF97F7656C0     13781  package body SYS.KUPW$WORKER.DISPATCH_WORK_ITEMS

00007FF97F7656C0      2429  package body SYS.KUPW$WORKER.MAIN

00007FF97F76B538         2  anonymous block

 

KUPW: Primary row is: FALSE

KUPW: In SET_HIDDEN_PARAMETER: name = _LOAD_WITHOUT_COMPILE value = NONE

KUPW: ...session altered

KUPW: load without compile cleared

KUPW: Working on old seqno with count of: 4

KUPW: In procedure SEND_MSG. Fatal=0

KUPW: Error count: 4

KUPW: ORA-39083: 对象类型 PROCEDURE 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE PROCEDURE        clear_trace

IS

output_file utl_file.file_type;

errorMessage VARCHAR2(32767);

BEGIN

 

    utl_file.fremove ('GGS_DDL_TRACE', 'ggs_ddl_trace.log');

EXCEPTION

    WHEN OTHERS THEN

        IF SQLCODE <>  - 29283 THEN -- avoid 'file not found'

            errorMessage := 'trace_put_line: ' || ':' || SQLERRM;

            RAISE;

        END IF;

END clear_trace;

 

KUPW: ORA-39083: 对象类型 PROCEDURE 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE PROCEDURE        create_trace IS

dump_dir VARCHAR2(400);

errorMessage VARCHAR2(32767);

BEGIN

 

    SELECT VALUE INTO dump_dir

    FROM sys.v_$parameter

    WHERE name = 'user_dump_dest' ;

 

    EXECUTE IMMEDIATE 'create or replace directory GGS_DDL_TRACE as ''' || dump_dir || '''';

 

EXCEPTION

    WHEN OTHERS THEN

        errorMessage := 'create_trace: ' || ':' || SQLERRM;

        dbms_output.put_line (errorMessage);

        RAISE;

END create_trace;

 

KUPW: In procedure DETERMINE_FATAL_ERROR with ORA-06502: PL/SQL: 数字或值错误 :  字符串缓冲区太小

 

处理对象类型 DATABASE_EXPORT/SCHEMA/FUNCTION/ALTER_FUNCTION

ORA-39083: 对象类型 ALTER_FUNCTION 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

 

ALTER FUNCTION "OGG"."DDLORA_GETERRORSTACK"   COMPILE     PLSQL_OPTIMIZE_LEVEL=  2    PLSQL_CODE_TYPE=  INTERPRETED    PLSQL_DEBUG=  FALSE    PLSCOPE_SETTINGS=  'IDENTIFIERS:NONE'  NLS_LENGTH_SEMANTICS= BYTE REUSE SETTINGS TIMESTAMP '2022-12-07 22:00:15'

 

ORA-39083: 对象类型 ALTER_FUNCTION 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

 

ALTER FUNCTION "OGG"."DDLORA_ERRORISUSERCANCEL"   COMPILE     PLSQL_OPTIMIZE_LEVEL=  2    PLSQL_CODE_TYPE=  INTERPRETED    PLSQL_DEBUG=  FALSE    PLSCOPE_SETTINGS=  'IDENTIFIERS:NONE'  NLS_LENGTH_SEMANTICS= BYTE REUSE SETTINGS TIMESTAMP '2022-12-07 22:00:15'

 

ORA-39083: 对象类型 ALTER_FUNCTION 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

 

ALTER FUNCTION "OGG"."DDLORA_GETALLCOLSLOGGING"   COMPILE     PLSQL_OPTIMIZE_LEVEL=  2    PLSQL_CODE_TYPE=  INTERPRETED    PLSQL_DEBUG=  FALSE    PLSCOPE_SETTINGS=  'IDENTIFIERS:NONE'  NLS_LENGTH_SEMANTICS= BYTE REUSE SETTINGS TIMESTAMP '2022-12-07 22:00:15'

 

ORA-39083: 对象类型 ALTER_FUNCTION 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

 

ALTER FUNCTION "OGG"."FILTERDDL"   COMPILE     PLSQL_OPTIMIZE_LEVEL=  2    PLSQL_CODE_TYPE=  INTERPRETED    PLSQL_DEBUG=  FALSE    PLSCOPE_SETTINGS=  'IDENTIFIERS:NONE'  NLS_LENGTH_SEMANTICS= BYTE REUSE SETTINGS TIMESTAMP '2022-12-07 22:00:15'

 

ORA-39083: 对象类型 ALTER_FUNCTION 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

 

ALTER FUNCTION "OGG"."DDLORA_VERIFYDDL"   COMPILE     PLSQL_OPTIMIZE_LEVEL=  2    PLSQL_CODE_TYPE=  INTERPRETED    PLSQL_DEBUG=  FALSE    PLSCOPE_SETTINGS=  'IDENTIFIERS:NONE'  NLS_LENGTH_SEMANTICS= BYTE REUSE SETTINGS TIMESTAMP '2022-12-07 22:00:15'

 

ORA-39083: 对象类型 ALTER_FUNCTION 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

 

ALTER FUNCTION "OGG"."FILE_SEPARATOR"   COMPILE     PLSQL_OPTIMIZE_LEVEL=  2    PLSQL_CODE_TYPE=  INTERPRETED    PLSQL_DEBUG=  FALSE    PLSCOPE_SETTINGS=  'IDENTIFIERS:NONE'  NLS_LENGTH_SEMANTICS= BYTE REUSE SETTINGS TIMESTAMP '2022-12-07 22:00:15'

 

处理对象类型 DATABASE_EXPORT/SCHEMA/PROCEDURE/ALTER_PROCEDURE

ORA-39083: 对象类型 ALTER_PROCEDURE 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

 

ALTER PROCEDURE "OGG"."DDLORA_GETLOBS"   COMPILE     PLSQL_OPTIMIZE_LEVEL=  2    PLSQL_CODE_TYPE=  INTERPRETED    PLSQL_DEBUG=  FALSE    PLSCOPE_SETTINGS=  'IDENTIFIERS:NONE'  NLS_LENGTH_SEMANTICS= BYTE REUSE SETTINGS TIMESTAMP '2022-12-07 22:00:16'

 

ORA-39083: 对象类型 ALTER_PROCEDURE 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

 

ALTER PROCEDURE "OGG"."CREATE_TRACE"   COMPILE     PLSQL_OPTIMIZE_LEVEL=  2    PLSQL_CODE_TYPE=  INTERPRETED    PLSQL_DEBUG=  FALSE    PLSCOPE_SETTINGS=  'IDENTIFIERS:NONE'  NLS_LENGTH_SEMANTICS= BYTE REUSE SETTINGS TIMESTAMP '2022-12-07 22:00:15'

 

ORA-39083: 对象类型 ALTER_PROCEDURE 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

 

ALTER PROCEDURE "OGG"."CLEAR_TRACE"   COMPILE     PLSQL_OPTIMIZE_LEVEL=  2    PLSQL_CODE_TYPE=  INTERPRETED    PLSQL_DEBUG=  FALSE    PLSCOPE_SETTINGS=  'IDENTIFIERS:NONE'  NLS_LENGTH_SEMANTICS= BYTE REUSE SETTINGS TIMESTAMP '2022-12-07 22:00:15'

 

ORA-39083: 对象类型 ALTER_PROCEDURE 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

 

ALTER PROCEDURE "OGG"."TRACE_PUT_LINE"   COMPILE     PLSQL_OPTIMIZE_LEVEL=  2    PLSQL_CODE_TYPE=  INTERPRETED    PLSQL_DEBUG=  FALSE    PLSCOPE_SETTINGS=  'IDENTIFIERS:NONE'  NLS_LENGTH_SEMANTICS= BYTE REUSE SETTINGS TIMESTAMP '2022-12-07 22:00:15'

 

处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/INDEX/INDEX

处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/CONSTRAINT/CONSTRAINT

ORA-39112: 跳过从属对象类型 CONSTRAINT:"OGG"."SYS_C0011097", 创建基本对象类型 TABLE:"OGG"."GGS_TEMP_COLS" 失败

 

ORA-39112: 跳过从属对象类型 CONSTRAINT:"OGG"."SYS_C0011101", 创建基本对象类型 TABLE:"OGG"."GGS_STICK" 失败

 

ORA-39112: 跳过从属对象类型 CONSTRAINT:"OGG"."SYS_C0011099", 创建基本对象类型 TABLE:"OGG"."GGS_TEMP_UK" 失败

 

处理对象类型 DATABASE_EXPORT/SCHEMA/PACKAGE_BODIES/PACKAGE/PACKAGE_BODY

ORA-39083: 对象类型 PACKAGE_BODY 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE PACKAGE BODY        DDLAux AS

 

  FUNCTION addRule(obj_name IN VARCHAR2 DEFAULT NULL,

                   base_obj_name IN VARCHAR2 DEFAULT NULL,

                   owner_name IN VARCHAR2 DEFAULT NULL,

                   base_owner_name IN VARCHAR2 DEFAULT NULL,

                   base_obj_property IN NUMBER DEFAULT NULL,

                   obj_type IN NUMBER  DEFAULT NULL,

                   command IN VARCHAR2  DEFAULT NULL,

                   inclusion IN boolean DEFAULT NULL ,

                   sno IN NUMBER DEFAULT NULL)

  RETURN NUMBER IS

   new_sno NUMBER;

   cnt NUMBER;

   to_include number;

  BEGIN

    if inclusion then

    to_include := 1;

    else

    to_include := 0;

    end if;

    BEGIN

      /* If SNO is not specified then find the next SNO automatically */

      IF SNO IS NULL THEN

        BEGIN

          SELECT count(*) ,MAX(SNO) into cnt,NEW_SNO

          FROM "OGG"."GGS_DDL_RULES";

 

          /* MAX(SNO) + 1 */

          IF cnt = 0 THEN

           NEW_SNO := 1;

          ELSE

           NEW_SNO := NEW_SNO + 1;

          END IF;

        EXCEPTION WHEN OTHERS THEN

          new_sno := 1;

        END;

      ELSE

        NEW_SNO := SNO;

      END IF;

 

      INSERT INTO "OGG"."GGS_DDL_RULES" VALUES

      (NEW_SNO, OBJ_NAME, OWNER_NAME, BASE_OBJ_NAME, BASE_OWNER_NAME,

       base_obj_PROPERTY, OBJ_TYPE, command, to_include);

 

      COMMIT;

      RETURN NEW_SNO;

    EXCEPTION WHEN OTHERS THEN

     --dbms_output.put_line (SQLERRM);

     IF "OGG" .DDLReplicati

 

ORA-39083: 对象类型 PACKAGE_BODY 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE PACKAGE BODY        DDLReplication AS

 

    /*

    FUNCTION REMOVESQLCOMMENTS RETURNS VARCHAR2

    Remove all SQL comments in DDL (or any SQL). Takes care of dash-dash and slash-star comments.

    Also 'knows' about double and single quoted strings and doesn't remove parts of string if they

    take comment form

    param[in] STMT                           VARCHAR2                SQL to decoment

 

    return de-commented SQL

    note Statement passed into this function MUST be lesser than 32767 The returned

    statement is NOT correct if SQL is of greater length than that size.

    */

    FUNCTION removeSQLcomments (

                                stmt IN VARCHAR2)

    RETURN VARCHAR2

    IS

    retval VARCHAR2 (32767);

    -- the following (xxxStart) remember if string or comment started (0 not, 1 yes)

    identStart NUMBER := 0;

    stringStart NUMBER := 0;

    slashStart NUMBER := 0;

    dashStart NUMBER := 0;

    beg NUMBER := 0;

    curr NUMBER := 0;

    tryExitLoop NUMBER := 0;

    -- 11833474: We are by default in byte semantics so have

    -- space to accomodate multibyte chars.

    currChar VARCHAR2(5);

    BEGIN

        IF "OGG" .DDLReplication.trace_level >= 1 THEN

           "OGG" .trace_put_line ('DDLTRACE1', 'Entering removeSQLcomments()');

        END IF;

 

        -- Early out

        IF stmt IS NULL THEN

           return stmt;

        END IF;

 

        retval := '';

        IF "OGG" .DDLReplication.trace_level >= 1 THEN

                        "OGG" .trace_put_line ('DDLTRA

 

ORA-39083: 对象类型 PACKAGE_BODY 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE PACKAGE BODY        DDLAux AS

 

  FUNCTION addRule(obj_name IN VARCHAR2 DEFAULT NULL,

                   base_obj_name IN VARCHAR2 DEFAULT NULL,

                   owner_name IN VARCHAR2 DEFAULT NULL,

                   base_owner_name IN VARCHAR2 DEFAULT NULL,

                   base_obj_property IN NUMBER DEFAULT NULL,

                   obj_type IN NUMBER  DEFAULT NULL,

                   command IN VARCHAR2  DEFAULT NULL,

                   inclusion IN boolean DEFAULT NULL ,

                   sno IN NUMBER DEFAULT NULL)

  RETURN NUMBER IS

   new_sno NUMBER;

   cnt NUMBER;

   to_include number;

  BEGIN

    if inclusion then

    to_include := 1;

    else

    to_include := 0;

    end if;

    BEGIN

      /* If SNO is not specified then find the next SNO automatically */

      IF SNO IS NULL THEN

        BEGIN

          SELECT count(*) ,MAX(SNO) into cnt,NEW_SNO

          FROM "OGG"."GGS_DDL_RULES";

 

          /* MAX(SNO) + 1 */

          IF cnt = 0 THEN

           NEW_SNO := 1;

          ELSE

           NEW_SNO := NEW_SNO + 1;

          END IF;

        EXCEPTION WHEN OTHERS THEN

          new_sno := 1;

        END;

      ELSE

        NEW_SNO := SNO;

      END IF;

 

      INSERT INTO "OGG"."GGS_DDL_RULES" VALUES

      (NEW_SNO, OBJ_NAME, OWNER_NAME, BASE_OBJ_NAME, BASE_OWNER_NAME,

       base_obj_PROPERTY, OBJ_TYPE, command, to_include);

 

      COMMIT;

      RETURN NEW_SNO;

    EXCEPTION WHEN OTHERS THEN

     --dbms_output.put_line (SQLERRM);

     IF "OGG" .DDLReplicati

 

ORA-39083: 对象类型 PACKAGE_BODY 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE PACKAGE BODY        DDLReplication AS

 

    /*

    FUNCTION REMOVESQLCOMMENTS RETURNS VARCHAR2

    Remove all SQL comments in DDL (or any SQL). Takes care of dash-dash and slash-star comments.

    Also 'knows' about double and single quoted strings and doesn't remove parts of string if they

    take comment form

    param[in] STMT                           VARCHAR2                SQL to decoment

 

    return de-commented SQL

    note Statement passed into this function MUST be lesser than 32767 The returned

    statement is NOT correct if SQL is of greater length than that size.

    */

    FUNCTION removeSQLcomments (

                                stmt IN VARCHAR2)

    RETURN VARCHAR2

    IS

    retval VARCHAR2 (32767);

    -- the following (xxxStart) remember if string or comment started (0 not, 1 yes)

    identStart NUMBER := 0;

    stringStart NUMBER := 0;

    slashStart NUMBER := 0;

    dashStart NUMBER := 0;

    beg NUMBER := 0;

    curr NUMBER := 0;

    tryExitLoop NUMBER := 0;

    -- 11833474: We are by default in byte semantics so have

    -- space to accomodate multibyte chars.

    currChar VARCHAR2(5);

    BEGIN

        IF "OGG" .DDLReplication.trace_level >= 1 THEN

           "OGG" .trace_put_line ('DDLTRACE1', 'Entering removeSQLcomments()');

        END IF;

 

        -- Early out

        IF stmt IS NULL THEN

           return stmt;

        END IF;

 

        retval := '';

        IF "OGG" .DDLReplication.trace_level >= 1 THEN

                        "OGG" .trace_put_line ('DDLTRA

 

ORA-39126: 在 KUPW$WORKER.SEND_TRACE_MSG [KUPW: ORA-39083: 对象类型 PACKAGE_BODY 创建失败, 出现错误:

ORA-31625: 必须有方案 OGG 才能导入此对象, 但此方案不可访问

ORA-01435: 用户不存在

 

失败的 sql 为:

CREATE PACKAGE BODY        DDLAux AS

 

  FUNCTION addRule(obj_name IN VARCHAR2 DEFAULT NULL,

                   base_obj_name IN VARCHAR2 DEFAULT NULL,

                   owner_name IN VARCHAR2 DEFAULT NULL,

                   base_owner_name IN VARCHAR2 DEFAULT NULL,

                   base_obj_property IN NUMBER DEFAULT NULL,

                   obj_type IN NUMBER  DEFAULT NULL,

                   command IN VARCHAR2  DEFAULT NULL,

                   inclusion IN boolean DEFAULT NULL ,

                   sno IN NUMBER DEFAULT NULL)

  RETURN NUMBER IS

   new_sno NUMBER;

   cnt NUMBER;

   to_include number;

  BEGIN

    if inclusion then

    to_include := 1;

    else

    to_include := 0;

    end if;

    BEGIN

      /* If SNO is not specified then find the next SNO automatically */

      IF SNO IS NULL THEN

        BEGIN

          SELECT count(*) ,MAX(SNO) into cnt,NEW_SNO

          FROM "OGG"."GGS_DDL_RULES";

 

          /* MAX(SNO) + 1 */

          IF cnt = 0 THEN

           NEW_SNO := 1;

          ELSE

           NEW_SNO := NEW_SNO + 1;

          END IF;

        EXCEPTION WHEN OTHERS THEN

          new_sno := 1;

        END;

      ELSE

        NEW_SNO := SNO;

      END IF;

 

      INSERT INTO "OGG"."GGS_DDL_RULES" VALUES

      (NEW_SNO, OBJ_NAME, OWNER_NAME, BASE_OBJ_NAME, BASE_OWNER_NAME,

       base_obj_PROPERTY, OBJ_TYPE, command, to_include);

 

      COMMIT;

      RETURN NEW_SNO;

    EXCEPTION WHEN OTHERS THEN

     --dbms_output.put_line (SQLERRM);

     IF "OGG" .DDLReplicati

] 中 Worker 发生意外致命错误

PACKAGE_BODY:"OGG"."DDLREPLICATION"

ORA-06502: PL/SQL: 数字或值错误

 

ORA-06512: 在 "SYS.DBMS_SYS_ERROR", line 105

ORA-06512: 在 "SYS.KUPW$WORKER", line 12620

ORA-06512: 在 "SYS.DBMS_SYS_ERROR", line 105

ORA-06512: 在 "SYS.KUPW$WORKER", line 34278

 

----- PL/SQL Call Stack -----

  object      line  object

  handle    number  name

00007FF97F7656C0     33476  package body SYS.KUPW$WORKER.WRITE_ERROR_INFORMATION

00007FF97F7656C0     12641  package body SYS.KUPW$WORKER.DETERMINE_FATAL_ERROR

00007FF97F7656C0     34341  package body SYS.KUPW$WORKER.SEND_TRACE_MSG

00007FF97F7656C0     28767  package body SYS.KUPW$WORKER.SEND_MSG

00007FF97F7656C0      5418  package body SYS.KUPW$WORKER.LOAD_METADATA

00007FF97F7656C0     13781  package body SYS.KUPW$WORKER.DISPATCH_WORK_ITEMS

00007FF97F7656C0      2429  package body SYS.KUPW$WORKER.MAIN

00007FF97F76B538         2  anonymous block

 

KUPW: In procedure UPDATE_TYPE_COMPLETION_ROW

KUPW: Old Seqno: 347 New Path:  PO Num: -6 New Seqno: 0 error count: 1

KUPW: Primary row is: FALSE

KUPW: In SET_HIDDEN_PARAMETER: name = _LOAD_WITHOUT_COMPILE value = NONE

KUPW: ...session altered

KUPW: load without compile cleared

KUPW: Working on old seqno with count of: 2

KUPW: In procedure SEND_MSG. Fatal=0

KUPW: Error count: 2

KUPW: In procedure DETERMINE_FATAL_ERROR with ORA-06502: PL/SQL: 数字或值错误 :  字符串缓冲区太小

 

处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/CONSTRAINT/REF_CONSTRAINT

处理对象类型 DATABASE_EXPORT/SCHEMA/POST_SCHEMA/PROCACT_SCHEMA

处理对象类型 DATABASE_EXPORT/AUDIT

作业 "SYSTEM"."SYS_IMPORT_FULL_01" 已经完成, 但是有 239 个错误 (于 星期四 12月 22 15:00:17 2022 elapsed 0 00:00:33 完成)

最后修改时间:2025-03-11 16:37:12
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论