Table of Contents

Laborator 11 - Formatarea datelor de ieșire în SQL*Plus

Obiective

Comenzile SQL*Plus

Comenzile SQL*Plus sunt folosite pentru:

Comenzi SQL*Plus

Comanda SET

Parametrii comenzii SET

Nume parametru Descriere parametru
ARRAY[SIZE] n specifică numărul maxim de linii din buffer rezultate în urma unei interogări, iar n poate fi maxim 5000, valoarea implicită n=20
DEF[INE] {'&'|c|OFF|ON} setează caracterul care prefixează o variabilă de substituție (valoare implicită &) iar ON/OFF este folosit pentru a schimba prefixul în comenzile din buffer
ECHO {OFF|ON} controlează cum sunt afișate comenzile executate dintr-un fișier de comenzi (OFF – valoarea implicită – suprimă acest lucru)
FEED[BACK] {6|n|OFF|ON} afișează numărul de înregistrări returnate de un query când sunt returnate cel puțin n înregistrări, valoarea implicită este 6
HEA[DING] {OFF|ON} controlează dacă sunt afișate aliasurile de coloane, valoarea implicită ON
LIN[ESIZE] n setează numărul de caractere care vor fi afișate pe o linie și de asemenea controlează centrarea si aliniamentul din dreapta a textului. Valoarea maximă pentru n este 500, valoarea implicită este 80
NEWP[AGE] n setează numărul liniilor goale ce vor fi tipărite între pagini (titlul de jos de la fiecare pagina și titlul de sus al paginii urmatoare)
NUMF[ORMAT] format setează formatul implicit pentru afisarea valorilor numerice
NUM[WIDTH] n setează lungimea implicită pentru afișarea valorilor numerice, valoarea implicită este 10
PAGES[IZE] n setează numărul liniilor pe o pagina, valoarea implicită este 24
PAU[SE] {OFF|ON|text} permite oprirea afișării pe ecran în timpul unei interogări, valoarea implicită este OFF
SHOW[MODE] {OFF|ON} permite afișarea variabilelor de sistem când sunt schimbate cu comanda SET, valoarea implicită este OFF
SPA[CE] n setează numărul de spații dintre coloane in timpul afisarii (valoarea implicită este 1, valoarea maxima pentru n este 10)
SQLCASE {MIXED|LOWER|UPPER} permite convertirea comenzilor SQL înainte de execuție. LOWER/UPPER convertesc comenzile iar MIXED (valoarea implicită) va lăsa textul nemodificat

Ex. 1. Să se seteze pagina de afișare la 120 caractere pe linie, 24 de linii pe pagină, un spațiu de 2 caractere între coloanele de afișare, salt de 5 linii între pagini, afișare să se facă fără antetul de coloană și fără a specifica numărul de înregistrări returnate de interogare.

Comanda COLUMN

Parametrii comenzii COLUMN

Nume parametru Descriere parametru
ALI[AS] alias inserează un alias
CLE[AR] resetează opțiunile anterioare
FOLD_A[FTER] inserează CR după antet și după fiecare rând
FOLD_B[EFORE] inserează CR înainte de antet și înaintea fiecarui rând
FOR[MAT] format specifică formatul de afisare An pentru coloane alfanumerice sau unul din formatele numerice
HEA[DING] text definește antetul coloanei
JUS[TIFY] L[EFT]|C[ENTER]|R[IGHT] specifică alinierea antetului (implicit dreapta pentru coloane numerice și stânga pentru celelalte tipuri)
LIKE {expr/alias} copiază setările altei coloane definite anterior
NEWL[INE] salt la linie noua
NEW_V[ALUE] variable specifică o variabilă care va stoca valoarea coloanei
NOPRI[NT] |PRI[NT] specifică dacă coloana va fi afisata
NULL {number|text} specifică ce număr sau text va fi afișat pentru o valoare nulă
ON|OFF controlează starea setărilor pentru o coloană
WRA[PPED]|[WOR[D_WRAPPED]|TRU[NCATED] specifică cum va fi afișat un șir prea lung pentru o coloana

Ex. 2. Să se listeze id_dep, functie, id_ang, salariu, comision și venitul lunar pentru anajații din departamentul 30. Formatați coloanele.

Comenzile TTITLE si BTITLE

Parametrii comenzilor TTITLE si BTITLE

Nume parametru Descriere parametru
COL n se poziționează pe a n-a linie (dacă poziția a fost trecută, se întoarce pe poziția specificată)
SKIP n  se execută salt peste n linii (dacă n=0, se poziționează la începutul liniei curente)
TAB n  se execută salt peste n coloane (dacă n este negativ, se execută salt înapoi)
LEFT  se poziționează articolul care urmează acestei opțiuni în partea stângă a liniei. Dacă nu mai există nicio opțiune de aliniere în comandă, toate articolele vor fi aliniate în ordinea apariției în partea stângă, altfel se aliniază numai cele care apar pana la urmatoarea opțiune
CENTER în acest caz, poziționarea se face central și se ia în calcul lungimea liniei setată cu LINESIZE
RIGHT similar cu opțiunea de mai sus, dar poziționarea se face la dreapta
BOLD se specifică ca afișarea să se facă folosind caractere îngroșate
FORMAT char se specifică formatul de afișare pentru caractere numerice sau alfanumerice
UNDERLINE se specifică ca afișarea să se facă folosind caractere subliniate

Ex. 3. Să se creeze un raport care afișează id_ang, nume, functie, data_ang și salariu pentru angajații din departamentul 20.

Rapoarte

Un raport poate fi fragmentat după:

Pe un raport se pot executa următoarele acțiuni în urma formatării:

Comenzile BREAK si COMPUTE

BRE[AK] [ON report_element [action [action]]] …

unde:

Calculele care se pot face cu comanda COMPUTE sunt:

Operatie Descriere operatie
AVG calcul medie (pentru date de tip number)
COU[NT] numără valorile nenule (pentru orice tip de date)
MAX[IMUM] valoare maximă (pentru date de tip number și char)
MIN[IMUM] valoare minimă (pentru date de tip number și char)
NUM[BER] numără rânduri (pentru orice tip de data)
STD calcul deviație standard pentru valori nenule (pentru date de tip number)
SUM calcul suma pentru valori nenule (pentru date de tip number)
VAR[IANCE] calcul variație (pentru date de tip number)

Ex. 4. Sa se faca un raport care să conțină numele departamentului, numele angajaților, funcția și salariul. Să se calculeze salariu total pe fiecare departament și salariul total pe firma.

Ex. 5. Să se facă un stat de salarii. Să se calculeze impozitul astfel: