ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle metadata 的问题

Oracle metadata 的问题

原创 Linux操作系统 作者:fengjin821 时间:2009-06-05 14:28:19 0 删除 编辑

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"

 


 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13165828/viewspace-605244/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 我的blog
请登录后发表评论 登录
全部评论

注册时间:2009-04-29

  • 博文量
    191
  • 访问量
    510142