我试图在远程服务器上使用sqlcl检索给定oracle数据库中表的定义。
因为我必须在那里使用cli,所以我不能简单地使用SQLDeveloper并从其中获取表定义(不能从服务器外部连接到DB )。
我们的想法是
select dbms_metadata.get_ddl('TABLE', table_name)
from user_tables where table_name = 'RESULTS';为了得到我需要的表DDL。
但是,当我在sqlcl工具中运行此查询时,输出如下所示:
CREATE TABLE "AP29_QUDB"."RESULTS"
( "LOCATION_RESULT_UID" RAW(16) NOT NU就这样,没有更多的信息了。
有人知道我如何获得要显示的查询的全部结果吗?
(或者简单地将其输送到一个文件中,以便我将其复制出去)
非常感谢
发布于 2017-11-17 04:33:23
看起来sqlcl从SQL*Plus复制了长设置。默认情况下,它只显示CLOB的前80个字符。这个大小可以用set long [some large number]'来改变。
SQL> select dbms_metadata.get_ddl('TABLE', 'DUAL', 'SYS') from dual;
DBMS_METADATA.GET_DDL('TABLE','DUAL','SYS')
--------------------------------------------------------------------------------
CREATE TABLE "SYS"."DUAL" SHARING=METADATA
( "DUMMY" VARCHAR2(1)
) PCT
SQL> set long 10000000
SQL> /
DBMS_METADATA.GET_DDL('TABLE','DUAL','SYS')
--------------------------------------------------------------------------------
CREATE TABLE "SYS"."DUAL" SHARING=METADATA
( "DUMMY" VARCHAR2(1)
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(INITIAL 16384 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSTEM"
SQL>https://stackoverflow.com/questions/47338692
复制相似问题