做了一个简单的get_ddl的测试发现信息输出不全
SQL> select dbms_metadata.get_ddl('TABLE', 'T') from dual;
DBMS_METADATA.GET_DDL('TABLE','T')
--------------------------------------------------------------------------------
CREATE TABLE "SYS"."T"
( "X" NUMBER(*,0),
"Y" DATE,
"Z" CLOB,
PRIM
怎么解决这个问题呢?
打入如下sqlplus格式化的命令
set serveroutput on size 1000000
set trimspool on
set long 5000
set linesize 100
set pagesize 9999
再次执行一次
SQL> set serveroutput on size 1000000
SQL> set trimspool on
SQL> set long 5000
SQL> set linesize 100
SQL> set pagesize 9999
SQL> /
DBMS_METADATA.GET_DDL('TABLE','T')
--------------------------------------------------------------------------------
CREATE TABLE "SYS"."T"
( "X" NUMBER(*,0),
"Y" DATE,
"Z" CLOB,
PRIMARY KEY ("X")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "SYSTEM" ENABLE
) 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 "SYSTEM"
LOB ("Z") STORE AS (
TABLESPACE "SYSTEM" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10
NOCACHE LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT))
结果显示正确,其实关键是set long 5000这个格式化命令提示,我们都知道long值默认为80,设置1000是为了显示更多的内容,因为很多数据字典视图中用到了long数据类型.
基本上就是这样.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/293106/viewspace-580533/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/293106/viewspace-580533/