TestCase:
SQL> CREATE TABLE BILL_DATA_T
("BILLID" CHAR(10 BYTE) NOT NULL ENABLE, -----<<<<<<< 4.BILLID是char 10
"COGCODE" CHAR(7 BYTE),
CONSTRAINT "PK_BILL_DATA_T" PRIMARY KEY ("BILLID"))
PARTITION BY RANGE
("COGCODE")
(PARTITION "BILLS_2012" VALUES LESS THAN ('X'),
PARTITION "BILLS_OPEN" VALUES LESS THAN (MAXVALUE)); 2 3 4 5 6 7 8
Table created.
SQL>
SQL> CREATE TABLE FREIGHT_ITEM_T
("BILLID" CHAR(10 BYTE) NOT NULL ENABLE,
"FRTITEMID" CHAR(3 BYTE) NOT NULL ENABLE,
CONSTRAINT PK_FREIGHT_ITEM_T PRIMARY KEY ("BILLID"),
CONSTRAINT FK_FREIGHT_ITEM_T FOREIGN KEY ("BILLID") REFERENCES ---<<<<<<< 3.外键是参考BILL_DATA_T表的BILLED字段
BILL_DATA_T ("BILLID"))
PARTITION BY REFERENCE ----<<<<<<<<<<<<< 1.是partition by reference
("FK_FREIGHT_ITEM_T") ----<<<<<<<<<<< 2.参考了FK_FREIGHT_ITEM_T
(PARTITION "BILLS_2012",
PARTITION "BILLS_OPEN"); 2 3 4 5 6 7 8 9 10
Table created.
SQL>
SQL>
SQL> select * from freight_item_t where billid='123456789000000'; ----<<<<< 5.超过char 10,就报错
select * from freight_item_t where billid='123456789000000'
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [6305], [16], [12], [1], [], [], [],
[], [], [], [], []
SQL>
SQL>
SQL>
SQL> c/123456789000000/123456789
1* select * from freight_item_t where billid='123456789' -----<<<<<< 6.不超过char 10,就不会报错。
SQL> /
no rows selected
SQL>