UFO ET IT

sqlplus 열 출력 길이를 늘리는 방법은 무엇입니까?

ufoet 2021. 1. 12. 08:09
반응형

sqlplus 열 출력 길이를 늘리는 방법은 무엇입니까?


스키마에서 일부 개체의 ddl을 찾는 쿼리가 있습니다. 내가 얻는 결과 열은 쿼리 중간에서 잘립니다.

열의 너비를 어떻게 늘릴 수 있습니까?

나는 시도했다

SET SERVEROUTPUT ON SIZE 1000000;
SET LINESIZE 50000;
set pagesize 50000;
set long 50000;

그러나 나는 여전히 같은 결과를 얻고 있습니다.


방금 다음 명령을 사용했습니다.

SET LIN[ESIZE] 200

( http://ss64.com/ora/syntax-sqlplus-set.html에서 ).

편집 : 명확성을 위해 유효한 명령은 SET LIN 200또는 SET LINESIZE 200입니다.

이것은 잘 작동하지만 콘솔 창이 충분히 넓은 지 확인해야합니다. MS Windows 명령 프롬프트에서 직접 SQL Plus를 사용하는 경우 콘솔 창은 SQL Plus 사양에 관계없이 "Screen Buffer Size Width "속성이 설정된 대로 자동으로 줄을 바꿉니다 LINESIZE.

@simplyharsh에서 제안한대로 COLUMN col_name FORMAT Ax( x 는 원하는 길이, 문자)를 사용하여 개별 열을 구성하여 설정된 너비를 표시 할 수도 있습니다. 이것은 하나 또는 두 개의 초대형 열이 있고 요약 만 표시하려는 경우에 유용합니다. 콘솔 화면에서 값의.


이 구성은 저에게 효과적입니다.

set termout off
set verify off
set trimspool on
set linesize 200
set longchunksize 200000
set long 200000
set pages 0
column txt format a120

옵션 이있는 column형식 정의 linesize는 80 자에서 잘림을 방지하는 데 도움이되었습니다.


이 시도

COLUMN col_name FORMAT A24

여기서 24는 너비입니다.


Linux에서 다음을 시도하십시오.

set wrap off
set trimout ON
set trimspool on
set serveroutput on
set pagesize 0
set long 20000000
set longchunksize 20000000
set linesize 4000

LordScree가 제안한대로 LINESIZE를 설정하는 것 외에도 콘솔 너비 문제를 극복하기 위해 파일로 출력하도록 지정할 수도 있습니다. 방법은 다음과 같습니다.

set linesize 15000;
spool myoutput.txt;
SELECT 
...
spool off;

사실, 그것조차도 나에게는 효과가 없었습니다. 내가 "select dbms_metadata.get_ddl ( 'TABLESPACE', 'TABLESPACE_NAME') from dual;"을 실행했을 때 다시 처음 세 줄만 얻었지만 이번에는 각 줄이 15,000 자로 채워졌습니다. 이 문제를 해결할 수있었습니다.

select substr(dbms_metadata.get_ddl('TABLESPACE','LM_THIN_DATA'),80) from dual;
select substr(dbms_metadata.get_ddl('TABLESPACE','LM_THIN_DATA'),160) from dual;
select substr(dbms_metadata.get_ddl('TABLESPACE','LM_THIN_DATA'),240) from dual;

더 쉬운 방법이 있어야 할 것 같았지만 찾을 수 없었습니다.


내가 사용하는 것 :

set long 50000
set linesize 130

col x format a80 word_wrapped;
select dbms_metadata.get_ddl('TABLESPACE','LM_THIN_DATA') x from dual;

아니면 내가 뭔가를 놓치고 있습니까?


이 제안 중 어느 것도 저에게 효과가 없었습니다. 마침내 내가 할 수있는 다른 것을 찾았습니다 dbms_output.put_line. 예를 들면 :

SET SERVEROUTPUT ON
begin
for i in (select dbms_metadata.get_ddl('INDEX', index_name, owner) as ddl from all_indexes where owner = 'MYUSER') loop
  dbms_output.put_line(i.ddl);
end loop;
end;
/

팔. 내가 원하는 모든 것을 인쇄했습니다. 그리고 그것은 바로 작동합니다 sqlplus. 별도의 파일이나 다른 곳에 넣을 필요가 없습니다.


Windows에서는 다음을 시도 할 수 있습니다.

  • sqlplus 창에서 오른쪽 클릭
  • 속성 선택-> 레이아웃
  • increase screen buffer size width to 1000

ReferenceURL : https://stackoverflow.com/questions/7384789/how-to-increase-sqlplus-column-output-length

반응형