oracle sqlplus - ghdrako/doc_snipets GitHub Wiki
- https://blog.mclaughlinsoftware.com/2021/05/25/sqlplus-tutorial/
- https://docs.oracle.com/en/database/oracle/oracle-database/19/sqpug/SQL-Plus-quick-start.html
- https://holowczak.com/oracle-sqlplus-tutorial/19/
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 |
!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.
- Wyłącza komunikat typu:
-
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).