wake-up-neo.com

Hässliche Formatierung in SQL * Plus

Es ist wirklich ärgerlich, wenn ich einen select-Befehl in SQL * Plus ausführe, zum Beispiel:

SELECT * FROM books;

Die Ausgabe ist wirklich schlecht formatiert und nicht lesbar (Zeilenzellen stehen nicht in einer Reihe, sondern werden durch Zeilenumbrüche getrennt usw.):

enter image description here

Wie kann ich es konfigurieren, um SELECT-Ergebnisse auf eine schönere Weise anzuzeigen?

BEARBEITEN:

Dies ist der Inhalt meiner login.sql-Datei:

SET ECHO OFF
SET SERVEROUTPUT ON SIZE 1000000
SET PAGESIZE 999
SET LINESIZE 132

EDIT2:

Affer die LINESIZE erhöhen:

SET LINESIZE 32000

Es sieht jetzt so aus:

enter image description here

15
Richard Knop

Erhöhen Sie die Zeilengröße, z. B. SET LINESIZE 32000

oder SET WRAP OFF verwenden (dies wird jedoch lange Werte abschneiden)

21

SQL Plus ist ein einfaches Befehlszeilenprogramm. Es ist nicht wirklich für eine hübsche Berichterstattung gedacht. Es enthält jedoch einige Formatierungsbefehle, die im SQL Plus Benutzerhandbuch beschrieben werden. Finde mehr heraus .

Beispielsweise können Sie die Spalte TITLE so formatieren, dass nur die ersten zwanzig Zeichen und die Spalte SUMMARY in ihrer Gesamtheit wie folgt angezeigt werden:

COLUMN title FORMAT a20 TRUNCATED 
COLUMN summary FORMAT a4o Word_WRAPPED

Auf diese Weise können Sie Ihre Abfrage übersichtlicher anzeigen, ohne Formatierungsbefehle in ihre Projektion einzubetten.

Alternativ können Sie auch eine IDE wie Quest TOAD oder Oracle SQL Developer verwenden. Zu diesen Tools gehört ein Abfrage-Browser, der unsere Abfrageergebnisse automatisch in einem ansprechenderen Raster anzeigt. (Andere ähnliche Tools sind verfügbar).

11
APC

Einige mögen diesen Ratschlag nicht mögen (ich kann mir ein paar DBAs vorstellen, die SqlPlus lieben), aber Sie möchten vielleicht einen IDE like Toad oder SQL Developer verwenden. Wenn Sie noch nicht mit Oracle vertraut sind, werden Sie sich bei sqlplus so fühlen, als wären Sie in die Vergangenheit zurückgesprungen! IMO, verbringen Sie Ihre Zeit damit, Oracle zu lernen, nicht SQLPlus. (Oh, und lesen Sie die Anleitung Concepts , während Sie in Ihrem IDE Ihrer Wahl herumspielen)

7
tbone

Definieren Sie einfach die Spaltenbreite, damit sie zum tatsächlichen Inhalt der Spalten passt

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;

Das sollte dir helfen.

4
Michael Ballent

Machen Sie ein Skript wie unten 

#!/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!

Speichern Sie das Skript in einer Datei, nämlich sqlscript.sql , Und legen Sie die Berechtigung für die Datei fest

chmode +x sqlscript.sql

führen Sie das Skript aus und geben Sie den Befehl less an 

./sqlscript.sql | less -S

Mit der Option "S" können Sie mit den Pfeiltasten blättern, wenn die Ausgabe länger ist als die im Terminal festgelegten Spalten.

Alternativ können Sie FILE = "/ tmp/queryResult.csv" in einem Texteditor Ihrer Wahl herunterladen und öffnen.

Passen Sie die Zeichengröße LINESIZE, NUMWIDTH, (a22) an Ihre Anforderungen an

3
user4909653

Dies kann die Ausgabe schöner machen:

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 ' '

Quelle: http://larig.wordpress.com/2011/05/29/formatting-Oracle-output-in-sqlplus/

2
Bohdan

Das hat für mich funktioniert:

SELECT ISBN, SUBSTR(TITLE, 0, 16), SUBSTR(SUMMARY, 0, 16), DATE_PUBL, PAGE_COUNT FROM books;
1
Brad

Zusätzlich zu all diesen Antworten: 

set colsep "&TAB"
0
Rijad Hadzic