Differences

This shows you the differences between two versions of the page.

Link to this comparison view

bd:laboratoare:11 [2020/02/18 20:06]
iulia.radulescu [Commenzile SQL*Plus]
bd:laboratoare:11 [2022/05/17 12:35] (current)
sorin.ciolofan [Comenzi SQL*Plus]
Line 1: Line 1:
 ====== Laborator 11 - Formatarea datelor de ieșire în SQL*Plus ====== ====== Laborator 11 - Formatarea datelor de ieșire în SQL*Plus ======
  
-==== Obiective ====+===== Obiective ​=====
  
   * Formatarea datelor de ieșire   * Formatarea datelor de ieșire
Line 9: Line 9:
   * Comenzile BREAK și COMPUTE   * Comenzile BREAK și COMPUTE
  
-===== Commenzile ​SQL*Plus =====+ 
 + 
 +===== Comenzile ​SQL*Plus =====
  
 Comenzile SQL*Plus sunt folosite pentru: Comenzile SQL*Plus sunt folosite pentru:
Line 18: Line 20:
   * Interceptarea și interpretarea mesajelor de eroare   * Interceptarea și interpretarea mesajelor de eroare
  
-=== Comenzi SQL*Plus ===+==== Comenzi SQL*Plus ​====
  
   * **<​nowiki>​@</​nowiki>​** – execută un fișier de comenzi indirecte   * **<​nowiki>​@</​nowiki>​** – execută un fișier de comenzi indirecte
Line 59: Line 61:
   * Acești parametri au valori implicite la deschiderea unei sesiuni în SQL*Plus, dar sunt situații când unii trebuie modificați conform cerințelor utilizatorului și la terminarea sesiunii revin la valorile implicite.   * Acești parametri au valori implicite la deschiderea unei sesiuni în SQL*Plus, dar sunt situații când unii trebuie modificați conform cerințelor utilizatorului și la terminarea sesiunii revin la valorile implicite.
  
-=== Parametrii pentru 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| 
 +| **<​nowiki>​ECHO {OFF|ON}</​nowiki>​** | controlează cum sunt afișate comenzile executate dintr-un fișier de comenzi (OFF – valoarea implicită – suprimă acest lucru)| 
 +| **<​nowiki>​FEED[BACK] {6|n|OFF|ON}</​nowiki>​** | 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| 
 +|**<​nowiki>​HEA[DING] {OFF|ON}</​nowiki>​** | 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 | 
 +| **<​nowiki>​PAU[SE] {OFF|ON|text}</​nowiki>​** | permite oprirea afișării pe ecran în timpul unei interogări,​ valoarea implicită este OFF | 
 +| **<​nowiki>​SHOW[MODE] {OFF|ON}</​nowiki>​** | 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) | 
 +| **<​nowiki>​SQLCASE {MIXED|LOWER|UPPER}</​nowiki>​** | permite convertirea comenzilor SQL înainte de execuție. **LOWER/​UPPER** convertesc comenzile iar **MIXED** (valoarea implicită) va lăsa textul nemodificat| 
 + 
 +<color red> Ex. 1. </​color>​ 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. 
 + 
 +{{:​bd:​laboratoare:​lab11_ex1.png?​200|}} 
 + 
 +=== Comanda COLUMN === 
 + 
 +  * Această comandă este folosită pentru definirea și formatarea coloanelor de ieșire. 
 + 
 +=== 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 | 
 +| **<​nowiki>​JUS[TIFY] L[EFT]|C[ENTER]|R[IGHT]</​nowiki>​** | specifică alinierea antetului (implicit dreapta pentru coloane numerice și stânga pentru celelalte tipuri) | 
 +| **<​nowiki>​LIKE {expr/​alias}</​nowiki>​** | 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 | 
 +| **<​nowiki>​NOPRI[NT] |PRI[NT]</​nowiki>​** | specifică dacă coloana va fi afisata | 
 +| **<​nowiki>​NULL {number|text}</​nowiki>​** | specifică ce număr sau text va fi afișat pentru o valoare nulă | 
 +| **<​nowiki>​ON|OFF</​nowiki>​** | controlează starea setărilor pentru o coloană | 
 +| **<​nowiki>​WRA[PPED]|[WOR[D_WRAPPED]|TRU[NCATED]</​nowiki>​** | specifică cum va fi afișat un șir prea lung pentru o coloana | 
 + 
 +<color red> Ex. 2. </​color>​ Să se listeze //id_dep//, //​functie//,​ //id_ang//, //​salariu//,​ //​comision//​ și venitul lunar pentru anajații din departamentul 30. Formatați coloanele. 
 + 
 +{{:​bd:​laboratoare:​lab11_ex2.png?​550|}} 
 + 
 +=== Comenzile TTITLE si BTITLE === 
 + 
 +  * Comanda TTITLE se folosește pentru formatarea titlui de început al unui raport. 
 +  * Comanda BTITLE se folosește pentru formatarea titlui de sfârșit al unui raport. 
 + 
 +=== 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| 
 + 
 +<color red> Ex. 3. </​color>​ Să se creeze un raport care afișează //id_ang//, //nume//, //​functie//,​ //​data_ang//​ și //salariu// pentru angajații din departamentul 20. 
 + 
 +{{:​bd:​laboratoare:​lab11_ex3.png?​550|}} 
 + 
 +===== Rapoarte ===== 
 + 
 +Un raport poate fi fragmentat după: 
 +  * Coloană 
 +  * Expresie 
 +  * Rând 
 +  * Raport 
 +Pe un raport se pot executa următoarele acțiuni în urma formatării:​ 
 +  * Salt de n rânduri 
 +  * Salt de pagină 
 +  * Duplicarea sau neduplicarea valorilor pe o coloană 
 + 
 +==== Comenzile BREAK si COMPUTE ==== 
 + 
 +  * Comanda **BREAK** este folosită pentru fragmentarea unui raport în mai multe segmente 
 +  * Comanda **COMPUTE** execută anumite calcule pe segmentele respective 
 +  * Comanda **BREAK** (care face o fragmentare) are următoarea sintaxă: 
 + 
 +**BRE[AK] [ON report_element [action [action]]] ...** 
 + 
 +unde: 
 + 
 +  * report_element are sintaxa: **{column|expr|ROW|REPORT}** 
 +  * action are sintaxa: **[SKI[P] n|[SKI[P]] PAGE] [NODUP[LICATES]|DUP[LICATES]]** 
 + 
 +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)| 
 + 
 + 
 +<color red> Ex. 4. </​color>​ 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. 
 + 
 +{{:​bd:​laboratoare:​lab11_ex4.png?​550|}} 
 + 
 +<color red> Ex. 5. </​color>​ Să se facă un stat de salarii. Să se calculeze impozitul astfel: 
 +  * Dacă venitul <​nowiki><​=</​nowiki>​ 2000, impozitul este 10% din venit 
 +  * Dacă venitul > 2000, impozitul este 20% din venit 
 + 
 +{{:​bd:​laboratoare:​lab11_ex5.png?​700|}}
  
-  * **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 
  
  
bd/laboratoare/11.1582049173.txt.gz · Last modified: 2020/02/18 20:06 by iulia.radulescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0