Oracle metadata 的问题

CREATE TABLE TEST (
  BASE_ID   VARCHAR2 (50)  NOT NULL,
  SQRXM     VARCHAR2 (20),
  XB        NUMBER,
  CONSTRAINT PK_TEST
  PRIMARY KEY ( BASE_ID )
    USING INDEX
     TABLESPACE OPERATION PCTFREE 10
     STORAGE ( INITIAL 65536 ))
   TABLESPACE OPERATION
   PCTFREE 10
   INITRANS 1
   MAXTRANS 255
  STORAGE (
   INITIAL 65536
   MINEXTENTS 1
   MAXEXTENTS 2147483645
)
   NOCACHE;

现在把XB 更改成VARCHAR2 (10), (直接更改数据库字段type)
用java的metadata取出来XB的类型还是number类型,type是3,而varchar(2)的类型是12

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

SQL> create table hr.yyy(a number(1));

表已创建。

SQL> set long 2000
SQL> select dbms_metadata.get_ddl('TABLE','YYY','HR') FROM DUAL;

DBMS_METADATA.GET_DDL('TABLE','YYY','HR')
--------------------------------------------------------------------------------

  CREATE TABLE "HR"."YYY"
   (    "A" NUMBER(1,0)
   ) 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)
  TABLESPACE "USERS"



SQL> ALTER TABLE HR.YYY MODIFY A CHAR(1);

表已更改。

SQL> select dbms_metadata.get_ddl('TABLE','YYY','HR') FROM DUAL;

DBMS_METADATA.GET_DDL('TABLE','YYY','HR')
--------------------------------------------------------------------------------

  CREATE TABLE "HR"."YYY"
   (    "A" CHAR(1)
   ) 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)
  TABLESPACE "USERS"

 


 

请使用浏览器的分享功能分享到微信等