Oracle:10.0.1.2.0的bug!

原创
2016-06-07 15:10:01 901浏览

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 先从另外一服务器(9206) exp 一用户,之后imp 到10,然后使用10的expdp 导出数据后,删除该用户,再impdp, 此时出现错误。 处理对象类型 SCHEMA_EXPORT/FUNCTION/FUNCTION ORA-39083: 对象类型 FUNCT

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入

  

  

  先从另外一服务器(9206) exp 一用户,之后imp 到10,然后使用10的expdp 导出数据后,删除该用户,再impdp, 此时出现错误。




处理对象类型 SCHEMA_EXPORT/FUNCTION/FUNCTION
ORA-39083: 对象类型 FUNCTION 创建失败, 出现错误:
ORA-06502: PL/SQL: 数字或值错误
ORA-06512: 在 "SYS.KUPW$WORKER", line 11729
ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小
失败的 sql 为:
CREATE FUNCTION "STUDY"."FUN_SALERSTRUTEST" ( --用途:促销员结构分析查询
VDEPT NUMBER, ----事业部
VTOP NUMBER, ----顶点机构
VSDATE VARCHAR2, ----开始日期
VEDATE VARCHAR2, ----结束日期
VSALERSTATE NUMBER, ----促销员状态:所有:-1,在职:1,离职:0 AS
VORG2 NUMBER, ----大区 1或0 表选与
ORA-39083: 对象类型 FUNCTION 创建失败, 出现错误:
ORA-06502: PL/SQL: 数字或值错误
ORA-06512: 在 "SYS.KUPW$WORKER", line 11729
ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小
失败的 sql 为:
CREATE FUNCTION "STUDY"."FUN_TEST" (
VDEPT NUMBER, ----事业部
VTOP NUMBER, ----顶点机构
VPRODUCTTYPE NUMBER, ----产品类型
VSDAT VARCHAR2, ----开始日期
VEDAT VARCHAR2) ----结束日期
RETURN LONG
AS
VBDATE DATE := TO_DATE(VSDAT,'YYYY-MM-DD'); ----开始日期
VEDATE DATE :=
ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小
ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小
作业 "SYS"."SYS_IMPORT_SCHEMA_01" 因致命错误于 16:10 停止




  尝试了几回,都无法成功,几天后,再做一遍测试,此次操作和之前的类似,只是exp的时候,不带数据。测试结果如下:

. . 导出了 "STUDY"."T_TRACKORGPLAN" 0 KB 0 行
. . 导出了 "STUDY"."T_TRACKSALEREGIONPLAN" 0 KB 0 行
. . 导出了 "STUDY"."USERDATA" 0 KB 0 行
. . 导出了 "STUDY"."USERDEPARTMENT" 0 KB 0 行
. . 导出了 "STUDY"."USERGROUP" 0 KB 0 行
. . 导出了 "STUDY"."USERORGRIGHT" 0 KB 0 行
. . 导出了 "STUDY"."USERPRODUCTRIGHT" 0 KB 0 行
. . 导出了 "STUDY"."YEARPLAN" 0 KB 0 行
. . 导出了 "STUDY"."YEARPLANPRODUCT" 0 KB 0 行
已成功加载/卸载了主表 "STUDY"."SYS_EXPORT_SCHEMA_01"
******************************************************************************
STUDY.SYS_EXPORT_SCHEMA_01 的转储文件集为:
H:\TEMP\EXPDP\EXPDP_STUDY_20050816.DMP
作业 "STUDY"."SYS_EXPORT_SCHEMA_01" 已于 10:20 成功完成


F:\ORACLE\bin>impdp dumpfile=expdp_study_20050816.dmp logfile=impdp_study_20050816.log schemas=stu
dy userid=study/1

Import: Release 10.1.0.2.0 - Production on 星期二, 16 8月, 2005 10:25

Copyright (c) 2003, Oracle. All rights reserved.

连接到: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
已成功加载/卸载了主表 "STUDY"."SYS_IMPORT_SCHEMA_01"
启动 "STUDY"."SYS_IMPORT_SCHEMA_01": dumpfile=expdp_study_20050816.dmp logfile=impdp_study_200508
16.log schemas=study userid=study/********
处理对象类型 SCHEMA_EXPORT/USER
ORA-31684: 对象类型 USER:"STUDY" 已存在
处理对象类型 SCHEMA_EXPORT/SYSTEM_GRANT
处理对象类型 SCHEMA_EXPORT/ROLE_GRANT
处理对象类型 SCHEMA_EXPORT/DEFAULT_ROLE
处理对象类型 SCHEMA_EXPORT/TABLESPACE_QUOTA
处理对象类型 SCHEMA_EXPORT/SE_PRE_SCHEMA_PROCOBJACT/PROCACT_SCHEMA
处理对象类型 SCHEMA_EXPORT/SEQUENCE/SEQUENCE
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA
. . 导入了 "STUDY"."ABCTYPE" 0 KB 0 行
. . 导入了 "STUDY"."BAND" 0 KB 0 行
. . 导入了 "STUDY"."BIGCUST" 0 KB 0 行
......
. . 导入了 "STUDY"."USERPRODUCTRIGHT" 0 KB 0 行
. . 导入了 "STUDY"."YEARPLAN" 0 KB 0 行
. . 导入了 "STUDY"."YEARPLANPRODUCT" 0 KB 0 行
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/INDEX
处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
处理对象类型 SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
处理对象类型 SCHEMA_EXPORT/TABLE/COMMENT
处理对象类型 SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC
处理对象类型 SCHEMA_EXPORT/FUNCTION/FUNCTION
ORA-39083: 对象类型 FUNCTION 创建失败, 出现错误:
ORA-06502: PL/SQL: 数字或值错误
ORA-06512: 在 "SYS.KUPW$WORKER", line 11729
ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小
失败的 sql 为:
CREATE FUNCTION "STUDY"."FUN_SALERSTRUTEST" ( --用途:促销员结构分析查询
VDEPT NUMBER, ----事业部
VTOP NUMBER, ----顶点机构
VSDATE VARCHAR2, ----开始日期
VEDATE VARCHAR2, ----结束日期
VSALERSTATE NUMBER, ----促销员状态:所有:-1,在职:1,离职:0 AS
VORG2 NUMBER, ----大区 1或0 表选与
ORA-39083: 对象类型 FUNCTION 创建失败, 出现错误:
ORA-06502: PL/SQL: 数字或值错误
ORA-06512: 在 "SYS.KUPW$WORKER", line 11729
ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小
失败的 sql 为:
CREATE FUNCTION "STUDY"."FUN_TEST" (
VDEPT NUMBER, ----事业部
VTOP NUMBER, ----顶点机构
VPRODUCTTYPE NUMBER, ----产品类型
VSDAT VARCHAR2, ----开始日期
VEDAT VARCHAR2) ----结束日期
RETURN LONG
AS
VBDATE DATE := TO_DATE(VSDAT,'YYYY-MM-DD'); ----开始日期
VEDATE DATE :=
ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小
ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小

作业 "STUDY"."SYS_IMPORT_SCHEMA_01" 因致命错误于 10:26 停止


F:\ORACLE\bin>





  不知道是不是该版本的一个bug, 升级到10.1.0.4.0 再试,升级后测试,问题已依旧!

24-AUG-05 05:55:14 GMT

.
ISSUE CLARIFICATION
====================
ORA-39083: Object type FUNCTION failed to create with error:
ORA-06502: PL/SQL: numeric or value error
ORA-06512: at "SYS.KUPW$WORKER", line 11849
ORA-06502: PL/SQL: numeric or value error: character string buffer too small


eos (end of div)

.
ISSUE VERIFICATION
===================

Verified the issue through TAR update

eos (end of div)

.
DATA COLLECTED
===============
ORA-39083: Object type FUNCTION failed to create with error:
ORA-06502: PL/SQL: numeric or value error
ORA-06512: at "SYS.KUPW$WORKER", line 11849
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
Failing sql is:
CREATE FUNCTION "STUDY"."FUN_TEST" (
VDEPT NUMBER,
VTOP NUMBER,
VPRODUCTTYPE NUMBER,
VSDAT VARCHAR2,
VEDAT VARCHAR2)
RETURN LONG
AS
VBDATE DATE := TO_DATE(VSDAT,'
Processing object type
SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SPEC
Processing object type SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION
ORA-39083: Object type ALTER_FUNCTION failed to create with error:
ORA-04043: object FUN_SALERSTRUTEST does not exist
Failing sql is:
ALTER FUNCTION "STUDY"."FUN_SALERSTRUTEST" COMPILE PLSQL_OPTIMIZE_LEVEL=
2 PLSQL_CODE_TYPE= INTERPRETED PLSQL_DEBUG= FALSE REUSE SETTINGS
TIMESTAMP '2005-08-16:14:05:40'
ORA-39083: Object type ALTER_FUNCTION failed to create with error:
ORA-04043: object FUN_TEST does not exist
Failing sql is:
ALTER FUNCTION "STUDY"."FUN_TEST" COMPILE PLSQL_OPTIMIZE_LEVEL= 2
PLSQL_CODE_TYPE= INTERPRETED PLSQL_DEBUG= FALSE REUSE SETTINGS TIMESTAMP
'2005-08-16:14:05:43'



eos (end of div)

.
CAUSE DETERMINATION
====================
The import datapump fails to import the procedure when the Create procedure
statement includes multi-byte characters.

eos (end of div)


CAUSE JUSTIFICATION
====================
Bug 4108939 - IMPORT PROCEDURE WITH DATA PUMP GET ORA-6502, fixed in 10.2 and
10.1.0.5

eos (end of div)

.
POTENTIAL SOLUTION(S)
======================
install the 10.1.0.5 patchset when available (perhaps during the next autumn)
or
create manually these packages after the import

eos (end of div)


POTENTIAL SOLUTION JUSTIFICATION(S)
====================================
The patchset contains the fix of the bug

eos (end of div)

.
SOLUTION / ACTION PLAN
=======================

Create the function manually after the import

eos (end of div)

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。