Sunteți pe pagina 1din 16

Formatarea iesirilor cu SQL*Plus

OBIECTIVE Dupa ce veti termina aceasta lectie veti putea face urmatoarele : sa scrieti interogari care necesita o variabila de intrare sa setati mediul SQL*Plus sa afisati liste de valori care sa poata fi usor de citit si intels sa creati si sa executati fisiere de tip script (script files) sa salvati setarile
Scopul lectiei In aceasta lectie veti invata cum sa folositi comenzile SQL*Plus pentru a formata rezultatele (iesirile SQL) in asa fel incit sa fie mai lizibile . Puteti creea un fisier de comanda care sa contina in cadrul interogarii o clauza WHERE pentru a limita rindurile afisate. Pentru a putea schimba valorile pentru care conditia specificata in clauza WHERE sa faca cautarea datelor, ori de cite ori fisierul de comanda este parcurs (adica ori de cite ori se ruleaza interogarea respectiva), se utilizeaza variabile de substitutie. Acestea pot inlocui valorile din clauza WHERE, un text si chiar o coloana sau o denumire de tabel. RAPOARTE INTERACTIVE Exemplele date pina acum nu au fost interactive in nici un fel. Intr-o aplicatie incheiata, utilizatorul ar declansa raportul, raport care s-ar derula fara promptare ulterioara. Domeniul datelor ar fi predeterminat de clauza WHERE fixata in fisierul SQL*Plus. Folosind SQL*Plus puteti creea rapoarte care permit (sau obliga) utilizatorul sa introduca propriile valori pentru a limita domeniul de selectie a datelor. Pentru a creea rapoarte interactive puteti folosi variabile de substitutie intr-un fisier de comanda sau intr-o singura declaratie SQL. Prin variabila se poate intelege un recipient in care valorile sint stocate temporar. VARIABILE DE SUBSTITUTIE Utilizarea variabilelor de substitutie SQL*Plus pentru a stoca temporar valorile -ampersand unic (&) -ampersand dublu (&&) -comenzile DEFINE si ACCEPT Trecerea valorilor variabile intre declaratiile SQL Modificarea dinamica pentru antet (HEADER) si FOOTER (subsol) Variabile de substitutie In SQL*Plus puteti folosi ca variabila de substitutie ampersandul unic (&), pentru a stoca temporar anumite valori, sau puteti predefini variabilele folosind comenzile ACCEPT sau DEFINE. ACCEPT citeste o valoare introdusa de utilizator si o stocheaza intr-o variabila. DEFINE creeaza o variabila si aloca acesteia o valoare.

Exemple de domenii de date limitate - Raportarea datelor unei companii pentru trimestrul curent sau numai pentru luna in curs. - Raportarea unor informatii importante sa fie facuta doar anumitor utilizatori care cunosc o anumita parola . - Afisarea datelor personale numai penru angajatii dintr-un anumit departament. Alte efecte interactive Efectele interactive nu se limiteaza doar la directa interactiune a utilizatorului in cadrul clauzei WHERE. Aceleasi principii se pot utiliza pentru a realiza alte scopuri.De exemplu: - Modificarea dinamica pentru antetul si subsolul paginii (HEADERS si FOOTERS) . - Citirea valorilor de intrare dintr-un fisier (in contrast cu introducerea lor de catre utilizator) . - Trecerea valorilor de la o declaratie SQL la alta . SQL*Plus nu efectueaza nici un fel de validare asupra intrarilor primite de la utilizator in momentul introducerii datelor, cu exceptia verificarii acestor ca tip de data. (Number, date, etc). De aceea trebuie sa va asigurati ca frazele pe care le scrieti pentru utilizatori sint simple si clare. Utilizarea simbolului & pentru variabile de substitutie Utilizati o variabila cu ampersand (&) pentru a sugera utilizatorului introducerea unei valori SQL>SELECT 2 FROM 3 WHERE empno,ename,sal,deptno emp empno=&employee_num;

Enter value for employee_num:7369 EMPNO ENAME SAL DEPTNO ....................................................................................... 7369 SMITH 800 20 Valori de substitutie cu ampersand unic Cind se deruleaza un raport, utilizatorii doresc adeseori sa limiteze datele obtinute dinamic. SQL*Plus asigura aceasta flexibilitate prin intermediul variabilelor utilizatorului.Utilizati un ampersand (&) pentru a identifica fiecare variabila din declaratia dvs. Nu este nevoie sa definiti valoarea fiecarei variabile. NOTATIE Variabila (&) DESCRIERE Indica o variabila intr-o instructiune SQL; Daca variabila nu exista SQL*Plus sugereaza utilizatorului o valoare; SQL*Plus ignora variabila noua imediat dupa ce a fost folosita

Exemplu de mai sus creaza o declaratie SQL pentru a-i prezenta utilizatorului datele unui salariat afisind numarul de cod,numele,salariul,numarul serviciului in care lucreaza salariatul . ! Prin ampersand unic utilizatorul este informat ori de cite ori se executa comanda, daca variabila nu exista.

Utilizarea comenzii SET VERIFY Transmiterea, catre afisaj, a textului unei unei comenzi, inainte si dupa ce SQL*Plus inlocuieste variabilele de substitutie cu valorile alocate. SQL> SQL> 2 3 SET VERIFY ON SELECT empno ,sal, deptno FROM emp WHERE empno=&employee_num;

Enter value for employee_num:7369 old 3:WHERE empno=&employee_num new 3:WHERE empno=7369 ............ Comanda SET VERIFY Pentru a confirma modificarile din declaratia SQL*Plus folositi comanda SET VERIFY. Cind SET VERIFY este activa, SQL*Plus este fortat sa afiseze textul unei comenzi inainte si dupa ce inlocuieste variabilele de substitutie cu valorile alocate. In exemplu de mai sus sint afisate atit valoarea veche cit si cea noua din rubrica EMPNO. Valorile caracterelor si datelor cu variabile de inlocuire Se utilizeaza ghilimelele simple pentru valorile datelor si caracterelor. SQL> SELECT 2 FROM 3 WHERE ename,deptno,sal*12 emp job=&job_title;

Enter value for job_title: ANALIST ENAME DEPTNO SAL*12 --------------------------------------------SCOTT 20 36000 FORD 20 36000 Precizarea valorilor caracterelor si datelor cu variabile de inlocuire Intr-o clauza WHERE valorile folosite pentru siruri de caractere si date calendaristice trebuiesc incadrate intre ghilimele simple. Aceeasi regula se aplica si in cazul variabilelor de substitutie. Pentru a evita introducerea ghilimelelor in momentul derularii, se incadreaza variabila intre ghilimele simple in cadrul declaratiei SQL . In exemplu de mai sus se prezinta o interogare care va afisa numele angajatului, numarul departamentului si salariul anual pentru toti cei incadrati intr-o anumita functie, functie a carei valoare este introdusa de utilizator in momentul rularii interogarii. NOTA: Puteti folosi si functiile UPPER si LOWER cu ampersand. Daca folositi UPPER (&job_title), utilizatorul nu trebuie sa scrie denumirea functiei cu majuscule.

Precizarea denumirilor coloanelor, expresiilor si a textului in timpul derularii interogarii Utilizati variabile de substitutie pentru a suplimenta O conditie WHERE O clauza ORDER BY Expresia (numele) unei coloane Denumirea unui tabel O intreaga declaratie SELECT Precizarea denumirilor coloanelor, expresiilor si a textului in timpul derularii interogarii Exemplul 1 Afisati numarul salariatului si orice alta informatie (coloana ) dorita, impunind o conditie anume, aleasa de dvs. SQL> SELECT 2 FROM 3 WHERE empno,&column_name emp &condition;

Informatie (coloana)

Enter value for column_name:job Enter value for condition : deptno =10 EMPNO JOB ...................................... 7839 PRESIDENT 7782 MANAGER 7934 CLERK

Conditie

! Daca nu introduceti o valoare pentru variabila de substitutie, veti obtine o eroare la executia declaratiei de mai sus. Exemplul 2 Afisati numarul salariatului si orice alta informatie (coloana ) dorita, impunind o conditie anume, aleasa de dvs. SQL> 2 3 4 SELECT FROM WHERE ORDER BY empno,name,job,&column_name emp &condition &order_column;

Enter value for column_name :sal Enter value for condition : sal >=300 Enter value for order_column:ename; EMPNO 7902 7839 7788 ENAME FORD KING SCOTT JOB ANALYST PRESIDENT ANALYST SAL 3000 5000 3000

Precizarea denumirilor coloanelor,expresiilor si a textului in timpul derularii . In exemplu de mai sus se afiseaza numarul de marca al salariatului, numele, functia si orice alta informatie (coloana), precizata de utilizator in timpul derularii, din tabelul EMP. Utilizatorul poate sa precizeze si conditia pentru restrictionarea rindurilor si numele coloanei dupa care datele prezentate trebuie sa fie ordonate. UTILIZAREA VARIABILEI DE SUBSTITUTIE (&&) Utilizati ampersandului dublu(&&) cind doriti sa reutilizati valoarea variabilei, fara a prompta (intreba) utilizatorul de fiecare data. SQL> SELECT 2 FROM 3 ORDER BY empno,ename ,job ,&&column_name emp &column_name;

Enter value for column_deptno EMPNO ENAME 7839 KING 7782 CLARK 7934 MILLER ........................ 14 rows selected Variabila de substitutie ampersand dublu

JOB DEPTNO PRESIDENT 10 MANAGER 10 CLERK 10

In exemplu de mai sus, utilizatorului i se cere sa dea o valoare pentru variabila column_name o singura data . Valoarea furnizata de utilizator, si anume deptno, se foloseste atit pentru afisarea coloanei (clauza SELECT) cit si pentru ordonarea datelor (clauza ORDER BY) . SQL*Plus stocheaza valoarea furnizata folosind comanda DEFINE ; el o va utiliza din nou, ori de cite ori veti face trimitere la denumirea variabilei. Dupa ce a fost definita o variabila, ea ramine in memorie pina la folosirea comenzii UNDEFINE care o va anula . DEFINIREA VARIABILELOR UTILIZATORULUI Puteti defini variabilele in prealabil, utilizind una din cele doua comenzi SQL*Plus -DEFINE :creaza o variabila a utilizatorului de tipul CHAR -ACCEPT :citeste imput-ul utilizatorului si il stocheaza intr-o variabila. Cum se definesc variabilele utilizatorului Puteti defini in prealabil variabilele utilizatorului inainte de a executa o declaratie SELECT . SQL*Plus va ofera doua comenzi pentru definirea si setarea variabilelor utilizatorului : DEFINE si ACCEPT.

Comanda DEFINE DEFINE DEFINE

variabila-valoare variabila

Descriere Creeaza variabila de tip CHAR si ii aloca o valoare. Afiseaza variabila, valoarea si tipul ei (datatype) daca acesta exista ; daca nu, se afiseaza un mesaj prin care ni se comunica ca acel simbol nu a fost definit Afiseaza toate variabilele utilizatorului cu valorile si datatype Citeste un rind din input-ul utilizatorului si il stocheaza intr-o variabila. COMANDA ACCEPT

ACCEPT (vezi sintaxa din ex.urmator)

Creeaza un prompt adaptat cind accepta input-ul utilizatorului Defineste in mod explicit o variabila datatype NUMBER sau DATE Ascunde input-ul utilizatorului din motive de securitate ACCEPT variable [datatype] [FORMAT format] [PROMPT text] {HIDE} COMANDA ACCEPT In sintaxa comenzii ACCEPT: variable este denumirea variabilei care stocheaza valoarea.Daca aceasta nu exista SQL*Plus o creeaza . datatype este fie NUMBER ,CHAR sau DATE. CHAR are o lungime de max 240 bytes. DATE verifica in baza unui model format si datatype este CHAR. precizeaza modelul de format-de exemplu A10 sau 9.999 afiseaza textul inainte ca utilizatorul sa poata sa introduca valoarea ascunde valoarea introdusa de utilizator de exemplu o parola

FOR[MAT] format PROMPT text HIDE

NOTA: nu se ataseaza prefixul de inlocuire SQL*Plus ampersandul (&) cind se face referire la parametrul de inlocuire in comanda ACCEPT. UTILIZAREA COMENZII ACCEPT ACCEPT SELECT FROM WHERE dept PROMPT Introduceti numele departamentului:

* dept dname=UPPER(&dept)

Introduceti numele departamentului:Sales DEPTNO DNAME LOC ........................................................... 30 SALES CHICAGO

Cum se utilizeaza comanda ACCEPT Comanda ACCEPT stocheaza valoarea introdusa de utilizator intr-o variabila numita DEPT. Textul afisat pe ecran in momentul cind i se cere utilizatorului sa introduca o valoare Introduceti numele departamentului: este cel specificat in clauza PROMPT a comenzii ACCEPT. Declaratia SELECT preia valoarea serviciului pe care a introdus-o utilizatorul si o utilizeaza pentru a regasi rindul corespunzator din tabelul DEPT. Daca utilizatorul introduce o valoare pentru denumirea departamentului care exista in tabela DEPT, declaratia SELECT se executa in acelasi mod ca si oricare alta declaratie SELECT preluind valoarea introdusa de utilizator si utilizind-o in clauza WHERE pentru comparatia cu DNAME. De retinut: caracterul & nu apare cind variabila DEPT este in comanda ACCEPT. Caracterul & apare numai in declaratia SELECT. INDRUMARI Ambele comenzi ACCEPT si DEFINE vor crea o variabila, daca variabila nu exista; aceste comenzi vor redefini automat o variabila, daca acea variabila exista. Cind se foloseste comanda DEFINE se folosesc ghilimele simple ( ) pentru a incadra un segment ce contine un spatiu fix Utilizati comanda ACCEPT pentru : - a da un prompt adaptat cind se accepta input-ul utilizatorului, in caz contrar veti vedea optiunea Enter value for variable; - a defini in mod explicit variabila datatype NUMBER sau DATE; - a ascunde input-ul utilizatorului din motive de securitate . COMENZILE DEFINE SI UNDEFINE O variabila ramine definita pina cind : -utilizati comanda UNDEFINE pentru a o anula -iesiti din SQL*Plus Puteti verifica schimbarile efectuate cu comanda DEFINE . Pentru a defini variabilele pentru fiecare sesiune modificati fisierul variabilele sa fie create la inceput. Comenzile DEFINE si UNDEFINE Variabilele sint definite pina cind : - emiteti comanda UNDEFINE pe o variabila; - iesiti din SQL*Plus Cind anulati variabilele, puteti verifica modificarile dvs. efectuate prin comanda DEFINE . Cind iesiti din SQL*Plus, variabilele definite in timpul acelei sesiuni sint pierdute. Pentru a defini acele variabile pentru fiecare sesiune, modificati fisierul login.sql asa incit acele variabile sa fie create la inceput.

login.sql asa incit

CUM SE UTILIZEAZA COMANDA DEFINE Creati o variabila pentru a retine denumirea serviciului . SQL> DEFINE deptname =sales SQL> DEFINE deptname DEFINE DEPTNAME =sales(CHAR) Utilizati variabilele la fel ca si in cazul oricarei alte variabile SQL> SELECT 2 FROM 3 WHERE * dept dname=UPPER (&deptname)

Puteti utiliza comanda DEFINE pentru a crea o variabila si apoi sa utilizati variabila la fel ca si oricare alta variabila. Exemplu de mai sus creeaza o variabila DEPTNAME ce contine denumirea serviciului SALES. Declaratia SQL utilizeaza apoi aceasta variabila pentru a afisa numarul si locul unde se afla serviciul de desfaceri . DEPTNO DNAME LOC ................................................................... 30 SALES CHICAGO Pentru a sterge variabila, folositi comanda UNDEFINE : SQL> UNDEFINE deptname SQL> DEFINE deptname symbol deptname is UNDEFINED CUM SE CONTROLEAZA MEDIUL SQL*Plus Se utilizeaza comenzile SET pentru a controla sesiunea curenta . SET system _variable value Se verifica ce ati fixat utilizind comanda SHOW. SQL> SET ECHO ON SQL>SHOW ECHO echo ON Puteti controla mediul in care lucreaza curent SQL*Plus utilizind comenzile SET. In sintaxa : sistem variable este o variabila care controleaza un aspect al mediului sesiunii value este o valoare pentru variabila sistemului Puteti verifica ceea ce ati fixat utilizind comanda SHOW . In ilustratie aceasta comanda controleaza daca ECHO a fost cuplat sau nu .Pentru a vedea toate valorile variabile ale comenzii SET se utilizeaza comanda SHOW ALL. Pentru mai multe informatii vezi : SQL*Plus Users Guide and Reference.Release 8, Command Reference.

VARIABILELE COMENZII SET ARRAYSIZE COLSEP FEEDBACK HEADING LINESIZE LONG PAGESIZE PAUSE TERMOUT {20/n} {_ / text} {_6 / n / OFF /ON } {OFF /ON } {_80 / n } {_ 80 / n } { _24 /n } {_OFF /ON /text } {OFF /_ON} Descriere Seteaza capacitatea de readucere a datelor din baza de date. Seteaza textul de scris intre coloane.Default este un singur spatiu. Afiseaza numarul de inregistrari produse de un query cind query selecteaza cel putin n inregistrari. Determina daca titlurile rubricilor sint afisate in rapoarte. Seteaza numarul de caractere per linie in raport cu n pentru rapoarte. Seteaza latimea maxima pentru afisarea valorilor LONG. Specifica numarul de rinduri per pagina . Va permite sa controlati derularea (scrolling) terminalului dvs.(Trebuie sa apasati [Return] dupa ce ati vazut fiecare interval). Determina daca rezultatul este afisat pe ecran.

Variabille si valorile comenzii SET SET Variabile si comenzi ARRAY[SIZE]{_20/n} COLSEP{_/text} FEED[BACK]{_6 / n /OFF /ON } HEA[DING] {OFF /ON } LIN[ESIZE] {_80 / n} LONG {_80 / n } PAGES[IZE] {_24 / n } PAU[SE] {_OFF /ON /text } TERM[OUT] {OFF /_ON }

NOTA :Valoarea n reprezinta o valoare numerica .Valorile subliniate de mai sus indica valorile implicite. Daca nu introduceti nici o valoare SQL*Plus aloca valori implicite (default). CUM SE SALVEAZA ADAPTARILE IN FISIERUL login.sql Fisierul login.sql contine comenzile SET standard si alte comenzi SQL*Plus care sint implementate in login. Puteti modifica login.sql sa contina comenzi SET suplimentare . Setarea valorilor implicite (default) folosind fisierul login.sql. Fisierul login.sql contine comenzile SET standard si alte comenzi SQL*Plus de care ati putea avea nevoie la fiecare sesiune. Fisierul se citeste si comenzile sint implementate in login.Cind parasiti (log out) sesiunea, toate setarile se pierd. Modificarea valorilor implicite (default Settings) Aceste valori implementate prin login.sql pot fi schimbate in timpul sesiunii curente. Modificarile efectuate sint curente numai pentru acea sesiune. Imediat ce o intrerupeti acele valori sint pierdute. Adaugati modificari permanente la setarile din fisierul login.sql .
9

COMENZILE FORMATULUI SQL*Plus COLUMN[column option] TTITLE [text / OF / ON ] BTITLE [text / OFF /ON ] BREAK [ON report_element]

Cum se obtine un raport mai usor de citit Puteti controla caracteristicile unui raport folosind urmatoarele comenzi : COMANDA Descriere COL[UMN] [column option] TTI[TLE] {text /OFF /ON ] BTI[TLE] [text / OFF /ON ] BRE[AK] [ON report element] Comanda formatul rubricilor Specifica un headercare sa apara in partea de sus a fiecarei pagini Specifica un footer care sa apara in partea de jos a fiecarei pagini Anuleaza valorile duble si imparte rindurile de date afisate in functie de report element

Indrumari Toata comenzile formatului ramin valabile pina la sfirsitul sesiunii SQL*Plus sau pina ce se scrie altceva pe format ori se sterge. Nu uitati sa resetati toate valorile SQL*Plus setate ca valori implicita (default) dupa fiecare raport. Nu exista nici o comanda pentru a seta variabila SQL*Plus dupa valoarea implicita (default); trebuie sa cunoasteti valoarea specifica sau sa executati log out sau log in din nou . Daca rubricii i se da un nume fals trebuie sa faceti trimitere la acest nume si nu la denumirea initiala a rubricii. COMANDA COLUMN Afisajul comenzilor unei coloane COL[UMN] [ { column / alias } [option]]

CLE[AR] : Sterge orice format de coloana FOR[MAT]format: Schimba afisajul unei coloane folosind un model de format HEA[DING] text: Seteaza titlul coloanei JUS[TIFY] {align}: Aliniaza titlul rubricii la stinga,la mijloc, sau la drapta Optiunile comenzii COLUMN Optiune CLE[AR] FOR[MAT] format HEA[DING]text JUS[TIFY] {align} Descriere Sterge orice format de coloana. Schimba afisajul datelor din coloana. Seteaza titlul coloanei.Daca nu folositi justification,o linie verticala (l) va forta alimentarea rindului. Aliniaza titlul coloanei (nu datele)sa fie la stinga,centru,sau la dreapta.

10

NOPRI[NT] NUL[L] text PRI[NT] TRU[NCATED] WRA[PPED]

Ascunde coloana. Specifica textul de afisat pentru valori nule. Arata coloana . Truncheaza segmentul la sfirsitul primei linii de afisaj. Transfera capatul segmentului la linia urmatoare. CUM SE UTILIZEAZA COMANDA COLUMN

Creaza titlurile coloanelor. COLUMN COLUMN COLUMN ename HEADING Employee /Name FORMAT sal JUSTIFY LEFT FORMAT $99,999.oo mgr FORMAT 99999999 NULL No manager A15

Afisarea setarii curente pentru coloana ENAME COLUMN ename

Anularea setarilor pentru coloana ENAME COLUMN ename CLEAR

Afisarea sau anularea setarilor Pentru a reda sau sterge setarile comenzii COLUMN curente, folositi urmatoarele comenzi: Comanda COL[UMN] column COL[UMN] COL[UMN] column CLE[AR] CLE[AR] COL[UMN] Descriere Afiseaza setarile curente pentru o anumita coloana precizata. Afiseaza setarile curente pentru toate coloanele. Anuleaza setarile pentru o coloana precizata. Anuleaza setarile pentru toate coloanele.

Daca aveti o comanda mai lunga puteti sa o continuati pe linia urmatoare incheind linia curenta cu semnul (-). MODELE DE FORMAT PENTRU COLOANE Element An 9 0 $ L . , Descriere Seteaza latimea unui afisaj de n Cifra unica de suprimare zero Introduce zero premergator Simbolul pentru dolar Valuta locala Pozitia punctului zecimal Virgula ce separa miile Exemplu N/A 999999 099999 $9999 L9999 999.99 9,999 Rezultat N/A 1234 01234 $1234 L1234 1234.00 1,234

11

Modele de format pentru coloane In tabel sint prezentate modele de format pentru COLOANE. Serverul ORACLE afiseaza un segment de semne (#) pound in locul unui numar intreg ale carui cifre depasesc numarul de caractere prevazute in modelul formatului. Afiseaza deasemenea semnele pound in locul unei valori intregi al carei model de format este alfa numeric, dar a carei valoare reala este numerica. UTILIZAREA COMENZII BREAK Suprima dublurile si/sau grupeaza rindurile Pentru a suprima dublurile SQL>BREAK ON ename ON job

Pentru a calcula totalul general report

SQL>BREAK ON

Pentru a imparti rindurile la valorile dorite BREAK ename SKIP 4 ON job SKIP2

SQL>BREAK ON Comanda BREAK

Utilizati comanda BREAK pentru a imparti rindurile si a suprima valorile duble. Pentru a va asigura ca respectiva comanda BREAK functioneaza corect este bine sa ordonati datele in clauza ORDER BY dupa coloanele specificate in comanda BREAK. SINTAXA BREAK unde: on column[ /alias / row ] [skip n /dup/pag] on...[on report] pag skip n trece la o pagina noua cind valoarea de BREAK se schimba. sare n linii cind valoarea BREAK se schimba. BREAK poate activa asupra : -coloanelor -rindurilor -paginilor -raportului afiseaza valorile duble

duplicate

Pentru anularea setarilor BREAK se utilizeza comanda CLEAR : CLEAR BREAK

12

UTILIZAREA COMENZILOR TTITLE SI BTITLE Afisarea headers si footers TTI[TLE] [text /OFF /ON]

Setarea header a raportului SQL>TTITLE Salary /Report Setarea footer a raportului SQL>BTITLE Confidential Comenzile TTITLE si BTITLE Utilizati comanda TTITLE pentru a formata header-ul paginii si comanda BTITLE pentru footers .Footers apare la baza paginii in concordanta cu valoarea PAGESIZE. Sintaxa pentru BTITLE si TTITLE este identica. Se reda numai sintaxa pentru TTITLE. Puteti utiliza bara verticala (I) pentru pentru a desparti textul de titlu pe mai multe rinduri. Sintaxa : text reprezinta titlul. Se introduc ghilimelele simple daca textul contine mai multe cuvinte.

In exemplu TTITLE se seteaza header-ul pentru a afisa SALARY in centru pe un rind si REPORT centrat, sub acesta. In exemplu BTITLE se seteaza footer-ul raportului sa afiseze CONFIDENTIAL. TTITLE pune automat data si numarul paginii in raport. NOTA: In exemplul de mai sus se prezinta sintaxa prescurtata pentru TTITLE si BTITLE. Diverse optiuni pentru TTITLE si BTITLE sint prezentate in alt curs SQL. CUM SE CREAZA UN SCRIPT FILE CARE SA DERULEZE UN RAPORT 1. 2. 3. 4. 5. 6. 7. 8. Se creeaza declaratia SQL SELECT Se salveaza declaratia SELECT in script file Se incarca script file intr-un editor Se executa comenzile de formatare inainte de declaratia SELECT Se verifica daca caracterul terminatiei urmeaza declaratia SELECT Se sterg comenzile de formatare dupa declaratia SELECT Se salveaza script file Se introduce START filname pentru a executa script-ul

Cum se creeza un script file care sa deruleze un raport Puteti fie sa introduceti fiecare din comenzile SQL*Plus la promterul SQL, fie sa puneti toate comenzile, inclusiv declaratia SELECT in fisierul de comanda (sau script). Un script tipic consta din cel putin o declaratie SELECT si mai multe comenzi SQL*Plus.

13

Etape pentru creearea unui Script File 1. Se creeaza declaratia SQL SELECT la promtul SQL. Se asigura ca datele necesare raportului sint exacte inainte de a salva declaratia in fisier si a aplica comenzile de formatare.Verificati incluserea clauzei ORDER BY in declaratia SELECT , daca intentionati sa introduceti in raport comanda BREAK . 2. Salvati declaratia SELECT in script file. 3. Editati script file pentru a introduce comenzile SQL*Plus. 4. Executati comenzile de formatare inainte de declaratia SELECT. Asigurati-va ca nu ati introdus comenzile SQL*Plus in declaratia SELCT. 5. Verificati daca SELECT este urmata de un caracter de executare, fie punct si virgula(;), fie slash(/). 6. Se adauga comenzile de stergere a formatului SQL*Plus dupa caracterul de executare (derulare). 7. Se salveaza script file cu modificarile facute de dvs. 8. In SQL*Plus, se executa script file introducind comanda START filename sau @ filename. Aceasta comanda este necesara pentru a citi si executa script file. Indrumari Puteti include rinduri goale intre comenzile SQL*Plus dintr-un script. Puteti abrevia comenzile SQL*Plus. Includeti comenzile de resetare la sfirsitul fisierului pentru a reface mediul original SQL*Plus . MODEL DE RAPORT Fri Oct 24 Employee Report Job Category ............................................. CLERK CLERK CLERK CLERK MANAGER MANAGER MANAGER SALESMAN SALESMAN SALESMAN SALESMAN Employee ........................................... ADAMS JAMES MILLER SMITH BLAKE CLARK JONES ALLEN MARTIN TURNER WARD Confidential Salary ............................................ $1,100.00 $950 .00 $1,300.00 $800.00 $2,850.00 $2,450.00 $2,975.00 $1,600.00 $1,250.00 $1,500.00 $1,250.00 page 1

EXEMPLU Se creeaza un script file pentru a initia un raport care afiseaza functia, numele si salariul fiecarui angajat al carui salariu este sub 3000$. Se adauga headerul pe centru pe doua rinduri pentru titlul Raport cu salariatiisi la baza centrat footerul confidential . Se redenumeste coloana JOB pentru a citi Job category impartita pe doua rinduri. Se redenumeste coloana EMPLOYEE pentru a citi numele salariatilor. Se redenumeste coloana pentru salar pentru a citi Salary si se formateaza ca 2500$

14

SET PAGESIZE 37 SET LINESIZE 60 SET FEEDBACK OFF TTITLE EmployeeIReport BTITLE Confidential COLUMN job HEADING JobICategory COLUMN ename HEADIHG Employee COLUMN sal HEADING Salary REM ** Insert SELECT statement SELECT job,ename,sal FROM emp WHERE sal<3000 ORDER BY job,ename REM reprezinta observatia sau comentariul in SQL*Pus REZUMAT Rezumat

Format A15 Format A15 Format $99,999.99

Variabilele de substitutie SQL*PLUS se utilizeaza pentru stocarea temporara a valorilor. Comenzile SET se utilizeaza pentru a controla mediul SQL*PLUS. Comanda COLUMN se utilizeaza pentru a controla afisajul unei coloane. Comanda BREAK se utilizeaza pentru a suprima dublurile si a diviza rindurile . Se utilizeaza TTITLE SI BTITLE pentru a afisa headers si footers.

Variabilele de substitutie sint utile la executarea rapoartelor. Ele permit flexibilitatea de a inlocui valorile dintr-o clauza WHERE, numele coloanei si expresii. Puteti administra rapoarte scriind script files cu: - variabile de substitutie cu ampersand unic - comanda ACCEPT - comanda DEFINE - variabile de substitutie in linia de comanda Puteti creea un raport mai usor de citit utilizind urmatoarele comenzi: - COLUMN - TTITLE - BTITLE - BREAK

15

PREZENTAREA GENERALA DIN PUNCT DE VEDERE PRACTIC Se creeaza un query pentru a afisa valorile care folosesc variabile de substitutie. Se initiaza un fisier de comanda care contine variabile. Se utilizeaza comanda ACCEPT

Aceasta lucrare va da ocazia sa creati fisiere care pot fi executate interactiv folosind variabile de substitutie, pentru a creea criteriile de selectare in timpul derularii interogari. LUCRARE PRACTICA Determinati daca declaratiile urmatoare sint adevarate sau false : 1. O variabila de substitutie cu ampersand unic promteaza numai o data. Adevarat /Fals 2. Comanda ACCEPT este o comanda SQL. Adevarat / Fals 3. Scrieti un Script file pentru a afisa numele, functia si data angajarii pentru toti salariatii care au inceput sa lucreze intr-o anumita perioada. Se concateneaza numele si functia impreuna, separate de un spatiu si virgula si etichetati coloana Employees. Promptati utilizatorul pentru doua intervale folosind comanda ACCEPT. Se utilizeaza formatul MM/DD/YY. Se salveaza script file ca p8q3.sql . 4. Scrieti un script pentru a afisa numele salariatului, functia si denumirea serviciului. Conditia search trebuie sa permita cautarea denumirii case_insensitive. Salvati script file cap8q4.sql . 5. Modificati p8q4.sql pentru a crea un raport ce contine denumirea serviciului, numele salariatului, data angajarii, salariul si salariul anual al fiecarui angajat pentru toti salariatii dintr-un loc dat. Se prompteaza utilizatorul pentru o locatie. Se eticheteaza coloanele DEPARTMENT NAME, EMPLOYEE NAME, START DATE, SALARY si ANNUAL SALARY, plasind etichetele pe mai multe linii.Se salveaza script-ul ca p8q5.sql .

16

S-ar putea să vă placă și