Отображение полного ответа на запрос на запрос sqlcl

Я пытаюсь использовать sqlcl на удаленном сервере, чтобы получить определение таблицы таблиц в данной базе данных оракула.
Поскольку я должен использовать cli там, я не могу просто использовать SQLDeveloper и получить определения таблиц оттуда (не могу подключиться к БД извне сервера).

Идея состоит в том, чтобы использовать

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

Вот и все, больше информации нет.

Кто-нибудь знает, как я могу получить полный результат этого запроса для отображения?
(Или просто передайте его в файл, чтобы я скопировал его оттуда)

большое спасибо
Тим

1 ответ

Решение

Похоже, sqlcl скопировал параметр LONG из SQL*Plus. По умолчанию отображаются только первые 80 символов CLOB. Этот размер может быть изменен с 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>
Другие вопросы по тегам