programing

파일에 대한 Oracle 스풀의 최대 열 너비

jooyons 2023. 8. 8. 21:31
반응형

파일에 대한 Oracle 스풀의 최대 열 너비

다음과 같은 스크립트가 있습니다.

SET ECHO OFF
SET FEEDBACK OFF
SET VERIFY OFF
SET HEADING OFF
SET TERMOUT OFF
SET TRIMOUT ON
SET TRIMSPOOL ON
SET WRAP OFF
SET LINESIZE 32000
SET LONG 32000
SET LONGCHUNKSIZE 32000
SET SERVEROUT ON

SPOOL C:\Export.txt

SELECT XMLELEMENT("element1",xmlelement("element2",xmlattributes(.....)))
  FROM --TABLENAME--
 WHERE --CONDITIONS--

출력은 내부에 복합 xml이 있는 행 목록이 포함된 파일이어야 하지만 생성된 XML의 길이가 2000보다 길면 SQLPlus가 2000으로 축소되고 다음 행으로 이동합니다.

SQL Plus가 모든 데이터를 한 줄에 쓰도록 강제하는 방법이 있습니까?

SET 명령 바로 뒤에 다음 행을 추가하기만 하면 됩니다.

COL ColumnName FORMAT A32000

여기서 ColumnName은 SELECT 문에 있는 XML 열의 별칭입니다. 별칭을 추가해야 합니다.

그러면 해당 열의 최대 너비가 설정되며, 기본적으로 2000자입니다.COL FORMAT은 최대 60000자까지 설정할 수 있지만 실제로 한 줄에 sqlplus로 표시되는 최대 수는 32767입니다. LINE SIZE의 상한입니다.

당신은 윈도우에 있습니까?저는 이와 같은 문제를 겪고 있었고 다른 두 대답 모두 저에게 도움이 되지 않았습니다(직접적으로, 저는 한 가지를 더 해야 했습니다).Windows용 SQL*Plus 설정에 대한문서의 조언에 따라 작성자는 다음과 같이 기록합니다.

[주3]Set long big_number복잡한 트리거 또는 보기의 정의를 확인할 수 있습니다. 또는 긴 열 또는 Clob 열에 있는 텍스트를 확인할 수 있습니다.

나는 내 것을SET LONG 32000(제가 가장 긴 줄은 2000자가 조금 넘었습니다) 그리고 그것은 저에게 문제를 해결했습니다.

getClobVal()을 사용하여 출력을 clob으로 변환하는 것은 어떻습니까?

SELECT XMLELEMENT("element1",xmlelement("element2",xmlattributes(.....))).getClobVal()
  FROM --TABLENAME--
 WHERE --CONDITIONS--

언급URL : https://stackoverflow.com/questions/4156527/max-column-width-in-oracle-spool-to-file

반응형