|
Politica de confidentialitate |
|
• domnisoara hus • legume • istoria unui galban • metanol • recapitulare • profitul • caract • comentariu liric • radiolocatia • praslea cel voinic si merele da aur | |
Tipuri de date compuse - Oracle | ||||||
|
||||||
s9t18tl In acest capitol se arata cum se declara si utilizeaza variabile compuse in PL/SQL. In mod normal, inregistrarile permit aceasta facilitate, permitind reprezentarea unei linii de la o tabela sau un view. Inregistrari in PL/SQL CE SUNT? - O variabila care poate tine citeva valori separate - O colectie de cimpuri adresabile CUM SUNT DECLARATE INREGISTRARILE? - utlizand %ROWTYPE se utlizand atribute declarate Single-row structura bazata pe o tabela,sau cursor Inregistrari in PL/SQL O inregistrare PL/SQL este o variabila care poate contine valori separate,fiecare adresabila individual. Partile componente ale unei inregistrari se numesc campuri, si au nume care pot fi referentiate in atribuiri sau expresii. Campurile dintr-o inregistare pot avea tipuri de date si marimi diferite. Aceasta inseamna ca inregistrarile sunt foarte avaantajoase cand preluam o linie dintr-un tabel pentru procesare intr-un program PL/SQL. Atributul %ROWTYPE Cimpurile sint declarate intr-o sectiune bloc DECLARE impreuna cu celelalte tipuri de variabile pe care le-am vazut. Sintaxa: identifier reference%ROWTYPE ; Unde 'identifier' este numele ales pentru inregistrare ca un intreg, si reference este numele unei tabele, view sau cursor pe care se bazeaza inregistrarea. Aceasta referinta trebuie sa vie valida la momentul cind inregistrarea este declarata, adica trebuie sa existe. Examplu:DECLARE emp_rec emp%ROWTYPE BEGIN SELECT * INTO emp_rec FROM emp WHERE empno = 7788; Starea inregistrarii emp_rec este aratata mai jos: Empno Ename Job ... 7788 SCOTT ANALYST ... Cimpurile dintr-o inregistrare pot fi referite individual, atit in PL/SQL cit si in instructiunile SQL care apar intr-un bloc. Exemplu:IF emp_rec.sal < 2000 AND emp_rec.job = 'MANAGER' THEN underpaid := TRUE ; END IF; review_date := emp_rec.hiredate +90 ; INSERT INTO emp_history(empno, job, sal, date_stamp) VALUES (emp_rec.empno, emp_rec.job, emp_rec.sal, SYSDATE); O intreaga inregistrare poate fi asignata ca valoare unei alte inregistrari, daca tabelele folosite pentru definirea lor se potrivesc. EXEMPLU:DECLARE record1 salgrade%ROWTYPE; record2 salgrade%ROWTYPE; BEGIN . record2:=record1; O intrega inregistrare NU poate fi trecuta listei VALUES al instructiunii INSERT.Trebuie sa parcurgeti fiecare camp separat.INSERT INTO salgrade (grade,losal, hisal) VALUES(record1);-- Illegal INSERT INTO salgrade(grade, losal, hisal) VALUES(record1.grade, record1.losal, record1.hisal);--legal Si va vom arata in urmatorul capitol, ca atributul %ROWTYPE poate fi utilizat pentru a declara inregistrari bazate pe cursoare explicite. Aceste inregistrari pot fi utilizate in FETCHuri si in cicluri cu cursor FOR .Inregistrari definite de utilizatori MANIPULAREA %ROWTYPE INREGISTRARI SI CAMPURI DECLARE record 1 salgrade%ROWTYPE; record 2 salgrade%ROWTYPE; BEGIN . record2:=record1; EXEMPLU2 -- scrierea unei tabeleINSERT INTO emp_history(empno,job,sal,date_stamp) VALUES(emp_rec.empno,emp_rec.job,emp_rec.sal.,SYSDATE); |
||||||
|
||||||
|
||||||
Copyright© 2005 - 2024 | Trimite document | Harta site | Adauga in favorite |
|