Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Formatarea rezultatelor Interogarilor cu instructiuni SQL*Plus

Oracle


Formatarea rezultatelor Interogarilor cu instructiuni SQL*Plus

Ce este SQL*Plus?

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.

De ce se utilizeaza produsul SQL*Plus?

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.

Cum se foloseste SQL*Plus

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.

Comenzi de mediu

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.

Parametri pentru controlul sesiunii

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...

Parametri pentru controlul afisarii antetelor si subsolurilor

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

Parametri pentru controlul afisarii coloanelor

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.

Salvarea si încarcarea fisierelor de comenzi

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

Editarea comenzilor

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.

Construirea unui raport cu pauze simplu

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
pe luna Iunie

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
pe luna Iunie

zona vânzari   

totaluri_vanzari

North East

South East

Mid West

Plains

North West

Confidential

Calcule sintetice

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
pe luna Iunie

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
pe luna Iunie

zona vânzari

totaluri vânzari

Mid West

Sum

North East

Sum

North West

sum

Plains

sum

South East

sum

sum

Confidential

spool

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

Rezumat

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.


Document Info


Accesari: 2936
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )