Я пытаюсь установить вывод DBMS_METADATA.GET_DDL
моей переменной привязки RET_VAR
в SQLPlus.SP2-1504: Невозможно напечатать неинициализированную переменную LOB
Я попытался следующие script.sql
:
set pagesize 0
SET LONG 9999999
VARIABLE ret_val CLOB
VARIABLE lengthRet NUMBER
select DBMS_METADATA.GET_DDL('TABLE', 'MY_TABLE') into :ret_val from dual;
spool testClean.sql
print :ret_val;
spool off
/-- I had to add this line because the script would never run otherwise
Но я получаю:
SP2-1504: Cannot print uninitialized LOB variable "RET_VAL"
Я также попытался окружая назначение RET_VAL
с блоком BEGIN
/END
:
set pagesize 0
SET LONG 9999999
VARIABLE ret_val CLOB
VARIABLE lengthRet NUMBER
BEGIN
select DBMS_METADATA.GET_DDL('TABLE', 'MY_TABLE') into :ret_val from dual;
END;
spool testClean.sql
print :ret_val;
spool off
/
Но тогда, когда Я пытаюсь запустить его в SQLPlus, я получаю эту ошибку:
ERROR at line 5: ORA-06550: line 5, column 1: PLS-00103: Encountered the symbol "SPOOL"
Как я могу назначить выход DBMS_METADATA.GET_DDL
на мой RET_VAR
?
Первое, что я вижу - вам нужно '/' после 'BEGIN ... END;' block –