显示对 sqlcl 查询查询的完整响应

Showing full response on query on sqlcl query

我正在尝试在远程服务器上使用 sqlcl 来检索给定 oracle 数据库中 table 的 table 定义。
由于我必须在那里使用 cli,我不能简单地使用 SQLDeveloper 并从那里获取 table 定义(无法从服务器外部连接到数据库)。

想法是使用

select dbms_metadata.get_ddl('TABLE', table_name)
from user_tables where table_name = 'RESULTS';

为了获得 table 我需要的 table DDL。
但是,当我 运行 在 sqlcl 工具中进行此查询时,输出如下所示:

 CREATE TABLE "AP29_QUDB"."RESULTS" 
 (  "LOCATION_RESULT_UID" RAW(16) NOT NU

就是这样,没有更多信息了。

有人知道我如何获得要显示的查询的完整结果吗?
(或者简单地将它通过管道传输到一个文件,以便我将其复制出来)

非常感谢
-蒂姆

看起来 sqlcl 从 SQL*Plus 复制了 LONG 设置。默认情况下它只显示 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>