ALTE DOCUMENTE
|
|||||||
SQL*Plus este un produs Oracle care furnizeaza o fereastra deschisa asupra bazei de date Oracle. El da posibilitatea programatorilor si utilizatorilor sa interactioneze direct cu baza de date. SQL*Plus are un interpretor de linii de comanda unde utilizatorii pot lansa direct comenzi SQL si SQL*Plus si blocuri PL/SQL.
Comenzile SQL si blocurile PL/SQL sunt lansate în SQL*Plus pentru a interoga, a manipula 636p1521g si a elimina date din bazele de date Oracle. Practic, utilizarea SQL*Plus este cea mai comuna metoda de a interactiona cu baza de date Oracle. Comenzile SQL*Plus sunt folosite pentru'a controla mediul SQL*Plus si pentru a formata informatiile bazei de date returnate de comenzile SQL.
Printre variabilele de mediu pe care le puteti controla se numara dimensiunea paginilor si a liniilor pe parcursul unei sesiuni afisarea mesajelor de feedback ale serverului si daca vreti ca datele afisate sa fie însotite de un antet.
SQL*Plus reprezinta pentru utilizatorii Oracle, fie ca sunt utilizatori finali, administratori de baze de date sau programatori, o cale convenabila de a interactiona cu baza de date. Prin intermediul SQL*Plus puteti efectua urmatoarele:
Gestionarea tuturor aspectelor bazei de date
Introducerea, editarea, citirea si rularea instructiunilor SQL si a blocurilor PL/SQL
Crearea unor rapoarte formatate
Afisarea definitiilor coloanelor pentru orice tabel
Accesarea si copierea datelor între baze de date
Transmiterea mesajelor catre si receptionarea raspunsurilor de la un utilizator final
Generarea dinamica a codului SQL si SQL*Plus
SQL*Plus este produsul cel mai utilizat pentru executarea comenzilor SQL si pentru formatarea rezultatelor interogarilor, însa nu este singura cale de a interactiona cu serverul Oracle. Exista si alte produse Oracle, cum ar fi Case*Designer, Data Browser si SQL*Fornîs, care va permit sa interactionati cu baza de date.
SQL*Plus se foloseste în mediul linie de comanda pentru a controla diverse caracteristici ale sesiunii dumneavoastra Oracle. Paragraful urmator descrie SQL*Plus si diversele sale utilizari.
Comenzile de mediu ale SQL*Plus definesc parametrii sistemului în care lucrati. Pentru controlul acestor parametri sa folosesc comenzile set si show. Comanda set se foloseste cu un numar mare de optiuni care controleaza interactiunea terminalului utilizatorului cu alte comenzi SQL. Comanda show este utilizata pentru afisarea valorilor curente ale diversilor parametri care au fost stabiliti cu comanda set. Sintaxa generala a comenzii set este:
set parametru valoare
Paragraful urmator prezinta în detaliu diverse comenzi SQL*Plus.
Acesti parametri stabilesc aspectul general al sesiunii SQL*Plus. Valorile acestor parametri le stabiliti cu comanda set. Iata optiunile care pot fi folosite împreuna cu comenzile pentru controlul sesiunii:
feedback n |
Aceasta optiune stabileste numarul de înregistrari returnate de o interogare, atunci când interogarea retumeaza cel putin n înregistrari. Valoarea prestabilita este 6. |
Feedback on/off |
Stabileste daca vor fi afisate sau nu înregistrarile returnate de interogari. Valoarea prestabilita este on. |
pause msg |
Afiseaza un mesaj dupa umplerea unui ecran cu date de iesire atunci când sunt generate rapoarte. Când este afisat mesajul, utilizatorul raspunde apasând Enter. Nu exista valoare prestabilita. |
Pause on/off |
Determina daca se efectueaza sau nu pauza dupa umplerea unui ecran. Valoarea prestabilita este on. |
pagesize n |
Stabileste numarul de linii per pagina la n. Valoarea prestabilita este |
linesize n |
Stabileste numarul de caractere per linie la n. Valoarea prestabilita este 80. |
heading on/off |
Determina daca antetele coloanelor sunt afisate sau nu. Valoarea prestabilita este on. |
space n |
Stabileste numarul de spatii dintre coloane. Valoarea maxima este 10. Valoarea prestabilita este 1. |
echo on/off |
Determina daca fiecare comanda dintr-un fisier text este afisata pe ecran atunci când este executata. Valoarea prestabilita este off. |
Verify on/off |
Determina daca fiecare comanda dintr-o instructiune SQL este afisata înainte si dupa substituirea parametrilor formali cu parametrii actuali. Valoarea prestabilita este on. |
Exemplul urmator ilustreaza câtiva dintre acesti parametri:
set pagesize 6
set pause 'Apasati <return> pentru a continua...'
set pause on
select nume_oras from index_orase;
Date de iesire
NUME_ORAS |
charlotte
chicago
clarion
davidson
donaldston
dover
Apasati <return> pentru a continua...
Parametrii urmatori controleaza formatul antetelor si subsolurilor rapoartelor:
ttitle |
Defineste textul antetului în mod prestabilit, aceasta comanda centreaza antetul. Inserati o linie verticala în text pentru a desparti antetul pe mai multe linii. |
ttitle off |
Dezactiveaza afisarea antetului. |
Btitle |
Defineste textul subsolului în mod prestabilit, aceasta comanda centreaza subsolul. |
btitle off |
Dezactiveaza afisarea subsolului. |
Toate valorile parametrilor ramân active pâna în momentul în care sunt modificate în mod explicit sau pâna la încheierea sesiunii SQL*Plus. De aceea, este recomandabil sa stergeti antetul si subsolul dupa fiecare raport. Comanda SQL*Plus care urmeaza plaseaza un antet si un subsol în raport:
set pagesize 22
set linesize 60
set feedback off
ttitle 'vânzari lunare!pe luna iunie'
btitle 'confidential'
select zona_vanzari, totaluri_vanzari from lista_vanzari
where luna_vanzari = '06';
Date de iesire
Vânzari lunare
pe luna Iunie
ZONA VÂNZĂRI |
TOTALURI VÂNZĂRI |
|
North East | ||
Suoth East | ||
Mid West | ||
Plains | ||
South West | ||
West |
|
|
North West |
Confidential
ttitle off btitle off
Parametrii pentru controlul afisarii coloanelor va permit sa modificati titlurile si formatele coloanelor raportului.
column nume_coloana |
Afiseaza valorile curente ale parametrilor coloanelor specificate |
Column |
Afiseaza valorile parametrilor tuturor coloanelor |
column nume_coloana clear |
sterge valorile parametrilor coloanelor specincate |
clear columns |
sterge valorile parametrilor tuturor coloanelor |
Toate valorile parametrilor ramân active pâna în momentul în care sunt modificate în mod explicit sau pâna la încheierea sesiunii SQL*Plus. De aceea, este recomandabil sa stergeti antetul si subsolul dupa fiecare raport. Exemplul urmator este identic cu cel anterior, cu exceptia faptului ca sunt specificate antetele coloanelor.
set pagesize 22
set linesize 60
set feedback off
ttitle 'Vânzari lunare!pe luna Iunie'
btitle 'Confidential'
column zona_vanzari heading 'Zona Vânzari' format A15
column totaluri_vanzari heading 'Total Vânzari' format
select zona_vanzari, totaluri_vanzari from lista_vanzari where luna_vanzari = '06';
Date de iesire
Vânzari lunare
pe luna Iunie
Zona Vânzari |
Total Vânzari |
|
North East | ||
South East | ||
Mid West | ||
Plains | ||
South West | ||
West | ||
North West |
Confidential
COLUMN zona_vanzari CLEAR
COLUMN totaluri vânzari CLEAR
ttitle off
btitle off
În exemplul precedent, clauza format a fost utilizata pentru a controla pozitia anumitor semne de punctuatie precum si suprimarea caracterelor. Folositi urmatoarele caractere pentru a construi formatul de afisare dorit:
Reprezinta un caracter de suprimare a unui singur zero |
|
Reprezinta pozitia unei virgule |
|
Reprezinta pozitia unui punct |
|
Reprezinta un semn dolar cu pozitie variabila |
|
n |
Stabileste o latime de afisare de n caractere pentru coloane continând caractere si date. |
SQL*Plus va permite sa stocati comenzile dumneavoastra într-un fisier extern cunoscut sub numele de fisier de comenzi. Dupa ce ati creat un fisier de comenzi, puteti sa- încarcati, sa editati si sa- rulati de mai multe ori, spre deosebire de comenzile SQL*Plus interactive.
Pentru a crea un fisier de comenzi, tastati pur si simplu comanda e di t nume_fisier la promptul SQL*Plus. în acest fel activati editorul mediului gazda. Din acest moment, tastati comenzile SQL si SQL*Plus care vreti sa apara în fisierul de comenzi. Când ati terminat, salvati fisierul, în mod prestabilit, extensia fisierului este .sql
Pentru a încarca un fisier de comenzi salvat, introduceti comanda edit nume_f isier. Odata încarcat, puteti sa editati si sa salvati fisierul dupa dorinta.
Pentru a rula fisierul de comenzi, folositi comenzile start sau @. De exemplu, urmatoarele doua instructiuni sunt echivalente, ambele rulând fisierul de comenzi configurare_vanzari sql:
start configurare_vanzari
@configurare_vanzari
Cu comenzile start si ultima linie a blocului SQL sau PL/SQL care a fost executata ramâne în tamponul sesiunii.
Puteti de asemenea sa rulati un fisier de comenzi în timp ce va conectati la SQL*Plus. Acest lucru se realizeaza prin adaugarea dupa numele comenzii sqlplus a numelui dumneavoastra de utilizator si a parolei, precum si a comenzii @ si a numelui fisierului în exemplul urmator, fisierul de comenzi configurare_vanzari este executat imediat dupa executarea conectarii la SQL*Plus.
> sqlplus user_01/parola @configurare__vanzari
Comenzile SQL*Plus sunt pastrate în tampon (buffer). De aceea, fie editati aceste comenzi cu tasta Backspace în timp ce le tastati, fie reintroduceti întreaga comanda.
SQL*Plus poseda numeroase comenzi pe care le puteti folosi pentru a edita blocul SQL sau SQL*Plus care se gaseste în momentul respectiv în tampon. Pentru editarea codului care se gaseste în tampon, puteti folosi urmatoarele comenzi:
append |
Adauga text la sfârsitul liniei |
|
change/vechi/ nou |
Înlocuieste vechi cu nou într-o linie |
|
del |
Elimina o linie |
|
list |
Afiseaza continutul tamponului |
|
list n |
Afiseaza linia n a tamponului |
|
input |
Adauga una sau mai multe linii în tampon |
Aceste comenzi pot fi prescurtate la prima litera a comenzii. Exemplele care urmeaza ilustreaza utilizarea comenzilor de editare. Remarcati faptul ca în dreptul liniei curente a tamponului apare un asterisc (*). In mod prestabilit, linia curenta este ultima linie a tamponului. Acest prim exemplu redenumeste antetul unei coloane:
select zona_vanzari
from lista_vanzari
where nr_dept > '203';
Date de iesire:
ZONA_VANZARI
North East
South East
North West
Acum editati prima linie a bufferului:
SQL> 1
1 select zona_vanzari
2 from lista_vanzari
3* where nr_dept > '203';
SQL> 1 1
1* select zona_vanzari
SQL>a "Regiune"
Listati din nou bufferul pentru a avea confirmarea modificarii liniei
SQL> 1
select zona_vanzari "regiune"
from lista_vanzari
3* where nr_dept > '203';
Acum lansati comanda change pentru a schimba valoarea nr_dept:
SQL> 1 3
3* where nr_dept > '203';
SQL>c/203/205/
Lansati din nou comanda list pentru a avea confirmarea modificarilor:
SQL> 1
select zona_vanzari "Regiune"
from lista_vanzari
3* where nr_dept > '205';
Pentru a rula continutul bufferului dupa editare, lansati comanda r un sau slash ( . Comanda / executa continutul bufferului, în timp ce comanda run afiseaza continutul bufferului, dupa care executa bufferul.
Un raport cu pauze este un raport în care valorile duplicate au fost eliminate din coloana specificata. In plus, în raportul cu pauze, este sarita o linie ori de câte ori se schimba valoarea din coloana cu pauze. Iata un raport normal (fara pauze) generat pe baza tabelului LISTAJVANZARI:
Vânzari lunare |
|
zona_vanzari |
totaluri_vanzari |
North East | |
North East | |
North East | |
South East | |
Mid West | |
Mid West | |
Plains | |
North West | |
North West | |
North West | |
North West |
Confidential
Pentru a crea un raport cu pauze, sunt lansate urmatoarele comenzi SQL*Plus:
set pagesize 22
set linesize 60
set feedback off
ttitle 'Vânzari lunare!pe luna Iunie'
btitle 'Confidential'
column zona_vanzari heading 'Zona Vânzari' format Al5
column totaluri_vanzari heading 'Total Vânzari' format
break on zona_vanzari skip l
select zona_vanzari, totaluri_vanzari from lista_vanzari where luna vânzari = '06';
order by zona vânzari
Date de iesire:
Vânzari
lunare |
|
zona vânzari |
totaluri_vanzari |
North East | |
South East | |
Mid West | |
Plains | |
North West |
Confidential
Dupa ce ati împartit raportul în subunitati cu comanda break, puteti efectua o serie de operatii suplimentare asupra liniilor din fiecare subset. Pentru a face acest lucru, veti folosi comanda compute. Exista opt functii sintetice pe care le puteti folosi într-un raport cu pauze. Iata sintaxa comenzii compute:
COMPUTE functie OF coloana_calculata ON coloana_cu_pauze
Cele opt functii care pot fi folosite cu comanda compute sunt urmatoarele:
Sum |
Calculeaza suma valorilor din coloana |
count |
Calculeaza numarul de valori ne-nule din coloana |
num |
Calculeaza numarul de linii din coloana |
min |
Determina valoarea minima din coloana |
max |
Determina valoarea maxima din coloana |
avg |
Calculeaza media valorilor din coloana |
std |
Calculeaza deviatia standard a valorilor din coloana |
var |
Calculeaza varianta valorilor din coloana |
În continuarea exemplului din paragraful anterior, a fost adaugata comanda compute cu functia sum pentru afisarea totalului vânzarilor din fiecare zona:
set pagesize 22
set linesize 60
set feedback off
ttitle 'Vânzari lunare!pe luna Iunie'
btitle 'Confidential'
column zona_vanzari heading 'Zona Vânzari' format A15
Solumn tota~luri_vanzari heading 'Total Vânzari' format
break on zona_vanzari skip l compute sum of totaluri_vanzari on zona_vanzari
select zona_vanzari, totaluri_vanzari from lista_vanzari where luna_vanzari = '06'; order by zona_vanzari
Date de iesire:
Vânzari lunare | ||
zona vânzari |
totaluri vânzari | |
North East | ||
Sum |
| |
South East | ||
Sum | ||
Mid West | ||
Sum | ||
Plains | ||
Sum | ||
North West | ||
Sum |
Confidential
Pentru a calcula totalul general pentru o coloana, folositi clauza report cu comenzile break si compute. Comanda order by a fost inclusa în acest exemplu pentru a ordona datele de iesire în ordine creascatoare
set pagesize 22
set linesize 60
set feedback off
ttitle 'Vânzari lunare!pe luna Iunie'
btitle 'Confidential'
column zona_vanzari heading 'Zona Vânzari' format A15
column totaluri_vanzari HEADING 'Total Vânzari' format
break on zona_vanzari skip l compute sum of totaluri_vanzari on zona_vanzari on report
SELECT zona_vanzari, totaluri_vanzari FROM lista_vanzari
WHERE luna_vanzari = '06'
ORDER BY zona_vanzari, totaluri _vanzari;
Date de iesire:
Vânzari lunare | ||
zona vânzari |
totaluri vânzari | |
Mid West | ||
Sum | ||
North East | ||
Sum | ||
North West | ||
sum | ||
Plains | ||
sum | ||
South East | ||
sum | ||
sum | ||
Confidential |
Comanda spool este folosita pentru a stoca rezultatele unei interogari într-un fisier extern în format liber. Acest fisier în format liber poate fi salvat pentru a fi utilizat ulterior sau poate fi tiparit la imprimanta dumneavoastra. Comanda urmatoare da instructiuni programului SQL*Plus sa plaseze toate rezultatele interogarilor în fisierul extern în format liber numit vanzari_regionale.rpt: SPOOL
vanzari_regionale.rpt
SQL*Plus continua sa depuna informatii în fisier pâna în momentul în care dezactivati aceasta facilitate cu comanda spool off
Pentru a tipari imediat rezultatele interogarii, depuneti le într-un fisier cu comanda spool. Apoi, lansati comanda spool out. Aceasta comanda opreste depunerea rezultatelor în fisier si copiaza continutul fisierului la imprimanta prestabilita a calculatorului gazda Comanda spool out nu elimina fisierul dupa ce îl tipareste.
Pe lânga depunerea rapoartelor sau a rezultatelor interogarilor într-un fisier în format liber, se practica în mod curent depunerea coloanelor de date în fisiere în format liber. De obicei acest lucru se efectueaza în vederea transferarii datelor dintr-o baza de date în alta. Pentru a face acest lucru, veti depune coloanele necesare într-un fisier cu format liber, dupa care veti folosi SQL*Loader pentru a le încarca în tabelele de destinatie.
înainte de a crea un fisier de date în format liber, trebuie sa lansati comenzile care urmeaza. Aceste comenzi dezactiveaza antetele coloanelor si alte informatii, astfel încât sa rezulte numai datele coloanelor:
set pagesize 0
set linesize 80
set newpage 0
set echo off
set feedback off
set verify off
SQL*Plus este un produs Oracle care va da posibilitatea sa interactionati direct cu baza de date Oracle. Cu SQL*Plus, puteti controla mediul în care lucrati, precum si formatul rezultatelor unei interogari.
Dupa cum ati aflat în acest capitol, SQL*Plus va permite sa creati cu usurinta rapoarte formatate. Mai mult, SQL*Plus va ajuta sa transferati date dintr b baza de date în alta, sa gestionati toate caracteristicile bazei de date, precum si sa introduceti si sa rulati comenzi SQL.
Prin intermediul unei sesiuni interactive sau prin folosirea unui fisier de comenzi, puteti lansa prin intermediul SQL*Plus comenzi destinate sistemului Oracle, comenzi care controleaza mediul de lucru, parametrii sesiunii si formatarea rezultatelor interogarilor.
|