Oracle 假脱机 - 缺少完整信息
Oracle Spool - Missing complere information
我正在尝试从我的 table 元数据中获取 Spool
信息。但是文本文件在第二行结束。它不显示完整的元数据
SPOOL P_TABLES.txt
set linesize 10000
set trimspool on
set heading on
SELECT DBMS_METADATA.GET_DDL('TABLE','TABLE_X') FROM DUAL;
SPOOL OFF;
它导出一个文本文件,但不提供完整的信息。
> SELECT DBMS_METADATA.GET_DDL('TABLE','TESI_STAMPDUTYLABELSVALUE') FROM DUAL
CREATE TABLE "ESIXUSER"."TESI_STAMPDUTYLABELSVALUE"
( "SVUNIDOCREFID" VAR...
//Nothing after this in .txt file.
在 Oracle SQL Developer 中,我能够检查完整的 DLL。
我是否会更改 sql 文件中的行大小?
我不确定这是否有效,但是
单击此处(http://www.dba-oracle.com/t_1_dbms_metadata.htm“这可能对您有所帮助”)
我认为你缺少这些:
设置航向
关闭回声
设置页数 999
设置长 90000
GET_DDL
returns一个CLOB
,这可能很难直接打印出来。
如果您需要打印结果,您可能需要一些东西来扫描您的 CLOB
打印行:
declare
vClob clob;
PROCEDURE print_clob (
pClob IN OUT NOCOPY CLOB
)
IS
kLineTerminator VARCHAR2(1) := CHR(10);
vlgh_file NUMBER := 0;
vLineEndPos INTEGER;
vROW VARCHAR2(32767);
vOffset NUMBER := 1;
BEGIN
vlgh_file := DBMS_LOB.GETLENGTH(pClob);
--
while (vOffset < vlgh_file) LOOP
vLineEndPos := DBMS_LOB.INSTR(pClob, kLineTerminator, vOffset);
if (vLineEndPos = 0) then
vLineEndPos := vlgh_file +1 ;
end if;
vROW := RTRIM(NVL(DBMS_LOB.SUBSTR(pClob, vLineEndPos - vOffset, vOffset),'--'));
vOffset := vLineEndPos;
DBMS_OUTPUT.PUT_LINE(vROW);
vOffset := vOffset + 1;
END LOOP;
END print_clob;
begin
select DBMS_METADATA.GET_DDL('TABLE','TEST_DDL') into vClob from dual;
--
print_clob(vClob);
end;
/
SET LONG 1000000000
SET LINESIZE 10000
SPOOL ABC.TXT
SELECT DBMS_METADATA.GET_DDL('TABLE','TABLE_X') FROM DUAL;
SPOOL OFF;
我正在尝试从我的 table 元数据中获取 Spool
信息。但是文本文件在第二行结束。它不显示完整的元数据
SPOOL P_TABLES.txt
set linesize 10000
set trimspool on
set heading on
SELECT DBMS_METADATA.GET_DDL('TABLE','TABLE_X') FROM DUAL;
SPOOL OFF;
它导出一个文本文件,但不提供完整的信息。
> SELECT DBMS_METADATA.GET_DDL('TABLE','TESI_STAMPDUTYLABELSVALUE') FROM DUAL
CREATE TABLE "ESIXUSER"."TESI_STAMPDUTYLABELSVALUE"
( "SVUNIDOCREFID" VAR...
//Nothing after this in .txt file.
在 Oracle SQL Developer 中,我能够检查完整的 DLL。
我是否会更改 sql 文件中的行大小?
我不确定这是否有效,但是
单击此处(http://www.dba-oracle.com/t_1_dbms_metadata.htm“这可能对您有所帮助”)
我认为你缺少这些:
设置航向 关闭回声 设置页数 999 设置长 90000
GET_DDL
returns一个CLOB
,这可能很难直接打印出来。
如果您需要打印结果,您可能需要一些东西来扫描您的 CLOB
打印行:
declare
vClob clob;
PROCEDURE print_clob (
pClob IN OUT NOCOPY CLOB
)
IS
kLineTerminator VARCHAR2(1) := CHR(10);
vlgh_file NUMBER := 0;
vLineEndPos INTEGER;
vROW VARCHAR2(32767);
vOffset NUMBER := 1;
BEGIN
vlgh_file := DBMS_LOB.GETLENGTH(pClob);
--
while (vOffset < vlgh_file) LOOP
vLineEndPos := DBMS_LOB.INSTR(pClob, kLineTerminator, vOffset);
if (vLineEndPos = 0) then
vLineEndPos := vlgh_file +1 ;
end if;
vROW := RTRIM(NVL(DBMS_LOB.SUBSTR(pClob, vLineEndPos - vOffset, vOffset),'--'));
vOffset := vLineEndPos;
DBMS_OUTPUT.PUT_LINE(vROW);
vOffset := vOffset + 1;
END LOOP;
END print_clob;
begin
select DBMS_METADATA.GET_DDL('TABLE','TEST_DDL') into vClob from dual;
--
print_clob(vClob);
end;
/
SET LONG 1000000000
SET LINESIZE 10000
SPOOL ABC.TXT
SELECT DBMS_METADATA.GET_DDL('TABLE','TABLE_X') FROM DUAL;
SPOOL OFF;