Professional Documents
Culture Documents
5 O
r 5 O
B C N
O 0 47
A
c A
L O
A l A
O A
O U
k A
P
http://yangtingkun.net
O www.enmotech.com ORA
ORA-600(16164)
alert O MERGE alert O
P
Errors in file /u1/oracle/admin/repdb01/bdump/repdb01_j000_20925.trc:
ORA-00600: internal error code, arguments: [16164], [0], [], [], [], [], [], []
trace O P
ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [16164], [0], [], [], [], [], [], []
Current SQL statement for this session:
MERGE /*+ append */ INTO
MIS2_USER U
USING (SELECT A.ID USER_ID, A.CODE CODE, A.ENABLE_FLAG USER_ENABLE_FLAG,
B.ENABLE_FLAG ORG_ENABLE_FLAG, A.NAME USER_NAME, B.NAME ORG_NAME,
C.DATA_ORG_ID ORG_ID, A.CREATE_DATE CREATE_DATE
FROM GPO_USR_USER A, GPO_USR_ORG B, GPO_REG_ORG C
WHERE A.ORG_ID = B.ID AND B.REG_ORG_ID = C.ID AND C.FACTORY_FLAG = '1'
UNION ALL
SELECT A.ID USER_ID, A.USER_CODE CODE, A.ENABLE_FLAG USER_ENABLE_FLAG,
B.ENABLE_FLAG ORG_ENABLE_FLAG, A.USER_NAME USER_NAME, B.NAME ORG_NAME,
A.DEFAULT_ORGID ORG_ID, A.CREATE_DATE CREATE_DATE
FROM USR_USER A, CAT_ORG B
WHERE A.DEFAULT_ORGID = B.ID AND B.ORG_TYPE = '1') B
ON (U.USER_ID = B.USER_ID)
WHEN MATCHED THEN
UPDATE
SET U.CODE = B.CODE,
U.USER_ENABLE_FLAG = B.USER_ENABLE_FLAG,
U.ORG_ENABLE_FLAG = B.ORG_ENABLE_FLAG,
U.USER_NAME = B.USER_NAME,
U.ORG_NAME = B.ORG_NAME,
U.ORG_ID = B.ORG_ID
WHEN NOT MATCHED THEN
INSERT (USER_ID, CODE, USER_ENABLE_FLAG, ORG_ENABLE_FLAG,
USER_NAME, ORG_NAME, ORG_ID, CREATE_DATE)
VALUES (B.USER_ID, B.CODE, B.USER_ENABLE_FLAG, B.ORG_ENABLE_FLAG,
B.USER_NAME, B.ORG_NAME, B.ORG_ID, B.CREATE_DATE)
----- PL/SQL Call Stack -----
object line object
handle number name
6b1cea980 474 procedure MIS2.P_INIT_DATA
6a33fd260 1 anonymous block
----- Call Stack Trace -----
calling call entry argument values in hex
location type point (? means dubious value)
-------------------- -------- -------------------- ----------------------------
ksedmp()+328 CALL ksedst()+0 FFFFFFFF7FFF5350 ?
000000000 ? 000000000 ?
00000003E ?
FFFFFFFF7FFF5BE8 ?
1031D56C8 ?
kgeriv()+208 PTR_CALL 0000000000000000 000000000 ? 000103400 ?
D132D
O www.enmotech.com ORA
0001035D9 ? 000102C00 ?
1035D9000 ? 1035D9C28 ?
kgeasi()+180 CALL kgeriv()+0 1035D9E88 ? 1036C7148 ?
D133D
O www.enmotech.com ORA
O
SQLO APPEND SQL e g O
P
SQL> MERGE INTO
2 MIS2_USER U
3 USING (SELECT A.ID USER_ID,
.
.
.
54 B.CREATE_DATE)
55 ;
MERGE INTO
*
ERROR at line 1:
ORA-30926: unable to get a stable set of rows in the source tables
O O ORA-600 k
ORA-30926 k O ORA-30926 O
Oracle k ORA-600 O O
ORA-30926 O Oracle P
ORA-30926 unable to get a stable set of rows in the source tables
Cause: A stable set of rows could not be got because of a large amount of DML activity or a
non-deterministic where clause.
Action: Remove any non-deterministic where clauses and reissue the DML.
D134D
O www.enmotech.com ORA
DML O O
O O k RULE
1 O U RULE 2 RULE k O
ORA-30926
MERGE O MERGE O USING ON
k t ?
O MIS2_USER O e P
SQL> SELECT CONSTRAINT_NAME, TABLE_NAME, COLUMN_NAME
2 FROM USER_CONS_COLUMNS WHERE CONSTRAINT_NAME =
3 (SELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS
4 WHERE TABLE_NAME = 'MIS2_USER' AND CONSTRAINT_TYPE = 'P') AND OWNER = USER;
CONSTRAINT_NAME TABLE_NAME COLUMN_NAME
------------------------------ ------------------------------ ------------------------
PK_MIS2_USER MIS2_USER USER_ID
1 row selected.
SQL> SELECT COUNT(*), COUNT(DISTINCT USER_ID) FROM MIS2_USER;
COUNT(*) COUNT(DISTINCTUSER_ID)
---------- ----------------------
28268 28268
e UNION ALL kO P
SQL> SELECT COUNT(*), COUNT(DISTINCT USER_ID) FROM
2 (SELECT A.ID USER_ID,
3 A.CODE CODE,
4 A.ENABLE_FLAG USER_ENABLE_FLAG,
5 B.ENABLE_FLAG ORG_ENABLE_FLAG,
6 A.NAME USER_NAME,
7 B.NAME ORG_NAME,
8 C.DATA_ORG_ID ORG_ID,
D135D
O www.enmotech.com ORA
9 A.CREATE_DATE CREATE_DATE
10 FROM GPO_USR_USER A, GPO_USR_ORG B, GPO_REG_ORG C
11 WHERE A.ORG_ID = B.ID
12 AND B.REG_ORG_ID = C.ID
13 AND C.FACTORY_FLAG = '1'
14 UNION ALL
15 SELECT A.ID USER_ID,
16 A.USER_CODE CODE,
17 A.ENABLE_FLAG USER_ENABLE_FLAG,
18 B.ENABLE_FLAG ORG_ENABLE_FLAG,
19 A.USER_NAME USER_NAME,
20 B.NAME ORG_NAME,
21 A.DEFAULT_ORGID ORG_ID,
22 A.CREATE_DATE CREATE_DATE
23 FROM USR_USER A, CAT_ORG B
24 WHERE A.DEFAULT_ORGID = B.ID
25 AND B.ORG_TYPE = '1');
COUNT(*) COUNT(DISTINCTUSER_ID)
---------- ----------------------
29060 27125
k O k
kO i k UNION ALL t USER_ID
kO SQLP
SQL> MERGE INTO
2 MIS2_USER U
3 USING (SELECT A.ID USER_ID,
4 A.CODE CODE,
5 A.ENABLE_FLAG USER_ENABLE_FLAG,
6 B.ENABLE_FLAG ORG_ENABLE_FLAG,
7 A.NAME USER_NAME,
8 B.NAME ORG_NAME,
9 C.DATA_ORG_ID ORG_ID,
10 A.CREATE_DATE CREATE_DATE
11 FROM GPO_USR_USER A, GPO_USR_ORG B, GPO_REG_ORG C
12 WHERE A.ORG_ID = B.ID
13 AND B.REG_ORG_ID = C.ID
14 AND C.FACTORY_FLAG = '1'
15 UNION ALL
16 SELECT A.ID USER_ID,
17 A.USER_CODE CODE,
18 A.ENABLE_FLAG USER_ENABLE_FLAG,
19 B.ENABLE_FLAG ORG_ENABLE_FLAG,
20 A.USER_NAME USER_NAME,
21 B.NAME ORG_NAME,
22 A.DEFAULT_ORGID ORG_ID,
23 A.CREATE_DATE CREATE_DATE
24 FROM USR_USER A, CAT_ORG B
25 WHERE A.DEFAULT_ORGID = B.ID
26 AND B.ORG_TYPE = '1'
27 AND A.ID NOT IN
28 (
29 SELECT A.ID FROM GPO_USR_USER A, GPO_USR_ORG B, GPO_REG_ORG C
D136D
O www.enmotech.com ORA
P
SQL> MERGE /*+ APPEND */ INTO
2 MIS2_USER U
3 USING (SELECT A.ID USER_ID,
.
.
.
62 B.CREATE_DATE)
63 ;
27125 rows merged.
SQL> ROLLBACK;
Rollback complete.
I Metalink O i
D137D
O www.enmotech.com ORA
O 44 2 720 2 11
r O
O U 3
k O O
U
U O U k U BugO
O 9204 U P
SQL> CONN TEST/TEST@172.25.88.94/TESTDATA
D138D
O www.enmotech.com ORA
O t k O
U
ORA-942
O Java O O ORA-00942: table
or view does not exist
SQL ORA-942O SQL O k
O O
U O e Oracle O SQL SQL
O k
TJSQ_TRADE O TJSQ_TRADE
O TJSQ_NDMAIN O TJSQ_TRADE k O
TJSQ_NDMAIN r k TJSQ_TRADE
g O P
BJSQ_TRADE BJSQ_NDMAIN O k
BJSQ_TRADE BJSQ_NDMAIN Og REMAP_TABLESPACE REMAP_SCHEMA
TJSQ_TRADE TJSQ_NDMAIN
O BJSQ_TRADE O
TJSQ_TRADE O REMAP_SCHEMA i
kO O
O e O e
O r
DBMS_METADATA O k BJSQ_TRADE TJSQ_TRADE O
BJSQ_NDMAIN TJSQ_NDMAIN O O
TJSQ_NDMAIN TJSQ_TRADE BJSQ_NDMAIN BJSQ_TRADE
e O e
O trace Oracle SQL k e
SQLPLUS O O Java
Java k O O O
SQL O O SQL ALTER SESSION SET
D139D
O www.enmotech.com ORA
D140D
O www.enmotech.com ORA
e k g O e O k SQL
O k O SQL U r Oi
P SQL select * from usr_action select * from usr_action aO
WHERE select * from usr_action where rownum <10O
P O u O
SQL O SQL u O Oracle O
k t SQL_TRACE Oi k SQL_TRACE
O Oracle SQL
SQL O Oracle u O t
D141D
O www.enmotech.com ORA
U O P e SQLPLUS O
Java u SQL k O e O
SQL O
SQLDEVELOPER O O SQL
k ODEVELOPER O
SQLPLUS k
Java SQL O k Java SQL
k PEselect * from usr_action k WHERE · O Java
SQL O SQLPLUS
$ sqlplus tjsq_trade
SQL*Plus: Release 10.2.0.3.0 - Production on Wed Mar 18 10:12:02 2009
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
Enter password:
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> set pages 100 lines 120
SQL> set autot trace
SQL> select * from usr_action;
594 rows selected.
Execution Plan
----------------------------------------------------------
Plan hash value: 1947357366
--------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU) | Time |
--------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 594 | 43956 | 4 (0) | 00:00:01 |
| 1 | TABLE ACCESS FULL | USR_ACTION | 594 | 43956 | 4 (0) | 00:00:01 |
--------------------------------------------------------------------------------
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
46 consistent gets
594 rows processed
SQL> select * from usr_action ;
select * from usr_action
*
ERROR at line 1:
ORA-00942: table or view does not exist
D142D
O www.enmotech.com ORA
Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
46 consistent gets
594 rows processed
TJSQ_TRADE O O n
k O SQL Java SQL O k SQL
k Oi
SQLPLUS O Java u
O O u
O Oracle BugO i
u O kO i k
k g O i k O
O SQL O O SQL
O g 10 O k P
SQL> SELECT USERNAME, CREATED
2 FROM DBA_USERS WHERE USERNAME = 'TJSQ_TRADE';
USERNAME CREATED
------------------------------ -------------------
TJSQ_TRADE 2009-03-16 14:29:32
D143D
O www.enmotech.com ORA
O SQL TJSQ_NDMAIN O
TJSQ_NDMAINITJSQ_TRADE BJSQ_NDMAINIBJSQ_TRADE O
REMAP_SCHEMA O SQL BJSQ P
SQL> SELECT USERNAME, CREATED
2 FROM DBA_USERS WHERE USERNAME IN ('BJSQ_NDMAIN', 'BJSQ_TRADE');
USERNAME CREATED
------------------------------ -------------------
BJSQ_TRADE 2009-03-06 14:57:21
BJSQ_NDMAIN 2009-03-06 14:57:20
Statistics
----------------------------------------------------------
1 recursive calls
0 db block gets
46 consistent gets
D144D
O www.enmotech.com ORA
TJSQ_TRADE SQLO i k
SQL> CONN TJSQ_TRADE
Enter password:
Connected.
SQL> set autot trace
SQL> select * from usr_action ;
594 rows selected.
Execution Plan
----------------------------------------------------------
Plan hash value: 1947357366
--------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 594 | 43956 | 4 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL | USR_ACTION | 594 | 43956 | 4 (0)| 00:00:01 |
--------------------------------------------------------------------------------
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
46 consistent gets
O O TJSQ_TRADE BJSQ_TRADE
O k
P k BJSQ_NDMAIN BJSQ_TRADE g O k
BJSQ_NDMAIN BJSQ_TRADE O REMAP_SCHEMA k TJSQ_NDMAIN
TJSQ_TRADE
TJSQ_TRADE log P
[oracle@yans2 dmp]$ more imp_trade_20090316.log
;;;
Import: Release 10.2.0.3.0 - 64bit Production on Monday, 16 March, 2009 14:30:05
Copyright (c) 2003, 2005, Oracle. All rights reserved.
;;;
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
Master table "TJSQ_TRADE"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
ORA-39060: table(s) dropped because of conflict with master table
Starting "TJSQ_TRADE"."SYS_IMPORT_FULL_01": tjsq_trade/******** directory=d_dmpdp
dumpfile=bjsq_trade_product_090316.dp logfile=imp
_trade_20090316.log remap_schema=bjsq_trade:tjsq_trade remap_tablespace=bjsq_trade:tjsq
D145D
O www.enmotech.com ORA
exclude=grant exclude=table_statistics
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/SYNONYM/SYNONYM
ORA-31685: Object type SYNONYM:"TJSQ_TRADE"."A_DATA" failed due to insufficient privileges.
Failing sql is:
CREATE SYNONYM "TJSQ_TRADE"."A_DATA" FOR "BJSQ_NDMAIN"."A_DATA"
ORA-31685: Object type SYNONYM:"TJSQ_TRADE"."CAT_ADMIN" failed due to insufficient privileges.
Failing sql is:
CREATE SYNONYM "TJSQ_TRADE"."CAT_ADMIN" FOR "BJSQ_NDMAIN"."CAT_ADMIN"
ORA-31685: Object type SYNONYM:"TJSQ_TRADE"."CAT_AGENT" failed due to insufficient privileges.
Failing sql is:
CREATE SYNONYM "TJSQ_TRADE"."CAT_AGENT" FOR "BJSQ_NDMAIN"."CAT_AGENT"
ORA-31685: Object type SYNONYM:"TJSQ_TRADE"."CAT_AREA_MEDICARE" failed due to insufficient
privileges. Failing sql is:
.
.
.
ORA-31685: Object type SYNONYM:"TJSQ_TRADE"."CAT_AUTH_PATENT_DRUG" failed due to insufficient
privileges. Failing sql is:
CREATE SYNONYM "TJSQ_TRADE"."CAT_AUTH_PATENT_DRUG" FOR "BJSQ_NDMAIN"."CAT_AUTH_PATENT_DRUG"
O k O P
I i e O TJSQ_TRADE REMAP_SCHEMA
BJSQ_TRADE TJSQ_TRADEO BJSQ_NDMAIN TJSQ_NDMAINNO
TJSQ_TRADE O TJSQ_NDMAIN k
O O l O
i CREATE OR REPLACE O
· r O Oi
EXCLUDE=SYNONYMO O Y DBAO
i k
k OTJSQ_TRADE
k BJSQ_NDMAIN O TJSQ_NDMAIN k Java O
O O ORA-942
$ sqlplus tjsq_trade
SQL*Plus: Release 10.2.0.3.0 - Production on Wed Mar 18 17:43:38 2009
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
Enter password:
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> select * from dba_objects;
select * from dba_objects
*
ERROR at line 1:
ORA-00942: table or view does not exist
D146D
O www.enmotech.com ORA
U ODBA_OBJECTS PUBLIC O O
O O
u k SQLO SQL BJSQ_NDMAIN
k BJSQ_NDMAIN O TJSQ_TRADE BJSQ_TRADE
SQL O Oracle k u BJSQ_TRADE SQL
e SQL FIRST_LOAD_TIME
SQL O SQL O i O O
Oracle TJSQ_TRADE u k SQLO SQL ORA-942
TJSQ_TRADE Oracle k BugO u SQL INVALID
O SQL k SQL O k ORA-942 O
k
SQL O u SQLO
O SQLO k
SQLO Oracle SQL O O SQL
PORA-942P O
O u SQL O SQL ORA-942
O ORA-942 SHARED_POOL Metalink O k
Bug PBug No. 6155720 O Oracle O
u P
SQL> CONN TJSQ_TRADE
Enter password:
Connected.
SQL> select * from usr_module ;
select * from usr_module
*
ERROR at line 1:
ORA-00942: table or view does not exist
D147D
O www.enmotech.com ORA
System altered.
SQL> CONN TJSQ_TRADE
Enter password:
Connected.
SQL> SET AUTOT TRACE
SQL> select * from usr_module ;
636 rows selected.
Execution Plan
----------------------------------------------------------
Plan hash value: 130732051
--------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 636 | 51516 | 4 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL | USR_MODULE | 636 | 51516 | 4 (0)| 00:00:01 |
--------------------------------------------------------------------------------
Statistics
----------------------------------------------------------
694 recursive calls
0 db block gets
188 consistent gets
6 sorts (memory)
O kO i k O
k
O O
O A
O O
O k
i
O t O r
k
P Oracle 9204 U k SQL OFIRST_ROWS O O
SQL IN O O
Oracle I I IIN ICBO
e
O 10g
SQLO O O O 9204
9204 O O
g i g O
O k
O O i k e R
O e
O e U O k r
Oracle 10.2.0.3 for Solaris P
D148D
O www.enmotech.com ORA
D149D
O www.enmotech.com ORA
P
k4 OA1IA2IB1 B2 A1 B1 k O l A2 B2
A2 A1 O
g B2 A1 A2 O ORA-942O B2 A1
B2 O B1 B2 k B1 B2 O
Oracle Bug k u SQL O SQL
k
Oi
ORA-22868
k ORA-22868
t P Oracle convert database
OFFLINE O r O
O k ORA-22868
SQL> select name from v$tablespace;
NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
EXAMPLE
YANGTK
MGMT_TABLESPACE
TEST
MGMT_ECM_DEPOT_TS
USERS
TEMP
10 rows selected.
SQL> select name from v$datafile;
NAME
------------------------------------------------------------------------------
/data/oradata/ytktran/SYSTEM01.DBF
/data/oradata/ytktran/UNDOTBS01.DBF
/data/oradata/ytktran/SYSAUX01.DBF
D150D
O www.enmotech.com ORA
/opt/ora10g/product/10.2.0/db_1/dbs/MISSING00004
/data/oradata/ytktran/EXAMPLE01.DBF
/data/oradata/ytktran/YANGTK01.DBF
/data/oradata/ytktran/MGMT.DBF
/data/oradata/ytktran/YANGTK02.DBF
/data/oradata/ytktran/TEST01.DBF
/data/oradata/ytktran/MGMT_ECM_DEPOT1.DBF
10 rows selected.
SQL> select file_name
2 from dba_data_files where tablespace_name = 'USERS';
FILE_NAME
--------------------------------------------------------------------------------
/opt/ora10g/product/10.2.0/db_1/dbs/MISSING00004
USERS P
SQL> drop tablespace users;
drop tablespace users
*
ERROR at line 1:
ORA-01549: tablespace not empty, use INCLUDING CONTENTS option
D151D
O www.enmotech.com ORA
D152D
O www.enmotech.com ORA
D153D
O www.enmotech.com ORA
and bitand(t.property, 1) = 0
and bitand(o.flags, 128) = 0
and t.bobj# = co.obj# (+)
and t.ts# = ts.ts#
and t.file# = s.file# (+)
and t.block# = s.block# (+)
and t.ts# = s.ts# (+)
and t.dataobj# = cx.obj# (+)
and cx.owner# = cu.user# (+)
and ksppi.indx = ksppcv.indx
and ksppi.ksppinm = '_dml_monitoring_enabled'
DBA_TABLES O DBA_TABLES
UP r O k
OBJ$ TAB$ P
SQL> SELECT OBJECT_ID
2 FROM DBA_OBJECTS
3 WHERE OBJECT_NAME = 'ACTION_TABLE';
OBJECT_ID
----------
52449
SQL> SELECT OBJ#, DATAOBJ#, NAME FROM OBJ$ WHERE OBJ# = 52449;
OBJ# DATAOBJ# NAME
---------- ---------- ------------------------------
52449 ACTION_TABLE
SQL> SELECT OBJ#, DATAOBJ#, TS#, BOBJ# FROM TAB$ WHERE OBJ# = 52449;
OBJ# DATAOBJ# TS# BOBJ#
---------- ---------- ---------- ----------
52449 0 52450
DATAOBJ# O O BOBJ#
52450O OBJECT_ID DBA_OBJECTS P
SQL> SELECT OWNER, OBJECT_NAME, OBJECT_ID, DATA_OBJECT_ID, OBJECT_TYPE
2 FROM DBA_OBJECTS
3 WHERE OBJECT_ID IN (52449, 52450);
OWNER OBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE
--------------- ------------------------------ ---------- -------------- ------------
OE ACTION_TABLE 52449 TABLE
OE SYS_IOT_OVER_52449 52450 52450 TABLE
ACTION_TABLE ACTION_TABLE P
SQL> SELECT OWNER, INDEX_NAME, INDEX_TYPE
2 FROM DBA_INDEXES
3 WHERE TABLE_NAME = 'ACTION_TABLE';
OWNER INDEX_NAME INDEX_TYPE
------------------------------ ------------------------------ ---------------------------
OE ACTION_TABLE_DATA IOT – TOP
OE SYS_IL0000052449C00004$$ LOB
D154D
O www.enmotech.com ORA
ORA-22868 g O e
DBA_TABLES
O LOB O P
SQL> CONN YANGTK/YANGTK
Connected.
SQL> CREATE TABLE T_INDEX_ORG
2 (ID NUMBER PRIMARY KEY,
3 NAME VARCHAR2(30),
4 OTHERS CLOB)
5 ORGANIZATION INDEX
6 INCLUDING NAME OVERFLOW;
Table created.
SQL> SELECT OWNER, OBJECT_NAME, OBJECT_ID, DATA_OBJECT_ID, OBJECT_TYPE
2 FROM DBA_OBJECTS
3 WHERE OBJECT_NAME = 'T_INDEX_ORG' AND OWNER = 'YANGTK';
OWNER OBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE
--------------- ------------------------------ --------- ----------------- ------------
YANGTK T_INDEX_ORG 95205 TABLE
SQL> SELECT INDEX_NAME, INDEX_TYPE
2 FROM USER_INDEXES WHERE TABLE_NAME = 'T_INDEX_ORG';
INDEX_NAME INDEX_TYPE
------------------------------ ---------------------------
SYS_IL0000095205C00003$$ LOB
SYS_IOT_TOP_95205 IOT - TOP
SQL> SELECT OBJ#, DATAOBJ#, NAME FROM SYS.OBJ$ WHERE OBJ# = 95205;
OBJ# DATAOBJ# NAME
---------- ---------- ------------------------------
95205 T_INDEX_ORG
SQL> SELECT OBJ#, DATAOBJ#, TS#, BOBJ# FROM SYS.TAB$ WHERE OBJ# = 95205;
OBJ# DATAOBJ# TS# BOBJ#
------------- ---------- ---------- ----------
95205 0 95206
SQL> SELECT OWNER, OBJECT_NAME, OBJECT_TYPE, OBJECT_ID, DATA_OBJECT_ID
2 FROM DBA_OBJECTS WHERE OBJECT_ID = 95206;
OWNER OBJECT_NAME OBJECT_TYPE OBJECT_ID DATA_OBJECT_ID
------------ ------------------------------ ------------------- ------------ -----------
YANGTK SYS_IOT_OVER_95205 TABLE 95206 95206
D155D
O www.enmotech.com ORA
SYS_XDBPD$ XDB.XDB$RAW_LIST_T
ACTIONED_BY VARCHAR2(10 CHAR)
DATE_ACTIONED DATE
SQL> DESC XDB.XDB$RAW_LIST_T
XDB.XDB$RAW_LIST_T VARRAY(1000) OF RAW(2000)
ACTION_TABLE O k DBMS_META
ACTION_TABLE P
SQL> SELECT DBMS_METADATA.GET_DDL('TABLE', 'ACTION_TABLE', 'OE') FROM DUAL;
ERROR:
ORA-31603: object "ACTION_TABLE" of type TABLE not found in schema "OE"
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 105
ORA-06512: at "SYS.DBMS_METADATA", line 2805
ORA-06512: at "SYS.DBMS_METADATA", line 4333
ORA-06512: at line 1
no rows selected
SQL> SELECT DBMS_METADATA.GET_DDL('TABLE_DATA', 'ACTION_TABLE', 'OE') FROM DUAL;
DBMS_METADATA.GET_DDL('TABLE_DATA','ACTION_TABLE','OE')
--------------------------------------------------------------------------------
e ACTION_TABLE O PPURCHASEORDER
PURCHASEORDER P
D156D
O www.enmotech.com ORA
D157D
O www.enmotech.com ORA
ACTION_TABLE P k O I
ACTION_TABLE PURCHASEORDER O kO
ACTION_TABLE PURCHASEORDER PURCHASEORDER
kO k XDB
PURCHASEORDER ACTION_TABLE O k k O
DBA_TABLES ACTION_TABLE kP ACTION_TABLE
PURCHASEORDER O c OACTION_TABLE
O DBA_TABLES O DBA_ALL_TABLES P
SQL> SELECT OWNER, TABLE_NAME, TABLE_TYPE, NESTED
2 FROM DBA_ALL_TABLES WHERE TABLE_NAME = 'ACTION_TABLE';
OWNER TABLE_NAME TABLE_TYPE NES
---------- ------------------------------ ------------------------------ ---
OE ACTION_TABLE ACTION_T YES
O k
P ORA-22868 O USERS LOB
O USERS r LOB
ACTION_TABLE O DBA_TABLES O k
ACTION_TABLE ACTION_TABLE OE PURCHASEORDER
USERS LOB P
SQL> SELECT OWNER, TABLE_NAME, COLUMN_NAME
2 FROM DBA_LOBS
3 WHERE TABLESPACE_NAME = 'USERS';
OWNER TABLE_NAME COLUMN_NAME
---------- ------------------------------ -----------------------------------------------
OE LINEITEM_TABLE "PART"."SYS_XDBPD$"
OE LINEITEM_TABLE SYS_XDBPD$
OE ACTION_TABLE SYS_XDBPD$
OE PURCHASEORDER "XMLDATA"."LINEITEMS"."SYS_XDBPD$"
OE PURCHASEORDER "XMLDATA"."SHIPPING_INSTRUCTIONS"."SYS_XDBPD$"
OE PURCHASEORDER "XMLDATA"."REJECTION"."SYS_XDBPD$"
OE PURCHASEORDER "XMLDATA"."ACTIONS"."SYS_XDBPD$"
OE PURCHASEORDER "XMLDATA"."SYS_XDBPD$"
OE PURCHASEORDER "XMLEXTRA"."EXTRADATA"
OE PURCHASEORDER "XMLEXTRA"."NAMESPACES"
10 rows selected.
D158D
O www.enmotech.com ORA
O e PURCHASEORDER O O
PURCHASEORDER O k
kO Oracle ORA-22868
PURCHASEORDER i OACTION_TABLE i O USERS
USERS O DROP TABLESPACE INCLUDING CONTENTS O
Oracle Bug
MetalinkO k Bug PDoc ID: 758602.1
LOB O e P
SQL> CREATE TABLESPACE USERS DATAFILE '/data/oradata/ytktran/USERS01.DBF' SIZE 100M;
Tablespace created.
SQL> CONN YANGTK/YANGTK
Connected.
SQL> CREATE TABLE T_IOT_LOB
2 (ID NUMBER PRIMARY KEY,
3 NAME VARCHAR2(30),
4 OTHERS CLOB)
5 ORGANIZATION INDEX TABLESPACE USERS OVERFLOW TABLESPACE USERS
6 LOB (OTHERS) STORE AS OTHERS_LOB (TABLESPACE USERS);
Table created.
SQL> SELECT TABLE_NAME, TABLESPACE_NAME
2 FROM USER_TABLES
3 WHERE TABLE_NAME = 'T_IOT_LOB';
TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------
T_IOT_LOB
SQL> SELECT INDEX_NAME, TABLESPACE_NAME
2 FROM USER_INDEXES
3 WHERE TABLE_NAME = 'T_IOT_LOB';
INDEX_NAME TABLESPACE_NAME
------------------------------ ------------------------------
SYS_IL0000095440C00003$$ USERS
SYS_IOT_TOP_95440 USERS
SQL> SELECT TABLE_NAME, COLUMN_NAME, TABLESPACE_NAME
2 FROM USER_LOBS
3 WHERE TABLE_NAME = 'T_IOT_LOB';
TABLE_NAME COLUMN_NAME TABLESPACE_NAME
------------------------------ ---------------------------------------- ---------------
T_IOT_LOB OTHERS USERS
SQL> DROP TABLESPACE USERS INCLUDING CONTENTS AND DATAFILES;
DROP TABLESPACE USERS INCLUDING CONTENTS AND DATAFILES
*
ERROR at line 1:
ORA-22868: table with LOBs contains segments in different tablespaces
D159D
O www.enmotech.com ORA
Table dropped.
SQL> DROP TABLESPACE USERS INCLUDING CONTENTS AND DATAFILES;
Tablespace dropped.
O Bug k ORA-22868 t O
OE.PURCHASEORDER k
ORA-1461
U k ORA-1461 P
Errors in file /data/oracle/ora92/admin/client/bdump/client_j001_7289.trc:
ORA-12012: error on auto execute of job 1
ORA-01461: can bind a LONG value only for insert into a LONG column
ORA-06512: at "ZJTRADE.P_CLIENT_SYNCH", line 139
ORA-01401: inserted value too large for column
ORA-06512: at line 1
alert kU O k r
trace Otrace O trace
n JOB O JOB k
JOBO PL/SQL
T n Oracle k ORA-1461
PL/SQL O ORA-1461
ZJTRADE.P_CLIENT_SYNCH 139
Oi O
O O O
Oracle O ORA-01401 P
k
P_CLIENT_SYNCH SQL O O
MERGE P
LAST_UPDATE_DATE O
O P
CREATE OR REPLACE PROCEDURE P_CLIENT_SYNCH
(
P_LAST_UPDATE_DATE IN DATE,
P_DB_LINK IN VARCHAR2 DEFAULT 'BJDB01.US.ORACLE.COM'
) AUTHID CURRENT_USER AS
V_TABLE_COLUMNS VARCHAR2(32767);
V_SYNCH_STATEMENT VARCHAR2(32767);
V_PRIMARY_KEYS VARCHAR2(32767);
V_TEMP_PRIMARY_KEY VARCHAR2(32767);
D160D
O www.enmotech.com ORA
V_EXCLUDING_COLUMNS VARCHAR2(32767);
V_ERROR_MESSAGE VARCHAR2(4000);
V_DELETE_STATMENTS VARCHAR2(32767);
BEGIN
FOR C_CLIENT_CONF IN (SELECT TABLE_NAME, UPDATE_DATE_COLUMN FROM CLIENT_CONFIGURE ) LOOP
SELECT F_LINK(COLUMN_NAME)
INTO V_PRIMARY_KEYS
FROM USER_CONS_COLUMNS A, USER_CONSTRAINTS B
WHERE A.TABLE_NAME = C_CLIENT_CONF.TABLE_NAME
AND B.TABLE_NAME = C_CLIENT_CONF.TABLE_NAME
AND A.CONSTRAINT_NAME = B.CONSTRAINT_NAME
AND B.CONSTRAINT_TYPE = 'P';
SELECT F_LINK(COLUMN_NAME)
INTO V_EXCLUDING_COLUMNS
FROM USER_TAB_COLUMNS
WHERE TABLE_NAME = C_CLIENT_CONF.TABLE_NAME
AND COLUMN_NAME NOT IN
(
SELECT COLUMN_NAME FROM USER_CONS_COLUMNS A, USER_CONSTRAINTS B
WHERE A.TABLE_NAME = C_CLIENT_CONF.TABLE_NAME
AND B.TABLE_NAME = C_CLIENT_CONF.TABLE_NAME
AND A.CONSTRAINT_NAME = B.CONSTRAINT_NAME
AND B.CONSTRAINT_TYPE = 'P'
);
ELSE
V_SYNCH_STATEMENT := 'MERGE INTO ' || C_CLIENT_CONF.TABLE_NAME || ' A USING ';
D161D
O www.enmotech.com ORA
V_TEMP_PRIMARY_KEY := V_PRIMARY_KEYS;
WHILE INSTR(V_TEMP_PRIMARY_KEY, ',') != 0 LOOP
V_SYNCH_STATEMENT := V_SYNCH_STATEMENT || 'A.' || SUBSTR(V_TEMP_PRIMARY_KEY, 1,
INSTR(V_TEMP_PRIMARY_KEY, ',') - 1)
|| ' = B.' || SUBSTR(V_TEMP_PRIMARY_KEY, 1, INSTR(V_TEMP_PRIMARY_KEY, ',') - 1) || ' AND ';
V_TEMP_PRIMARY_KEY := SUBSTR(V_TEMP_PRIMARY_KEY, INSTR(V_TEMP_PRIMARY_KEY, ',') + 1);
END LOOP;
V_TEMP_PRIMARY_KEY := V_PRIMARY_KEYS;
V_DELETE_STATMENTS := 'DELETE ' || C_CLIENT_CONF.TABLE_NAME || ' WHERE (' ||
RTRIM(V_TEMP_PRIMARY_KEY, ', ')
|| ') IN (SELECT /*+ USE_HASH(A B) */ B.' || REPLACE(RTRIM(V_TEMP_PRIMARY_KEY, ', '), ',', ', B.')
|| ' FROM ' || C_CLIENT_CONF.TABLE_NAME || '@' || P_DB_LINK || ' A, ' || C_CLIENT_CONF.TABLE_NAME
|| ' B WHERE ';
WHILE INSTR(V_TEMP_PRIMARY_KEY, ',') != 0 LOOP
V_DELETE_STATMENTS := V_DELETE_STATMENTS || 'A.' || SUBSTR(V_TEMP_PRIMARY_KEY, 1,
INSTR(V_TEMP_PRIMARY_KEY, ',') - 1)
|| '(+) = B.' || SUBSTR(V_TEMP_PRIMARY_KEY, 1, INSTR(V_TEMP_PRIMARY_KEY, ',') - 1) || ' AND ';
V_TEMP_PRIMARY_KEY := SUBSTR(V_TEMP_PRIMARY_KEY, INSTR(V_TEMP_PRIMARY_KEY, ',') + 1);
END LOOP;
V_DELETE_STATMENTS := V_DELETE_STATMENTS || 'A.' || V_TEMP_PRIMARY_KEY || '(+) = B.' ||
V_TEMP_PRIMARY_KEY
|| ' AND A.' || V_TEMP_PRIMARY_KEY || ' IS NULL)';
EXECUTE IMMEDIATE V_DELETE_STATMENTS;
END IF;
COMMIT;
END LOOP;
D162D
O www.enmotech.com ORA
O MERGE i O
O
O MERGE
O P
SQL> SELECT
2 A.TABLE_NAME,
3 A.COLUMN_NAME,
4 A.DATA_TYPE,
5 A.DATA_LENGTH,
6 B.DATA_LENGTH ORG_DATA_LENGTH
7 FROM
8 (
9 SELECT
10 TABLE_NAME,
11 COLUMN_NAME,
12 DATA_TYPE,
13 DATA_LENGTH
14 FROM USER_TAB_COLUMNS
15 WHERE TABLE_NAME IN (SELECT TABLE_NAME FROM CLIENT_CONFIGURE)
16 MINUS
17 SELECT
18 TABLE_NAME,
19 COLUMN_NAME,
20 DATA_TYPE,
21 DATA_LENGTH
22 FROM ALL_TAB_COLUMNS@NEWTRADE.US.ORACLE.COM
23 ) A,
24 ALL_TAB_COLUMNS@NEWTRADE.US.ORACLE.COM B
25 WHERE A.TABLE_NAME = B.TABLE_NAME
26 AND B.OWNER = 'NDMAIN'
27 AND A.COLUMN_NAME = B.COLUMN_NAME
28 ;
TABLE_NAME COLUMN_NAME DATA_TYPE DATA_LENGTH ORG_DATA_LENGTH
-------------------- --------------- --------------- ----------- ---------------
CAT_AUTH_PRICE REMARK VARCHAR2 200 500
CAT_ENTERPRISE ARCHIVE_NUM VARCHAR2 100 500
CAT_PRODUCT ARCHIVE_NUM VARCHAR2 200 500
r O P
D163D
O www.enmotech.com ORA
JOBO
kO O
U k ORA-01401 O k ORA-01461 O
ORA-1461 Pcan bind a LONG value only for insert into a LONG column
O LONG
LONG P
SQL> SELECT DISTINCT DATA_TYPE FROM USER_TAB_COLUMNS;
DATA_TYPE
---------------
CHAR
DATE
FLOAT
NUMBER
VARCHAR2
LONG O LOB i O e e
O k P
SQL P
INSERT INTO CLIENT_LOGS (ID, EXECUTE_DATE, MESSAGES, FAILED_STATEMENT)
VALUES (SEQ_CLIENT.NEXTVAL, SYSDATE, V_ERROR_MESSAGE, SUBSTR(V_SYNCH_STATEMENT, 1, 4000));
D164D
O www.enmotech.com ORA
SALE_LAST_YEAR, REMA
RK, CHECK_FLAG, CHECK_DESC, USED_FLAG, CHECK_USER, CHECK_DATE, CREATE_USER, CREATE_DATE,
CREATE_PLAT, CREATE_ORG, LAST_U
PDATE_USER, LAST_UPDATE_DATE, LAST_UPDATE_PLAT, LAST_UPDATE_ORG, SYNCHRONIZED_DATE, CLEAN_DATE,
ENABLE_FLAG, DESCRIPTION
, FACTORY_FLAG, SALER_FLAG, SEND_FLAG, PFILE_PLAT, SYNC_STATE, CHECKUSER_NAME, SALE_YEAR, ID,
USED_NAME, PLAT_ID, BUSINE
SS_CATEGORY, JURIDICAL_PERSON, TAXPAYER_CODE, ACCOUNT_BANK, ACCOUNT_NUMBER, ACCOUNT_NAME,
ADDRESS, POST_CODE, TEL, WEBSI
TE, COUNTRY_ID, PROVINCE_ID, BUSINESS_LICENSE_DATE, BUSINESS_LICENSE_YEAR, BRANCH_NAME,
BRANCH_ADDRESS, BRANCH_PRINCIPAL
FROM CAT_ENTERPRISE@ZJTRADE.US.ORACLE.COM WHERE LAST_UPDATE_DATE >= TO_DATE('2008-11-19
12:00:03', 'YYYY-MM-DD HH24:MI:
SS') - 1) B ON (A.ID = B.ID) WHEN MATCHED THEN UPDATE SET ARCHIVE_NUM = B.ARCHIVE_NUM, ASSOCIATE_FLAG
= B.ASSOCIATE_FLAG
, URL = B.URL, BUSINESS_FLAG = B.BUSINESS_FLAG, CITY_ID = B.CITY_ID, SALE_LAST_YEAR =
B.SALE_LAST_YEAR, REMARK = B.REMAR
K, CHECK_FLAG = B.CHECK_FLAG, CHECK_DESC = B.CHECK_DESC, USED_FLAG = B.USED_FLAG, CHECK_USER
= B.CHECK_USER, CHECK_DATE
= B.CHECK_DATE, CREATE_USER = B.CREATE_USER, CREATE_DATE = B.CREATE_DATE, CREATE_PLAT =
B.CREATE_PLAT, CREATE_ORG = B.CR
EATE_ORG, LAST_UPDATE_USER = B.LAST_UPDATE_USER, LAST_UPDATE_DATE = B.LAST_UPDATE_DATE,
LAST_UPDATE_PLAT = B.LAST_UPDATE
_PLAT, LAST_UPDATE_ORG = B.LAST_UPDATE_ORG, SYNCHRONIZED_DATE = B.SYNCHRONIZED_DATE, CLEAN_DATE
= B.CLEAN_DATE, ENABLE_F
LAG = B.ENABLE_FLAG, DESCRIPTION = B.DESCRIPTION, FACTORY_FLAG = B.FACTORY_FLAG, SALER_FLAG =
B.SALER_FLAG, SEND_FLAG =
B.SEND_FLAG, PFILE_PLAT = B.PFILE_PLAT, SYNC_STATE = B.SYNC_STATE, CHECKUSER_NAME =
B.CHECKUSER_NAME, SALE_YEAR = B.SALE
_YEAR, USED_NAME = B.USED_NAME, PLAT_ID = B.PLAT_ID, BUSINESS_CATEGORY = B.BUSINESS_CATEGORY,
JURIDICAL_PERSON = B.JURID
ICAL_PERSON, TAXPAYER_CODE = B.TAXPAYER_CODE, ACCOUNT_BANK = B.ACCOUNT_BANK, ACCOUNT_NUMBER =
B.ACCOUNT_NUMBER, ACCOUNT_
NAME = B.ACCOUNT_NAME, ADDRESS = B.ADDRESS, POST_CODE = B.POST_CODE, TEL = B.TEL, WEBSITE = B.WEBSITE,
COUNTRY_ID = B.COUNTRY_ID, PROVINCE_ID = B.PROVINCE_ID, BUSINESS_LICENSE_DATE =
B.BUSINESS_LICENSE_DATE, BUSINESS_LICENSE_YEAR = B.BUSINESS_LICENSE_YEAR, BRANCH_NAME =
B.BRANCH_NAME, BRANCH_ADDRESS = B.BRANCH_ADDRESS, BRANCH_PRINCIPAL = B.BRANCH_PRINCIPAL W
HEN NOT MATCHED THEN INSERT (ARCHIVE_NUM, ASSOCIATE_FLAG, URL, BUSINESS_FLAG, CITY_ID,
SALE_LAST_YEAR, REMARK, CHECK_FLAG, CHECK_DESC, USED_FLAG, CHECK_USER, CHECK_DATE, CREATE_USER,
CREATE_DATE, CREATE_PLAT, CREATE_ORG, LAST_UPDATE_USER, LAST_UPDATE_DATE, LAST_UPDATE_PLAT,
LAST_UPDATE_ORG, SYNCHRONIZED_DATE, CLEAN_DATE, ENABLE_FLAG, DESCRIPTION, FACTORY_FLAG,
SALER_FLAG, SEND_FLAG, PFILE_PLAT, SYNC_STATE, CHECKUSER_NAME, SALE_YEAR, ID, USED_NAME, PLAT_ID,
BUSINESS_CATEGORY,JURIDICAL_PERSON, TAXPAYER_CODE, ACCOUNT_BANK, ACCOUNT_NUMBER, ACCOUNT_NAME,
ADDRESS, POST_CODE, TEL, WEBSITE, COUNTRY_ID, PROVINCE_ID, BUSINESS_LICENSE_DATE,
BUSINESS_LICENSE_YEAR, BRANCH_NAME, BRANCH_ADDRESS, BRANCH_PRINCIPAL) VALUES ( B.ARCHIVE_NUM,
B.ASSOCIATE_FLAG, B.URL, B.BUSINESS_FLAG, B.CITY_ID, B.SALE_LAST_YEAR, B.REMARK, B.CHECK_FLAG,
B.CHECK_DESC, B.USED_FLAG, B.CHECK_USER, B.CHECK_DATE, B.CREATE_USER, B.CREATE_DATE,
B.CREATE_PLAT, B.CREATE_ORG, B.LAST_UPDATE_USER, B.LAST_UPDATE_DATE, B.LAST_UPDATE_PLAT,
B.LAST_UPDATE_ORG, B.SYNCHRONIZED_DATE, B.CLEAN_DATE, B.ENABLE_FLAG, B.DESCRIPTION,
B.FACTORY_FLAG, B.SALER_FLAG, B.SEND_FLAG, B.PFILE_PLAT, B.SYNC_STATE, B.CHECKUSER_NAME,
B.SALE_YEAR, B.ID, B.USED_NAME, B.PLAT_ID, B.BUSINESS_CATEGORY, B.JURIDICAL_PERSON,
B.TAXPAYER_CODE, B.ACCOUNT_BANK, B.ACCOUNT_NUMBER, B.ACCOUNT_NAME, B.ADDRESS, B.POST_CODE,
B.TEL, B.WEBSITE, B.COUNTRY_ID, B.PROVINCE_ID, B.BUSINESS_LICENSE_DATE, B.BUSINESS_LICENSE_YEAR,
B.BRANCH_NAME, B.BRANCH_ADDRESS, B.BRANCH_PRINCIPAL)
D165D
O www.enmotech.com ORA
O SQL Ni P
SQL> ROLLBACK;
Rollback complete.
SQL> DECLARE
2 V_STR VARCHAR2(32767) := LPAD('A', 10000, 'A');
3 BEGIN
4 EXECUTE IMMEDIATE 'INSERT INTO CLIENT_LOGS VALUES (0, SYSDATE, NULL, ''' || SUBSTR(V_STR,
1, 4000) || ''')';
5 END;
6 /
PL/SQL procedure successfully completed.
SQL> ROLLBACK;
Rollback complete.
SQL> DECLARE
D166D
O www.enmotech.com ORA
D167D