oracle sqlplus - ghdrako/doc_snipets GitHub Wiki

Polecenia edycji komendy

Polecenie Opis
A[PPEND] tekst Dołącza tekst do bieżącego wiersza
C[HANGE] /stary/nowy Zmienia tekst określany przez stary na tekst nowy
CL[EAR] BUFF[ER] Usuwa wszystkie wiersze z bufora
D
DEL Usuwa bieżący wiersz
DEL x Usuwa wiersz określany przez liczbę x (wiersze są numerowane od 1)
L[IST] Wyświetla listę wszystkich wierszy przechowywanych w buforze
L[IST] x Wyświetla wiersz nr x
R[UN] lub / Uruchamia instrukcję przechowywaną w buforze. Można do tego użyć również polecenia /
x Wiersz x staje się bieżący

Uruchomienie polecenia basha

!df -h

Dziala bardzo wolno zrzut do pliku:

sqlplus -s "${USER}/${PASS}@${DB}" <<EOF > "$OUTPUT_FILE"
SET PAGESIZE 0 FEEDBACK OFF VERIFY OFF HEADING OFF ECHO OFF TRIMSPOOL ON
${SQL_QUERY}
EXIT;
EOF

Szybciej dziala uzycie SOOL-a

sqlplus -s "${USER}/${PASS}@${DB}" <<EOF
SET PAGESIZE 0 FEEDBACK OFF VERIFY OFF HEADING OFF ECHO OFF TRIMSPOOL ON
SPOOL $OUTPUT_FILE
${SQL_QUERY}
SPOOL OFF
EXIT;
EOF

Konfiguracja

SET PAGESIZE 0
SET LINESIZE 32767
SET LONG 50000
SET LONGCHUNKSIZE 50000
SET TRIMSPOOL ON
SET FEEDBACK OFF
SET ECHO OFF
SET HEADING OFF
SET TERMOUT OFF

  • SET PAGESIZE 0
    • Usuwa przerwy stron i nagłówki kolumn co X wierszy.
    • Dzięki temu dane lecą "ciągiem" – bez pustych linii i powtarzanych nagłówków.
    • Najważniejsze przy eksportach.
  • SET LINESIZE 32767
    • Ustawia maksymalną długość jednej linii.
    • Zapobiega łamania długich wierszy na kilka linii.
    • 32767 to maksymalna wartość w SQL*Plus.
  • SET LONG 50000
    • Określa ile znaków pola typu LONG lub CLOB może zostać wyświetlone.
    • Domyślnie jest bardzo mało – 80 znaków (!), więc bez tego długie teksty byłyby obcięte.
  • SET LONGCHUNKSIZE 50000
    • Kontroluje rozmiar porcji (chunk) przy odczycie pól LONG/CLOB.
    • Pomaga przy pełnym zrzucie dużych kolumn tekstowych, zwiększa wydajność.
  • SET TRIMSPOOL ON
    • Usuwa końcowe spacje z każdej linii wypisywanej do pliku (spool).
    • Bardzo przydatne przy CSV lub plikach, gdzie nie chcesz śmieci na końcu linii.
  • SET FEEDBACK OFF
    • Wyłącza komunikat typu: 12 rows selected.
    • Dzięki temu nie masz "śmieci" w pliku wynikowym.
  • SET ECHO OFF
    • Nie wyświetla treści zapytań w wynikach.
    • Gdy masz dużo SELECT, INSERT, BEGIN, itd. – nie będą wypisywane.
  • SET HEADING OFF
    • Wyłącza nagłówki kolumn w wynikach zapytań.
    • Idealne przy eksportach danych do pliku.
  • SET TERMOUT OFF
    • Nie pokazuje wyników zapytań w terminalu, tylko np. do spoola.
    • Przyspiesza działanie, szczególnie przy dużych zbiorach danych.
    • Uwaga: działa tylko w skryptach (nie w interaktywnej sesji).
⚠️ **GitHub.com Fallback** ⚠️