oracle 查看建表语句

dbms_metadata.get_ddl(object_type=>'TABLE',name=>table_name)这个语句我会用,但是这个查询出来的create语句... dbms_metadata.get_ddl(object_type => 'TABLE',name => table_name)

这个语句我会用,但是这个查询出来的create语句有些问题,一是不包含约束,二十多了什么附件信息,比如storage compress等。例子如下:
CREATE TABLE "abc"."AR_TMP"
( "COD_FN_ENT" CHAR(4 CHAR),
"NUM_SEQ_AR" CHAR(17 CHAR) ,
"ID_SP" CHAR(3 CHAR) ,
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS NOLOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "CRS_DATA"

我在aqua data studio里在表上右击可以查询到如下的sql,
CREATE TABLE BDPDCUSER.AR_TMP (
COD_FN_ENT CHAR(4 CHAR) NOT NULL,
NUM_SEQ_AR CHAR(17 CHAR) NOT NULL,
ID_SP CHAR(3 CHAR) NOT NULL,
)
这个包含了null等约束,而且没有附件信息,如果过想获取这个sql,该怎么用sql语句来实现呢?谢谢。
not null 确实显示,但是null不显示。我现在想着用shell脚本加工,但是也有个小问题。
dbms_metadata.get_ddl
本来直接执行输出是这样的
CREATE TABLE "abc"."AR_TMP"
( "COD_FN_ENT" CHAR(4 CHAR),
"NUM_SEQ_AR" CHAR(17 CHAR) ,
"ID_SP" CHAR(3 CHAR) ,
)
但是在shell执行是输出这样的
CREATE TABLE "abc"."AR_TMP"
( "COD_FN_ENT" CHAR(4 CHAR),
"NUM_SEQ_AR" CHAR(17
CHAR) ,
"ID_SP" CHAR(3 CHAR) ,
)
您知道怎么回事吗?谢谢。
展开
 我来答
wenkuxl
2015-07-14 · TA获得超过112个赞
知道小有建树答主
回答量:161
采纳率:100%
帮助的人:126万
展开全部
在sqlplus中执行以下命令:

set line 200 pages 50000 wrap on long 999999 serveroutput on

EXECUTEDBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',false);---去除storage等多余参数

select dbms_metadata.get_ddl('TABLE', 表名) from dual;
更多追问追答
追问
谢谢,不过也没有加上 NULL  NOT NULL等限制,AQ右键菜单应该也是执行某条或某些命令吧?您知道吗?
追答
我在本地试过,会显示not null的喔。没有用过AQ,但是这些IDE应该都是调用数据库的命令或函数的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式