SQL*Plus에서 잘못된 형식 지정
SQL*Plus에서 다음과 같은 선택 명령을 실행하는 것은 정말 짜증나는 일입니다.
SELECT * FROM books;
출력 형식이 잘못되어 읽을 수 없습니다(행 셀이 행에 있지 않고 줄 바꿈 등으로 구분됨).
SELECT 결과를 더 좋은 방식으로 표시하도록 구성하려면 어떻게 해야 합니까?
편집:
이것은 제 로그인입니다.sql 파일 내용:
SET ECHO OFF
SET SERVEROUTPUT ON SIZE 1000000
SET PAGESIZE 999
SET LINESIZE 132
EDIT2:
LINE SIZE 증가 제공:
SET LINESIZE 32000
이제 다음과 같이 표시됩니다.
선 크기를 늘립니다(예:SET LINESIZE 32000
또는 사용SET WRAP OFF
(하지만 긴 값이 잘립니다.)
SQL Plus는 간단한 명령줄 도구입니다. 그것은 사실 예쁜 보도를 위한 것이 아닙니다. 그러나 SQL Plus 사용 설명서에 나와 있는 몇 가지 형식 지정 명령이 있습니다.자세히 알아보세요.
예를 들어 TITLE 열 형식을 선택하여 처음 20자만 표시하고 SUMMARY 열 전체를 다음과 같이 표시할 수 있습니다.
COLUMN title FORMAT a20 TRUNCATED
COLUMN summary FORMAT a4o WORD_WRAPPED
이렇게 하면 투영에 형식 지정 명령을 포함하지 않고 쿼리가 보다 깔끔하게 배치된 것을 볼 수 있습니다.
또는 Quest의 Toad 또는 Oracle의 자체 SQL Developer와 같은 IDE를 사용합니다.이러한 도구에는 쿼리 결과를 더 보기 좋은 그리드에 자동으로 표시하는 쿼리 브라우저가 포함되어 있습니다. (다른 유사한 도구도 사용할 수 있습니다.)
아래와 같은 스크립트 만들기
#!/bin/ksh
FILE="/tmp/queryResult.csv"
sqlplus -s /nolog << !EOF!
connect username/password
SET PAGESIZE 50000
SET LINESIZE 250
SET NUMWIDTH 5
SET FEEDBACK OFF
set echo off
set heading on
set headsep off
set wrap off
SET COLSEP ","
column Title format a22
column Summary format a15
SPOOL $FILE
Select * from books;
SPOOL OFF
EXIT
!EOF!
스크립트를 sqlscript 파일에 저장합니다.sql 파일에 대한 권한 설정
chmode +x sqlscript.sql
스크립트 및 파이프 실행 명령 수 감소
./sqlscript.sql | less -S
출력이 터미널에 설정된 열보다 긴 경우 "S" 옵션을 사용하여 화살표 키로 스크롤할 수 있습니다.
또는 원하는 텍스트 편집기에서 FILE="/tmp/queryResult.csv"를 다운로드하여 열 수 있습니다.
요구 사항에 따라 LINE SIZE, Numwidth, 열 문자 크기(a22)를 조정합니다.
일부는 이 조언을 좋아하지 않을 수도 있지만(SqlPlus를 사랑하는 몇 명의 DBA를 생각할 수 있습니다), Toad 또는 SQL Developer와 같은 IDE를 사용하는 것이 좋습니다.Oracle을 처음 사용하는 경우 sqlplus를 사용하면 시간을 되돌린 것처럼 느낄 수 있습니다. IMO는 SQLPlus가 아닌 Oracle을 배우면서 시간을 보내십시오.(아, 그리고 선택한 IDE에서 놀면서 개념 가이드를 읽으십시오.)
열의 실제 내용에 맞도록 열 너비를 정의합니다.
col column_name1 format a20 -- sets column to be 20 characters wide
col column_name2 format a15 -- sets column to be 15 characters wide
set line 80
select column_name1, column_name2 from books;
이것이 당신을 도울 것입니다.
이렇게 하면 출력을 더 예쁘게 만들 수 있습니다.
SET PAGESIZE 0
SET NEWPAGE 0
SET SPACE 0
SET LINESIZE 1000
SET ECHO OFF
SET FEEDBACK OFF
SET VERIFY OFF
SET HEADING OFF
SET MARKUP HTML OFF SPOOL OFF
SET COLSEP ' '
출처: http://larig.wordpress.com/2011/05/29/formatting-oracle-output-in-sqlplus/
Csv 스타일, 그러나 깨끗함:
SQL> set markup csv on
다음과 같은 모든 답변에 추가합니다.
set colsep "&TAB"
이것은 저에게 효과가 있었습니다.
SELECT ISBN, SUBSTR(TITLE, 0, 16), SUBSTR(SUMMARY, 0, 16), DATE_PUBL, PAGE_COUNT FROM books;
sqlplus에 대시가 너무 많이 표시되면 줄 크기가 너무 크다는 의미입니다.적어도 콘솔의 크기보다 커야 합니다. -> 콘솔의 너비에 맞을 때까지 줄 크기를 줄입니다.
언급URL : https://stackoverflow.com/questions/5771573/ugly-formatting-in-sqlplus
'programing' 카테고리의 다른 글
Mongoose가 배열 내에서 문서를 삭제(풀)하고 개체와 함께 작동하지 않습니다.아이디 (0) | 2023.07.18 |
---|---|
PL/SQL의 숨겨진 기능 (0) | 2023.07.18 |
동적 SQL 결과를 변수에 할당 (0) | 2023.07.18 |
Firebase 배포가 JS 파일을 업데이트하지 않음 (0) | 2023.07.08 |
Git에서 현재 체크아웃된 커밋 찾기 (0) | 2023.07.08 |