Отображение полного ответа на запрос на запрос 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>