Saya punya meja dengan 100 kolom. Saat memilih data dalam SQL Plus
keluaran, membuatnya sulit dibaca.
Yang saya lebih suka adalah bilah gulir horizontal muncul atau mengirim output less
Saya menjalankan pernyataan berikut dalam SQLPlus -
SET LINESIZE 32000;
SET PAGESIZE 40000;
SET LONG 50000;
SPOOL output.txt
SELECT * FROM big_table;
Lalu bash
aku berlari -
lebih sedikit output.txt
Outputnya masih tampak terbungkus dan tidak dapat dibaca.
Jawaban:
Tidak cukup untuk memaksa sqlplus untuk tidak membungkus garis. Anda juga perlu memberi tahu pemirsa bahwa Anda menggunakan untuk melihat file spool untuk tidak membungkus baris. Jika pemirsa Anda
less
maka-S
opsi yang harus Anda gunakan sesuai dengan https://superuser.com/questions/272818/how-to-turn-off-word-wrap-in-less . Pada Unix / Linux Anda dapat menggunakanhead -1 output.txt
untuk mendapatkan baris pertama dari suatu file dan jadi periksa apakah ini seperti yang diharapkan atau Anda dapat menggunakanod -c output.txt|head
untuk melihat di mana garis putus sebenarnya ditempatkan di file output Anda.Jika Anda menampilkan kolom PANJANG dan nilainya berisi jeda baris maka beberapa baris akan dicetak untuk nilai kolom ini dan Anda tidak dapat mengesampingkan ini dengan pengaturan sqlplus.
Perintah sqlplus berikut mungkin berguna:
SET LINESIZE linesize
panjang garis. Dalam kebanyakan kasus, nilai maksimumlinesize
adalah 32767. Anda dapat mengetahui nilai maksimum Anda jika Anda menetapkan LINESIZE ke nilai yang tidak valid dan memeriksa pesan kesalahan sehinggaSET LINESIZE 0
dapat memberikanSP2-0267: linesize option 0 out of range (1 through 32767)
(1)SET TRIMSPOOL ON
jika tidak, setiap baris di spoolfile diisi dengan kosong sampai garis tersebut tercapai.SET TRIMOUT ON
jika tidak, setiap baris dalam output diisi dengan kosong sampai garis tersebut tercapai.SET WRAP OFF
Memotong garis jika lebih panjang dari LINESIZE. Ini seharusnya tidak terjadi jika garis cukup besar.SET TERMOUT OFF
menekan pencetakan hasil ke output. Baris masih ditulis ke file spool. Ini dapat mempercepat waktu pengekspresian sebuah pernyataan.SET PAGESIZE 0
untuk mengatur pageize yang tak terbatas dan menghindari heading, judul dan sebagainya.SET
parameter lain mengenai output (NUMWIDTH, NUMFORMAT, LONG, COLSEP) dan kinerja (ARRAYSIZE, LONGCHUNKSIZE).Anda harus menggunakan
COLUMN
perintah untuk memformat kolom individual.Misalnya
column name format a30
akan memformat kolomname
dalam output hingga panjang maksimum 30 karakter.Jika Anda ingin ukuran tampilan tidak diperbaiki tetapi harus sama dengan ukuran nilai aktual kolom dalam satu baris maka satu-satunya cara saya tahu adalah Anda mengubah klausa pilih pernyataan Anda untuk mendapatkan hasil yang diinginkan dan menggunakan operator penggabung string
||
, misDeskripsi lengkap dari semua variabel dapat ditemukan di Panduan Pengguna dan Referensi SQL * Plus .
Jika Anda ingin menggunakan kembali beberapa pengaturan (atau definisi COLUMN), Anda dapat menyimpannya dalam file dan menjalankan file ini saat Anda membutuhkannya lagi. Anda bahkan dapat menjalankan file ini secara otomatis jika Anda memulai sqlplus.
(1) "Cara Menemukan LINESIZE Nilai Maksimum (Ini Tergantung Sistem) (Doc ID 1547262.1)"
sumber
LONGCHUNKSIZE
bukan hanya tentang kinerja, tampaknya diperlukan untuk menghindari yang tidak diinginkan line-pembungkus selain untukLINESIZE
, hanya bereksperimen dengan keluaran tidak dapat digunakan dariDBMS_METADATA.get_ddl()
SET PAGESIZE 1000
bukan0
sebaliknya kolom header tidak akan mencetak ketika mengeluarkan `SELECT" perintah. Referensi .Anda perlu mengatur di bawah ini:
sumber
set linesize 30000
SET WRAP OFF
melakukan trik untuk sayaAnda dapat mengatur seperti ini
sumber