SQL - Baze de Date Relationare
SQL - Baze de Date Relationare
'0@0'/'/#0 #$ +-0,("-!"#"$%0 !$ SYSDATE %, -,%1 +0'*/-0
S/%1$A$3
QCONSTRAINT %,*0 !"%-1'$%90'0R CHECK B!"%(/1/0D
Alte optiuni ale constrangerilor
DISABLE A($,9$%( DISABLE ,%0/ (0@/%/1// (0 !"%-1'$%90'0
/%-0$*%$ !$ ORACLE %, " @"'10$6$7
C"%-1'$%90'0$ +"$10
@/ /%!$ !/1/1$ (0 ,%0#10#0 ORACLE +0%1', $
!"%-1',/
'09,#/ /%1'-" $+#/!$1/0 -/ +,101/ @$!0
+"-/;/#$ !"%-
-1'$%90'0$ *$/ 1$'6/, +'/% !"*$%($ ALTER TABLE7
CREATE TABLE EMP
( . . . . . ,
ENAME VARCHAR2(10) CONSTRAINT CHK_UPP_NAM CHECK(ENAME-
UPPER(ENAME))
DISABLE,
. . . . . . . ) ;
ENCEPTIONS I(0%1/@/!$ " 1$;0#$ 0A/-10%1$ ,%(0 0-10 +#$-$1$
INTO %,*0 1$;0#$ /%@"'*$1/$ (0-+'0 #/%//#0 !$'0 /%!$#!$
!"%-1'$%90'0$7
CREATE TABLE EMP
( . . . . . ,
ENAME VARCHAR2(10) CONSTRAINT CHK_UPP_NAM CHECK(ENAME-
UPPER(ENAME))
EXCEPTIONS INTO CON_VIOLATE,
. . . . . . . ) ;
I% @/%$#8 %"1$1/ !$ 1$;0#0#0 '0@0'/10 /%1'-" !"%-1'$%90'0 1'0;,/0 -$
0A/-10
/% $!00$-/ ;$6$ (0 ($107 D$!$ 0#0 $+$'1/% ,%,/ ,1/#/6$1"' (/@0'/1
$1,%!/ +"-
-0-"',# 1'0;,/0 -+0!/@/!$1 !$ ,% +'0@/A7
I$1$ ,% 0A0*+#, !"*+#01 $# !"%-1',!1/0/ 1$;0#0/ EMP !, !"%-1'$%90'/ 3
CREATE TABLE EMP
(EMPNO NUMBER(4) CONSTRAINT EMP_PRIM PRIMARY KEY,
ENAME VARCHAR2(10) CONSTRAINT ENAME_CONS
CHECK(ENAME=UPPER(ENAME)),
JOB VARCHAR2(10),
MGR NUMBER(4) CONSTRAINT EMP_MGR
REFERENCES EMP(EMPNO),
HIREDATE DATE DEFAULT SYSDATE,
SAL NUMBER(7,2) CONSTRAINT SAL_CONS
NOT NULL,
COMM NUMBER(7,2),
DEPTNO NUMBER(2) CONSTRAINT DEPTNO_CONS
NOT NULL,
CONSTRAINT EMP_DEPT FOREIGN KEY (DEPTNO)
REFERENCES DEPT(DEPTNO))
4rearea unei tabele cu linii din alta tabela
EA/-1$ " $ (",$ @"'*$ $ (0!#$'$1/0/ CREATE TABLE /% !$'0 1$;0#$
0-10
!'0$1$ !, #/%// +"1'/2/108 (0'/2$10 (/% $#1$ 1$;0#$3
CREATE TABLE DEPT
QB%,*0-!"#"$%$ 87 7 7 7DR
AS SELECT (0!#$'$1/0
T$;0#$ 2$ @/ !'0$1$ !, !"#"$%0 -+0!/@/!$10 -/ #/%// '0!,+0'$10
(/% (0-
N,*$/ !"%-1'$%90'/#0 NULLFNOT NULL -,%1 *"-10%/10 (/% 1$;0#$
-0#0!1$-
1$7
D$!$ 1"$1$ !"#"$%0#0 /% (0!#$'$1/$ SELECT $, %,*0 ;/%0 (0@/%/10
B%,
D$!$ -,%1 ($10 -+0!/@/!$1//#0 !"#"$%0/8 $1,%!/ %,*$',# (0
!"#"$%0 1'0-
P0%1', $ !'0$ " 1$;0#$ DEPT30 !$'0 1/%0 %,*0'0#0 $%9$:$1/#"'8 %,*08
:";-,'/
-/ -$#$'//#0 $%9$:$1/#"' (/% (0+$'1$*0%1,# 308 /%1'"(,!01/3
CREATE TABLE DEPT30
AS
SELECT EMPNO,ENAME,JOB,SAL
FROM EMP
WHERE DEPTNO = 30;
T$;#0 !'0$10(7
P0%1', $ 20(0$ (0-!'/0'0$ #,/ DEPT308 /%1'"(,!01/3
DESC DEPT30
P0%1', $ !'0$ " 1$;0#$ 1/%$%( %,*0#0 $%9$:$1,#,/8 -$#$'/,# -/ (01$#//
(0
9'$(8 /%1'"(,!01/3
CREATE TABLE EMP_SALS
(NAME,SALARY,GRADE)
AS
SELECT ENAME, SAL, GRADE
FROM EMP, SALGRADE
WHERE EMP.SAL BETWEEN LOSAL AND HISAL;
T$;#0 !'0$10(7
DESC EMP_SALS;
P0%1', $ $@/-$ !"%1/%,1,# 1$;0#0/ EMP SALS8 /%1'"(,!01/3
SELECT *
FROM EMP_SALS;
8F+'0)
4AP.(0L8L 12 E1ercitii $ 4rearea de
tabele si de constrangeri
Atelier
17 C'0$1/ " 1$;0#$ %,*/1$ PROJECTS8 !, !"#"$%0#0 -+0!/@/!$10 !$ *$/
:"-7P0
27
37 #$%9$ $!0$-1$ 8 (0@/%/1/ PROJID !$8 !"#"$%$ (0 CHEIE
PRIMARA 8 -/ $-/9,'$-
47
?7 1/-2$ !$ ($10#0 PGENDGDATE %, -,%1 *$/ '0!0%10 (0!$1 ($10#0
PGSTARTGDATE7
=7
77
>7
<7
107
117
127 C'0$1/ " $ (",$ 1$;0#$8 ASSIGNMENTS8 !$ !0$ (0 *$/ :"-7
D0@/%/1/-/ !"#"$%$
137
147 PROJID !$ " !T0/0 0A10'%$ !$'0 '0@0'$ 1$;0#$ PROJECTS7
C"#"$%$ EMPNO $ 1$-
1?7
1=7 ;0#0/ (,*%0$2"$-1'$ 0-10 " 2//1"$'0 !T0/0 0A10'%$ $ #,/ EMP7
A!0-10 (",$
177
1>7 !"#"$%0 %, $' 1'0;,/ -$ +0'*/1$ 2$#"'/ NULL BPROJID -/
EMPNOD7
1<7
207
217
227
237
247 S,%1 $#10 !"%-1'$%90'/ +0 !$'0 $' 1'0;,/ -$ #0 $%9$:$* /%
$!0-10 1$;0#07
2?7
2=7 A!0-10$ 2"' @/ $($,9$10 /%1'-,% 2//1"' $10#/0'7
277
2>7
2<7
307
317 ."#"-/1/ !"*$%($ DESCRIBE +0%1', $ 20'/@/!$ (0@/%/1//#0
!"#"$%0#"'7 BN0
327
337 2"* ,/1$ #$ !"%-1'$%90'/ *$/ 1$'6/,D7
347
3?7
3=7
377
4AP.(0L8L 12 $Solutii
./0!$'0 (/% !"%-1'$%90'/#0 $'$1$10 *$/ :"- $' @/ +,1,1 @/ (0@/%/10 !$
"'/!$-
'0 !"%-1'$%90'0 (0 1$;0#$ -$, !"%-1'$%90'0 (0 !"#"$%$7
17
2.
3.
4. CREATE TABLE PROJECTS
5.
6. ( PROJID NUMBER(4) CONSTRAINT PROJ_PRIM PRIMARY
KEY,
7.
8. P_DESC VARCHAR2(20),
9.
10. P_START_DATE DATE,
11.
12. P_END_DATE DATE,
13.
14. BUDGET_AMOUNT NUMBER(7,2),
15.
16. MAX_NO_STAFF NUMBER(2),
17.
18. CONSTRAINT P_DATE_RULE CHECK(P_START_DATE <= P_END_DATE))
19.
207
21.
22.
23. CREATE TABLE ASSIGNMENTS
24.
25. (PROJID NUMBER(4) NOT NULL REFERENCES PROJECTS
(PROJID),
26.
27. EMPNO NUMBER(4) NOT NULL REFERENCES EMP
(EMPNO),
28.
29. A_START_DATE DATE,
30.
31. A_END_DATE DATE,
32.
33. BILL_RATE NUMBER(4,2),
34.
35. ASSIGN_TYPE VARCHAR2(2))
36.
CAPITOLUL 13
Ma&a)e(e&t+ul de ta%ela si Dictio&arul de Date
,n acest capitol secund al imba+ului de *efinire a *atelor vom vedea comenzile pentru
modificarea si mutarea tabelelor si constrangerilor lor. *easemenea, vom vedea cum
informatii despre baza de date pot fi e&trase din *ictionarul de *ate.
Modi,icarea u&ei ta%ele
0olositi comanda A(2- (A82 pentru a schimba definitia unei tabele.
Sinta&a:
ALTER TABLE %,*0-1$;0#$
Q ADD RB-+0!/@/!$1"' !"#"$%$Q!"%-1'$%90'0 (0 !"#"$%$RDQENABLE
!#$,6$ R
QMODI.Y R QDISABLE
!#$,6$R
QDROP "+1/,%/R
Clauza ADD
0olositi cuvantul cheie A** pentru a adauga o coloana si!sau constran% geri pentru o
tabela e&istenta. Pentru a adauga o coloana tabelei 24P care va tine numele sotului
anga+atului, introduceti:
ALTER TABLE EMP
ADD (SPOUSES_NAME CHAR (10));
(able altered.
Pentru a vedea descrierea tabelei revizuite, introduceti:
DESCRIBE EMP;
Pentru a adauga o constrangere de tabela unei tabele e&istente, care specifi% ca daca
salariul lunar nu trebuie sa depaseasca F<<<Q, introduceti:
ALTER TABLE EMP
ADD(CHECK(SAL <=5000));
8F+'0)
4lau+a M0D.29
."#"-/1/ !,2$%1,# !T0/0 MODI.Y +0%1', $ *"(/@/!$ (0@/%/1/$ ,%0/
!"#"$%0
0A/-10%107
ALTER TABLE nume
MODIFY (tip coloana [NULL])
P0%1', $ -!T/*;$ #,%9/*0$ #,/ ENAME #$ 2? (0 !$'$!10'08
/%1'"(,!01/ 3
ALTER TABLE EMP
MODIFY (ENAME CHAR (25));
T$;#0 $#10'0(7
DESCRIBE EMP;
Sunt 4 schimbari pe care nu le puteti face
17 N, +,101/ -!T/*;$ " !"#"$%$ !"%1/%$%( %,##-,'/ (/% NULL /% NOT
NULL7
27
37 N, +,101/ $($,9$ " %",$ !"#"$%$ !$'0 0-10 NOT NULL7 .$!01/-"
%,##8 ,*-
47 +#01/-" !"*+#01 -/ $+"/ -!T/*;$1/-" /% NOT NULL7
?7
=7 N, +,101/ -$ -!$(01/ (/*0%-/,%0$ ,%0/ !"#"$%0 -$, -$-/ -!T/*;$1/
1/+,# (0
77 ($108 %,*$/ ($!$ %, !"%1/%0 ($107
>7
<7 N, +,101/ @"#"-/ "+1/,%0$ MODI.Y +0%1', $ (0@/%/ !"%-1'$%90'/ +0
" !"#"$%$
107 0A!0+1$%( NULLFNOT NULL7
117
P0%1', $ *"(/@/!$ $#10 !"%-1'$%90'/ 1'0;,/0 -$ #0 0#/*/%$1/ -/ $+"/ -$
#0 $-
($,9$1/ -+0!/@/!$%( *"(/@/!$'/#07
4lau+a DR0P
."#"-/1/ !#$,6$ DROP +0%1', $ *,1$ " !"%-1'$%90'0 (/% $#1$ 1$;0#$7
S/%1$A$3
ALTER TABLE %,*0 1$;0#$
DROP QCONSTRAINT %,*0 !"%-1'$%90'0 R QCASCADER
QPRIMARY KEY R
QUNI&UE B!"#"$%$8 !"#"$%$8 777DR
D0 0A0*+#,3
ALTER TABLE EMP
DROP CONSTRAINT EMP_MGR;
ALTER TABLE EMP
DROP PRIMARY KEY;
Optiunea CASCADE (in claua D!O")
O+1/,%0$ CASCADE $ !#$,60/ DROP @$!0 !$ "'/!0 !"%-1'$%90'0
(0+0%(0%1$
-$ @/0 (0$-0*0%0$ 0#/*/%$1$7
D0 0A0*+#,3
ALTER TABLE DEPT
DROP PRIMARY KEY CASCADE;
$' +,10$ (0$-0*0%0$ -$ @$!$ !$ !"%-1'$%90'0$ !T$// 0A01'%0 (/%
EMP)DEPTNO -$
@/0 0#/*/%$1$7
4lau+a E:A;LE<D.SA;LE
A!0$-1$ !#$,6$ $ !"*0%6// ALTER TABLE +0'*/10 !"%-1'$%90'/#"' -$
@/0 @$-
!,10 +"-/;/#0 -$, (06$!1/2$10 @$'$ $ #0 0#/*/%$ -$, '0!'0$7
S/%1$A$3
QDISABLER Q UNI&UE B!"#"$%$8 !"#"$%$8 777D R QCASCADER
QENABLE R Q PRIMARY KEY R
Q CONSTRAINT %,*0 !"%-1'$%90'0 R
C$ -/ #$ !#$,6$ DROP8 $($,9$'0$ !,2$%1,#,/ !T0/0 CASCADE -0*%/@/!$ !$
!"%-
-1'$%90'/#0 (0+0%(0%10 -,%1 (0$-0*0%0$ $@0!1$107
D0 0A0*+#,3
ALTER TABLE DEPT
DISABLE CONSTRAINT DEPT_PRIM CASCADE;
Alte comen+i LDD
Eliminarea unei tabele
P0%1', $ -10'90 (0@/%/1/$ ,%0/ 1$;0#0 ORACLE8 @"#"-/1/ !"*$%($
DROP
TABLE7
S/%1$A$3
DROP TABLE %,*0 1$;0#$ QCASCADE CONSTRAINTSR
D0 0A0*+#,3
DROP TABLE EMP;
S10'90'0$ ,%0/ 1$;0#0 (,!0 #$ +/0'(0'0$ 1,1,'"' ($10#"' (/% 0$ -/
$ 1,-
1,'"' /%(0!-/#"' $-"!/$1/ 0/7 O+1/,%0$ CASCADE CONSTRAINTS 2$ -10'90
(0$-0*0-
%0$ '0@0'/'/#0 #$ !"%-1'$%90'/#0 (0 /%109'/1$10 (0+0%(0%107
:ote6
T"$10 ($10#0 2"' @/ (0$-0*0%0$ -10'-0 (/% 1$;0#$7
O'/!0 HIEWS -$, SYNONYMS 2"' '$*$%08 ($' 2"' (020%/ /%2$#/(07
O'/!0 1'$%6$!1// %0'06"#2$10 -,%1 '0$#/6$107
N,*$/ !'0$1"',# 1$;0#0/ -$, DBA +"$10 -$ " -10$'9$7
4omanda 40MME:(
."#"-/1/ !"*$%($ COMMENT +0%1', $ /%-0'$ ,% !"*0%1$'/, +$%$ #$
2?? (0
!$'$!10'08 (0-+'0 " 1$;0#$ -$, !"#"$%$8 /% (/!1/"%$',# (0 ($107
P0%1', $ $($,9$ ,% !"*0%1$'/, ,%0/ 1$;0#0 %,*/1$ EMP8 /%1'"(,!01/3
COMMENT ON TABLE EMP IS 'Employee Information';
P0%1', $ $($,9$ ,% !"*0%1$'/, +0 !"#"$%$ EMPNO /% 1$;0#$ EMP8
/%1'"(,!01/3
COMMENT ON COLUMN EMP.EMPNO IS 'Unique employee number';
P0%1', $ -10'90 ,% !"*0%1$'/,8 0*/101/ !"*$%($ COMMENT @$'$ ,%
!"*0%1$'/,3
COMMENT ON COLUMN EMP.EMPNO IS '';
8F+'0)
P0%1', $ 20(0$ !"*0%1$'/,#8 -0#0!1$1/ !"#"$%$ COMMENTS (/% ,%$ (/%
20(0'/#0
(/!1/"%$',#,/3ALLGCOLGCOMMENTS -$, USERGCOLGCOMMENTS7 D/!1/"%$',# (0
D$10
0-10 $!"+0'/1 *$/ 1$'6/, /% $!0-1 !$+/1"#7
4omanda RE:AME
C"*$%($ RENAME 0-10 @"#"-/1$ (0 !'0$1"',# #,/ TABLES8 HIEWS -/
SYNONYMS
+0%1', $ -!/*;$ %,*0#0 ";/0!1,#,/ ;$60/ (0 ($107
P0%1', $ '0(0%,*/ ,% ";/0!1 $# ;$60/ (0 ($10 -/%1$A$ 0-103
RENAME 20!T/ TO %",5
P0%1', $ '0(0%,*/ 1$;0#$ EMP /% EMPLOYEE8 /%1'"(,!01/3
RENAME EMP TO EMPLOYEE5
P0%1', $ '0(0%,*/ 1$;0#$ SALGRADE8 /%1'"(,!01/3
RENAME SALGRADE TO EMPLOYEEGGRADES5
E-10 /*+"'1$%1 (0 %"1$1 !$ "'/!0 $+#/!$1//F+'"9'$*0F'$+"$'10 !$'0 -0
'0@0'$ #$ ";/0!10 !0
$, @"-1 '0(0%,*/108 1'0;,/0 $*0%($107
4omanda (R8:4A(E (A;LE
A!0$-1$ !"*$%($ 2$ +0'*/10 -$ -10'901/ 1"$10 #/%//#0 (/%1'-"
1$;0#$7 N"-
1$1/ !$ !"*$%($ DELETE +"$10 (0$-0*0%0$ '0$#/6$ $!0$-1$ !$ " +$'10 $
1'$%-
6$!1/0/ (0 *$%/+,#$'0 $ ($10#"' B$!"+0'/1$ /% !$+/1"#,# ,'*$1"'D8 ($'
!"*$%($
TRUNCATE TABLE ,*+#0 " 1$;0#$ *$/ 0@/!/0%1 !$ " $!1/,%0 (0 (0@/%/'0 (0
($108
+$%$ !$%( %, 0-10 '01/%,1$ %/!/ " /%@"'*$1/0 (0 '"##;$!U7
S/%1$A$3
TRUNCATE TABLE %,*0 1$;0#$ QREUSE STORAGER
O+1/,%0$ REUSE STORAGE +$-1'0$6$ -+$1/,# (/% #/%//#0 -10'-0 +0%1',
'0,1/#/6$-
'0$ 1$;0#0/7 I*+#/!/18 $!0-1 -+$1/, 0-10 0#/;0'$17
Dictionarul de Date 0racle
D/!1/"%$',# (0 D$10 0-10 ,%$ (/% +$'1/#0 !0#0 *$/ /*+"'1$%10 $#0
#,/
ORACLE RDBMS7 C"%-1$ (/%1'-,% -01 (0 1$;0#0 -/ 20(0'/ !$'0 @,'%/60$6$
,% 9T/(
(0 '0@0'/%1$ $!!0-/;/# ("$' #$ !/1/'08 (0-+'0 ;$6$ (0 ($107
D/!1/"%$',# (0
D$10 2$ 2$ -+,%03
%,*0#0 ,1/#/6$1"'/#"' ORACLE
('0+1,'/#0 -/ +'/2/#09//#0 !$'0 #0-$, @"-1 $!"'($10
%,*0#0 ";/0!10#"' ;$60/ (0 ($10 B1$;0#08 20(0'/8 /%(0!-/8
-/%"%/*08-0!-
20%108777D
!"%-1'$%90'/ $+#/!$10 1$;0#0/
/%@"'*$1// (0 '02/6/08 !$3 !/%0 $ $!!0-$1 -/ $!1,$#/6$1
";/0!10#0 ;$60/
(0 ($10 -+0!/@/!$107
D/!1/"%$',# (0 D$10 0-10 !'0$1 !$%( 0-10 !'0$1$ ;$6$ (0 ($107 O'/!$%(
;$6$ (0
($10 0-10 /% "+0'$1//8 D/!1/"%$',# (0 D$10 0-10 $!1,$#/6$1 (0 ORACLE
RDBMS7
D/!1/"%$',# (0 D$10 0-10 " '0@0'/%1$ +0%1', 1"1/ ,1/#/6$1"'//
;$60/ (0
($107 E-10 " -,'-$ 2$#"'"$-$ (0 /%@"'*$1// +0%1', ,1/#/6$1"'/8
+'"/0!1$%1/ (0
$+#/!$1// -/ DBA7 D/!1/"%$',# (0 D$10 0-10 (0$-0*0%0$ !'/1/! +0%1',
"+0'$1/$
ORACLE RDBMS8 !$'0 /# '0$-0$6$ +0%1', $ /%'09/-1'$ -/ 20'/@/!$
/%@"'*$1//
(0-+'0 ;$6$ (0 ($107
Accesul la Dictionarul de Date
#tiliatori
A!!0-,# #$ ";/0!10#0 D/!1/"%$',#,/ (0 D$10 0-10 +'/% S&L7 D0!#$'$1//#0
SELECT +"1 @/ @"#"-/10 +0%1', $ !0'0 /%@"'*$1// (/% D/!1/"%$',# (0
D$107
!D$%S
N/!/ ,% ,1/#/6$1"' %, $' 1'0;,/ -$ -!T/*;0 2'0"($1$ B/%-0'0608
$!1,$#/6060
-$, -10$'9$D %/!/ " #/%/0 -$, ";/0!1 /% D/!1/"%$',# (0 D$108 0-10
+'";$;/# -$
!"*+'"*/1$ /%109'/1$10$ ($10#"'7 RDBMS $!1,$#/60$6$ $,1"*$1
D/!1/"%$',# (0
D$10 +0%1', $ '0@#0!1$ -!T/*;$'/#0 -1',!1,'// ;$60/ (0 ($108
+0'*/-/,%/8 '0-
2/6// -/ $#10 ($107 I% 1/*+,# "+0'$1/0/ ;$60/ (0 ($108 RDBMS !/10-10
(0$-0-
*0%0$ D/!1/"%$',# (0 D$10 +0%1', $ (0-!"+0'/ ";/0!10#0 !$'0 0A/-1$ -/
!$ ,1/-
#/6$1"'// -$ $/;$ $!!0- #$ 0#07
(abelele si -ederile Dictionarului de
Date
&abele
B$6$ D/!1/"%$',#,/ (0 D$10 -$, @,%($*0%1,# 1$;0#0#"' -,%1 +'/*0#0
"-
;/0!10 !0 1'0;,/0 !'0$10 /% ;$6$ (0 ($108 +0%1', !$ 0#0 1'0;,/0 -$ @/0
+'0-
60%10 +0%1', 1"$10 ";/0!10#0 !0 1'0;,/0 !'0$107 T$;0#0# D/!1/"%$',#,/
(0 D$10
-,%1 !'0$10 $,1"*$1 (0 (0!#$'$1/$ S&L CREATE DATABASE -/ %, -,%1 /%
+"-0-/$
,1/#/6$1"',#,/ SYS7 T$;0#0#0 (0 ;$6$ -,%1 '$'0"'/ $!!0-$10 (/'0!18
(0"$'0!0
/%@"'*$1/$ (/% 0#0 %, 0-10 ,-"' (0 /%10#0-7
'ederi
H0(0'/#0 D/!1/"%$',#,/ (0 D$10 B1$;0#0 2/'1,$#0 - $!"+'/10 /%
!$+/1"#,#
1?D !"%1/% /%@"'*$1// /%1'-" @"'*$ !$'0 0-10 ,-"' (0 /%10#0- +0%1',
,1/#/6$-
1"'7 A!!0-,# +,;#/! #$ D/!1/"%$',# (0 D$10 0-10 ($1 +'/% 20(0'/ *$/
(09'$;$
(0!$1 +'/% 1$;0#0 (0 ;$6$7 SYS +"-0($ (0$-0*0%0$ 20(0'/#0 D/!1/"%$',#,/
(0 D$107
H0(0'/#0 $, @"-1 %,*/10 +0%1', $ '0@#0!1$ 1/+,# (0 ,1/#/6$'0
("'/17 H0-
(0'/#0 -,%1 !#$-/@/!$10 /% 3 9',+0 (/-1/%9$%(,--0 /%1'0 0#0 +'/%
+'0@/A0#0
USER8 ALL -/ DBA7
C0#0 1'0/ !#$-0 (0 20(0'/ -,%13
USERGAAAAA
O;/0!10#0 +"-0($10 (0 ,1/#/6$1"' +"1 @/ $!!0-$107 D0 0-
0A0*+#,8 20(0'/#0 !, $!0-1 +'0@/A +0'*/1
,1/#/6$1"',#,/
-$ $@/-060 /%@"'*$1// (0-+'0 1$;0#0#0 !'0$10 (0
,1/#/6$-
1"' -/ +'/2/#09//#0 $!"'($10 (0 ,1/#/6$1"'7
ALLGAAAAA
U1/#/6$1"'// +"1 $!!0-$ ";/0!10 #$ !$'0 #0-$, @"-1 +0'*/-0
('0+1,'/#0 (0 $!!0-8 /% +#,- @$1$ (0 ";/0!10#0 +0
!$'0 #0
+"-0($7
DBAGAAAAA
P0%1', ,1/#/6$'0 (0 !$1'0 ,1/#/6$1"'/ !, +'/2/#09/, DBA -
+"1 $!!0-$ "'/!0 ";/0!1 /% ;$6$ (0 ($107
U%0#0 (/%1'0 20(0'/#0 D/!1/"%$',#,/ (0 D$10 %, ,1/#/60$6$
+'0@/A0#0 #/--
1$10 *$/ -,-7 A!0-10 20(0'/ /%!#,(3
DICTIONARY
L/-10$6$ 1"$10 1$;0#0#08 20(0'/#08 D/!1/"%$',#,/
(0 D$108 $!!0-/;/#0 ,1/#/6$1"',#,/7
DICTGCOLUMNS
L/-10$6$ !"#"$%0#0 /% (/!1/"%$',# ";/0!10#"' $!-
!0-/;/#0 ,1/#/6$1"',#,/7
CONSTRAINTGDE.S
L/-10$6$ 1"$10 (0@/%/1//#0 (0 !"%-1'$%90'/ /%1'"-
(,-0 +0%1', 1$;0#0#0 $!!0-/;/#0
,1/#/6$1"',#,/7
CONSTRAINTGCOLUMNS
L/-10$6$ 1"$10 !"#"$%0#0 !$'0 -,%1 $!!0-/;/#0 ,-
1/#/6$1"',#,/ !,'0%1 -/ %,*/10 /%
(0@/%/1//#0
!"%-1'$%90'/#"'7
=ederea D.4(.0:AR9
DICTIONARY #/-10$6$ 1"$10 ";/0!10#0 D/!1/"%$',#,/ (0 D$10
$!!0-/;/#0 ,-
1/#/6$1"',#,/ !, " -!,'1$ (0-!'/0'0 $ ";/0!1,#,/7
U'*$1"$'0$ (0!#$'$1/0 S&L $@/-0$6$ !"%1/%,1,# 1$;0#0/ DICTIONARY 3
SELECT 4
.ROM DICTIONARY5
M,#10 (/% 20(0'/#0 D/!1/"%$',#,/ (0 D$10 $, %,*0 #,%97 S/%"%/*0#0
+,;#/!0 $,
@"-1 @,'%/6$108 !$ $;'02/$1//8 +0%1', $!!0-,# !"%20%$;/# #$ ,%0#0 (/%
!0#0
*$/ !"*,%0 20(0'/ $#0 D/!1/"%$',#,/ (0 D$10 ,1/#/6$1"'7
N,*0#0 T$;0#0/ C"*0%1$'//
-------------- ----------
ALLGCATALOG T"$10 1$;0#0#08 20(0'/#08 -/%"%/*0#08
-0!20%-
10#0 $!!0-/;/#0 ,1/#/6$1"',#,/
ALLGCOLGCOMMENTS C"*0%1$'// +0 !"#"$%0#0 1$;0#0#"' -/
20(0'/-
#0 $!!0-/;/#0
ALLGCOLGPRIHS P0'*/-/,%/ +0 !"#"$%0#0 +0%1', !$'0
,1/#/6$-
1"',# 0-10 V9'$%1"'V8 V9'$%100V8
+'"+'/01$'8
-$, ,% '"# +"-/;/# -$, PUBLIC 0-10
V9'$%100V
ALLGCOLGPRIHSGMADE P0'*/-/,%/ +0 !"#"$%0#0 +0%1', !$'0
,1/#/6$-
0 +'"+'/01$' -$, V9'$%1"'V
ALLGCOLGPRIHSGRECD P0'*/-/,%/ +0 !"#"$%0#0 +0%1', !$'0
,1/#/6$-
1"',#8 PUBLIC -$, '"#,# +"-/;/# 0-10
V9'$%-
100V
ALLGCONSTRAINTS D0@/%/1// (0 !"%-1'$%90'/ +0 1$;0#0
$!!0-/-
;/#0
ALLGCONSGCOLUMNS I%@"'*$1// (0-+'0 !"#"$%0#0
$!!0-/;/#0 /%
(0@/%/1//#0 (0 !"%-1'$%90'/
ALLGDBGLINKS L09$1,'/#0 ;$60/ (0 ($10 $!!0-/;/#0
,1/#/6$-
1"',#,/
ALLGDE.GAUDITGOPTS O+1/,%/ (0 '02/6,/'0 +0%1', %"/#0
";/0!10
!'0$10
ALLGDEPENDENCIES D0+0%(0%10 (/%-+'0 -/ /%-+'0
";/0!10#0 $!!0-
-/;/#0 ,1/#/6$1"',#,/
ALLGERROR E'"'/#0 !,'0%10 +0 ";/0!10#0 -1"!$10
#$ !$'0
,1/#/6$1"',# 0-10 +0'*/- -$ !'0060
B+$97 13-13D
ALLGINDENES D0-!'/0'0$ /%(0!-/#"' +0 1$;0#0#0
$!!0-/;/#0
,1/#/6$1"',#,/
ALLGINDGCOLUMNS C"#"$%0#0 !,+'/%6$%( /%(0!-/ +0
1$;0#0 $!!0-
-/;/#0
ALLGOBJECTS O;/0!10#0 $!!0-/;/#0 ,1/#/6$1"',#,/
ALLGSE&UENCES D0-!'/0'0$ SE&UENCE-,'/#"' $!!0-/;/#0
,1/#/-
6$1"',#,/
ALLGSNAPSHOTS I%-1$%1$%00 #$ !$'0 +"$10 +'/2/
,1/#/6$1"',#
ALLGSOURCE S,'-$ !,'0%1$ $ ";/0!10#"' !'0$10 +0
!$'0 ,-
1/#/6$1"',# $'0 +0'*/-/,%0$ -$ #0
!'0060
ALLGSYNONYMS T"$10 -/%"%/*0#0 $!!0-/;/#0
,1/#/6$1"',#,/
ALLGTABLES D0-!'/0'0$ 1$;0#0#"' $!!0-/;/#0
,1/#/6$1"',-
#,/
ALLGTABGCOLUMNS C"#"$%0#0 1,1,'"' 1$;0#0#"'8
20(0'/#"' -/
!#,-10'0#"'
ALLGTABGCOMMENTS C"*0%1$'// +0 1$;0#0 -/ 20(0'/
$!!0-/;/#0 ,-
1/#/6$1"',#,/
ALLGTABGPRIHS P0'*/-/,%/ +0 ";/0!10 +0%1', !$'0
,1/#/6$1"-
',# 0 V9'$%1"'V8 V9'$%100V -$,
+'"+'/01$'8
-$, ,% '"# +"-/;/# -$, PUBLIC 9$'$%1/0
ALLGTABGPRIHSGMADE P0'*/-/,%/#0 ,1/#/6$1"'/#"' -/
+0'*/-/,%/ +0
";/0!10#0 ,1/#/6$1"'/#"'
ALLGTABGPRIHSGRECD P0'*/-/,%/ +0 ";/0!10 +0%1', !$'0
,1/#/6$1"-
',#8 PUBLIC -$, ,% '"# +"-/;/# 0-10
V9'$%-
100V
ALLGTRIGGERS TRIGGER-,'/ $!!0-/;/#0 ,1/#/6$1"',#,/
!,'0%1
ALLGTRIGGERGCOLS U1/#/6$'0$ !"#"$%0#"' /% 1'/990'-,#
,1/#/6$-
1"'/#"' -$, /% 1'/990'-,'/ +0
1$;0#0#0 ,1/-
#/6$1"'/#"'
ALLGUSERS I%@"'*$1// (0-+'0 1"1/ ,1/#/6$1"'//
;$60/ (0
($10
ALLGHIEWS T0A1,# 20(0'/#"' $!!0-/;/#0
,1/#/6$1"'/#"'
AUDITGACTIONS T$;0#$ (0 (0-!'/0'0 +0%1', $!1/,%0$
(0 ,'*$-
'/'0 $ '02/6/0/ 1/+,#,/ (0 !"(,'/
CAT S/%"%/* !, USERGCATALOG
CLU S/%"%/* !, USERGCLUSTERS
COLS S/%"%/* !, USERGTABGCOLUMNS
COLUMNGPRIHILEGES P0'*/-/,%/ +0 !"#"$%0 +0%1', !$'0
,1/#/6$1"-
',# 0 V9'$%1"'V8 V9'$%100V8
+'"+'/01$'8 -$,
,% '"# +"-/;/# -$, PUBLIC 0-10
V9'$%100V
DICT S/%"%/* !, DICTIONARY
DICTIONARY D0-!'/0'0$ 1$;0#0#"' -/ 20(0'/#"'
D/!1/"%$-
',#,/ (0 D$10
GLOBALGNAME N,*0#0 ;$60/ (0 ($10 9#";$#0
IND S/%"%/* +0%1', USERGINDENES
INDENGHISTOGRAM S1$1/-1/!$ +0 !T0/ !, %,*$'$'0
'0+01$1$
INDENGSTATS S1$1/-1/!$ +0 $';"'/-B
OBJ S/%"%/* +0%1', USERGOBJECTS
RESOURCEGCOSTS C"-1,# @/0!$'0/ '0-,'-0
ROLEGROLEGPRIHS R"#,'/ +0'*/-0 '"#,'/#0
ROLEGSYSGPRIHS P'/2/#09//#0 -/-10* +0'*/-0 '"#,'/#"'
ROLEGTABGPRIHS P'/2/#09// (0 1$;0#$ +0'*/-0 '"#,'/#"'
SE& S/%"%/* +0%1', USERGSE&UENCES
SESSIONGPRIHS P'/2/#09// +0 !$'0 ,1/#/6$1"',# #0-$
-01$1
/% *"( !,'0%1
SESSIONGROLES R"#,'/ +0 !$'0 ,1/#/6$1"',# #0-$
@$!,1 +"-/-
;/#0 /% *"( !,'0%1
SYN S/%"%/* +0%1', USERGSYNONYMS
TABLEGPRIHILEGES A#"!$1// +0 ";/0!10 +0 !$'0
,1/#/6$1"',#
0-10 V9'$%1"'V8 V9'$%100V8 +"-0-"'8
-$, ,%
'"# @$!,1 +"-/;/#8 -$, PUBLIC 0-10
V9'$%-
100-,#V
TABS S/%"%/* +0%1', USERGTABLES
USERGAUDITGOBJECTS I%'09/-1'$'0$ ,'*0#"' 0A$*/%$10
+0%1', (0-
!#$'$1// '0@0'/1"$'0 #$ ";/0!108 -/
$%,*03
1$;0#8 !#,-10'8 20(0'08 /%(0A8
-0!20%1$8
#09$1,'$ ;$60/ (0 ($10 Q+,;#/!$R8
-/%"%/*
Q+,;#/!R8 +'"!0(,'$8 1'/990'8 -09*0%1
'"##-
;$!U8 -+$1/, (0 1$;0#$8 '"#8
,1/#/6$1"'
USERGAUDITGSESSION
USERGAUDITGSTATEMENT I%'09/-1'$'0$ ,'*0#"' 0A$*/%$10
'0@0'/1"$'0
#$ $#"!$1/08 $%,#$'08 0A$*/%$'08
%00A$*/%$-
'0 -/ -/-10* *"(/@/!$1
USERGAUDITGTRAIL I%1'$'/ $#0 ,'*0#"' '02/6,/108
'0#02$%10 ,-
1/#/6$1"',#,/
USERGCATALOG T$;0#08 20(0'/8 -/%"%/*0 -/ -0!20%10
+"-0($-
10 (0 ,1/#/6$1"'
USERGCLUSTERS D0-!'/0'/ $#0 !#,-10'0#"'
,1/#/6$1"',#,/
USERGCLUGCOLUMNS M$+$'0$ !"#"$%0#"' 1$;0#0/ +0%1', $
$(,%$
/*+'0,%$ !"#"$%0#0
TABLENAMECOMMENTS
USERGCOLGCOMMENTS C"*0%1$'// (0-+'0 !"#"$%0#0 1$;0#0#"'
-/ 20-
(0'/#0 ,1/#/6$1"',#,/
USERGCOLGPRIHS P0'*/-/,%/ +0 !"#"$%0#0 +0%1', !$'0
,1/#/6$-
1"',# 0-10 +"-0-"',#8 V9'$%1"'V -$,
V9'$%-
100V
USERGCOLGPRIHSGMADE T"$10 +0'*/-/,%/#0 +0 !"#"$%0#0
";/0!10#"'
+"-0($10 (0 ,1/#/6$1"'
USERGCOLGPRIHSGRECD P0'*/-/,%/ +0 !"#"$%0 +0%1', !$'0
,1/#/6$1"-
',# 0-10 V9'$%100V
USERGCONSTRAINTS D0@/%/1//#0 !"%-1'$%90'/#"' +0
1$;0#0#0 ,1/-
#/6$1"',#,/
USERGCONSGCOLUMNS I%@"'*$1// (0-+'0 !"#"$%0#0
$!!0-/;/#0 /%
(0@/%/1//#0 !"%-1'$%90'/#"'
USERGDBGLINKS L09$1,'/#0 ;$60/ (0 ($10 +"-0($10 (0
,1/#/-
6$1"'
USERGDEPENDENCIES D0+0%(0%10 (/%-+'0 -/ /%-+'0
";/0!10#0 ,1/-
#/6$1"'/#"'
USERGERRORS E'"'/ !,'0%10 +0 ";/0!10 -1"!$108
+"-0($10
(0 ,1/#/6$1"'
USERGENTENTS EA10%-// !,+'/%6$%( -09*0%10 $#0
,1/#/6$1"-
',#,/
USERG.REEGSPACE EA10%-// #/;0'0 /% -+$1/,# 1$;0#0#"'
$!!0-/-
;/#0 ,1/#/6$1"',#,/
USERGINDENES D0-!'/0'0$ /%(0!-/#"' ,1/#/6$1"',#,/
USERGINDGCOLUMNS C"#"$%0#0 !,+'/%6$%( /%(0!-/ $/
,1/#/6$1"',-
#,/ -$, +0 1$;0#0 $#0 ,1/#/6$1"',#,/
USERGOBJECTS O;/0!10 +"-0($10 (0 ,1/#/6$1"'
USERGOBJECTGSIYE D/*0%-/,%/8 /% "!101/8 $ (/@0'/10#"'
";/0!10
+#F-\#
USERGOBJGAUDITGOPTS O+1/,%/ (0 '02/6,/'0 +0%1', 1$;0#0#0
-/ 20(0-
'/#0 ,1/#/6$1"',#,/
USERGRESOURCEGLIMITS A@/-0$6$ #/*/1$ '0-,'-0#"'
,1/#/6$1"',#,/
USERGROLEGPRIHS R"#,'/ +0'*/-0 ,1/#/6$1"',#,/ !,'0%1
USERGSEGMENTS S+$1/, (0 -1"!$'0 $#"!$1 +0%1',
-09*0%10#0
;$60/ (0 ($10
USERGSE&UENCES D0-!'/0'0$ SE&UENCE-#"' ,1/#/6$1"',#,/
USERGSNAPSHOTS I%-1$%1$%00 +0 !$'0 ,1/#/6$1"',# #0
+"$10 20-
(0$
USERGSNAPSHOTSGLOGS T"$10 :,'%$#0#0 /%-1$%1$%00 +"-0($10
(0 ,1/-
#/6$1"'
USERGSOURCE S,'-$ ";/0!10#"' -1"!$10 $!!0-/;/#0
,1/#/6$-
1"',#,/
USERGSYNONYMS S/%"%/*0#0 +'/2$10 $#0 ,1/#/6$1"',#,/
USERGSYSGPRIHS P'/2/#09// (0 -/-10* +0'*/-0
,1/#/6$1"',#,/
!,'0%1
USERGTABLES D0-!'/0'0$ 1$;0#0#"' ,1/#/6$1"',#,/
USERGTABLESPACES D0-!'/0'0$ -+$1//#"' 1$;0#0#"'
$!!0-/;/#0
USERGTABGCOLUMNS C"#"$%0 $#0 1$;0#0#"'8 20(0'/#"' -/
!#,-10'0-
#"' ,1/#/6$1"',#,/
USERGTABGCOMMENTS C"*0%1$'// (0-+'0 1$;0#0#0 -/ 20(0'/#0
+"-0-
($10 (0 ,1/#/6$1"'
USERGTABGPRIHS P0'*/-/,%/ +0 ";/0!10 +0%1', !$'0
,1/#/6$1"-
',# 0-10 +"-0-"',#8 V9'$%1"'-,#V8 -$,
V9'$%-
100-,#V
USERGTABGPRIHSGMADE T"$10 +0'*/-/,%/#0 +0 ";/0!10 +"-0($10
(0 ,-
1/#/6$1"'
USERGTABGPRIHSGRECD P0'*/-/,%/ +0 ";/0!10 +0%1', !$'0
,1/#/6$1"-
',# 0-10 V9'$%100-,#V
USERGTRIGGERS T/990'-,'/ +"-0($10 (0 ,1/#/6$1"'
USERGTRIGGERGCOLS ."#"-/'0$ !"#"$%0/ /% 1'/990'-,#
,1/#/6$1"',-
#,/
USERGTSG&UOTAS C"1$ -+$1/,#,/ (0 1$;0#$ +0%1',
,1/#/6$1"'
USERGUSERS I%@"'*$1// (0-+'0 ,1/#/6$1"',# !,'0%1
USERGHIEWS T0A1 (0 20(0'/ +"-0($1 (0 ,1/#/6$1"'
4ate-a -ederi folositoare
U'*$1"$'0#0 20(0'/ -,%1 +'";$;/#0 (0 $ @/ (0 /%10'0- +0%1',
*$:"'/1$10$
,1/#/6$1"'/#"'3
N,*0 20(0'0 S/%"%/* D0-!'/0'0
----------- ------- ----------
DICTIONARY D/!1 L/-1$ 1,1,'"' ";/0!10#"' ;$60/ (0
($10
USERGOBJECTS O;: O;/0!10#0 +"-0($10 (0 ,1/#/6$1"'
USERGCATALOG C$1 T$;0#08 20(0'/8 -/%"%/*08 -0!20%10
$!!0-/-
;/#0 ,1/#/6$1"',#,/
USERGTABLES T$;- D0-!'/0'0$ 1$;0#0#"' ,1/#/6$1"',#,/
USERGTABGCOLUMNS C"#- C"#"$%0#0 (/% 1$;0#0#0 -/ 20(0'/#0
,1/#/-
6$1"',#,/
USERGCOLGCOMMENTS C"*0%1$'// +0 !"#"$%0#0 1$;0#0#"'
-/ 20(0-
'/#"' ,1/#/6$1"',#,/
USERGTABGCOMMENTS C"*0%6/ +0 1$;0#0 -/ 20(0'/
+"-0($10 (0 ,-
1/#/6$1"'
USERGSE&UENCES S0\ D0-!'/0'0$ -0!20%10#"' +"-0($10 (0
,1/#/-
6$1"'
USERGSYNONYM SX% S/%"%/*,# +'/2$1 $# ,1/#/6$1"',#,/
USERGHIEWS T0A1,# 20(0'/#"' +"-0($10 (0
,1/#/6$1"'
USERGINDENES I%( D0-!'/0'0$ /%(0!-/#"' +'"+'//
,1/#/6$1"',-
#,/
ALLGOBJECTS O;/0!10#0 $!!0-/;/#0 ,1/#/6$1"',#,I
ALLGTABGCOLUMNS C"#"$%0#0 +0%1', 1"$10 1$;0#0#0 -/
20(0'/-
#0 $!!0-/;/#0 ,1/#/6$1"',#,/
D$!$ %, -1/1/ (0@/%/1/$ ,%0/ 1$;0#0 -$, 20(0'/ $ D/!1/"%$',#,/ (0
D$108 -$,
($!$ %, 2$ +,101/ $*/%1/ %,*0#0 ,%0/ !"#"$%0 /%1'-" 1$;0#$F20(0'0
-+0!/@/!$8
$1,%!/ @"#"-/1/ !"*$%($ DESCQRIBER +0%1', $ $@/-$ (0@/%/1/$
1$;0#0/F20(0'//7
P0%1', $ 20(0$ -1',!1,'$ #,/ USERGOBJECTS8 /%1'"(,!01/3
SQL>desc user_objects
O (0-!'/0'0 $ 20(0'// DICTIONARY ,'*0$6$3
SQL>desc dict
N"1$1/ !$ -/%"%/*,# $;'02/$1 DICT +"$10 @/ @"#"-/1 !, '0@0'/'0 #$
DICTIONARY7
O($1$ !0 -1/1/ -1',!1,'$ ,%0/ 1$;0#0F20(0'/8 +,101/ -0#0!1$ /%@"'*$1/$
("'/-
1$3
SELECT OBJECT_NAME, OBJECT_TYPE, CREATED
FROM USER_OBJECTS
WHERE OBJECT_NAME = 'EMP'
2olosirea lui S>L "entru a genera S>L
S&L +"$10 @/ " ,%0$#1$ +,10'%/!$ +0%1', $ 90%0'$ $#10 (0!#$'$1//
S&L8
@$!$%( @"#"-/'0$ /%@"'*$1/0/ /% D/!1/"%$',# (0 D$107 P,101/ @"#"-/ S&L
(/%
S&L +0%1',3
$ 02/1$ !"( '0+01/1/2
$ +'/*/ $:,1"' (0 #$ D/!1/"%$',# (0 D$10
$ '0!'0$ 1$;0#08 20(0'/8 /%(0A-,'/
$ 90%0'$ +'0(/!$10 V(/%$*/!0V8 !"%1/%$%( +$'$*01'/ (/% 1/*+,#
0A0-
!,1/0/
E "+0'$1"',# (0 $(,%$'0
- "+0'$1"',# (0 -!$(0'0F%09$'0
4 "+0'$1"',# (0 *,#1/+#0!$'0
F "+0'$1"',# (0 /*+$'1/'0
I "+0'$1"' '0#$1/"%$#
) "+0'$1"' '0#$1/"%$#
J "+0'$1"' '0#$1/"%$#
D (0#/*/1$1"' (0 #/-1$ -$, 0A+'0-//
B -||-
5 (0#/*/1$1"' (0 /%-1',!1/,%/
8 -0+$'$1"' (0 ";/0!1
7 -0#0!1"' (0 !"*+"%0%1$
_ (0#/*/1$1"' (0 $!!0-- #$ (/-1$%1$
C (0#/*/1$1"' (0 -/'
3 (0#/*/1$1"' (0 *$-/%$
44 0A+"%0%1/$#
J) '0#$1/"%$#
MI -||-
I -||-
JI -||-
)I -||-
3I $-/9%$'0
I) $-"!/0'0
77 '$%9
|| !"%!$10%$'0
JJ 01/!T01$
)) -||-
-- !"*0%1$'/,
F4 -||-
4F -||-
8etineti ca spatiile nu sunt permise intre cele doua caractere ale
simbolurilor combinate.
Blocurile Incluse
Anumite blocuri pot fi incluse in altele, in orice fel in care instructiunea o
permite& nu se recomanda sa se include blocuri in cadrul unor bucle'.
Partea executabila a unui bloc poate fi sparta in blocuri mai mici, si de
asemenea sectiunea +9(+P,I:0 poate include alte blocuri.
+xemplu#
BEGIN
-- actiuni in bucla principala
DECLARE
-- declaratii de obiecte
BEGIN
-- actiuni ale blocului
EXCEPTION
-- ce'i de facut daca apare o eroare in acest
bloc.
END;
EXCEPTION
TIPUL CARACTER
HARCHAR2 ."#"-/1 +0%1', $ *0*"'$ 2$'/$;/#0 (0 1/+
!$'$!10'7L,%9/*0
/*+#/!/1$ 1 !$'$!10'7 M$A/*$ +0'*/-$ 327=77
0A7 HARCHAR2B30D
TIPUL BOOLEAN
BOOLEAN P0%1', */%,/'0$ 2$#"'/#"' ;""#00%0 TRUE -/ .ALSE7
R06,#1$1,#
0A+'0-//#"' ;""#00%0 +"$10 @/ $-/9%$1 $!0-1"'
2$'/$;/#0 -/
10-1$1 *$/ 1/'6/, /% /%-1',!1/,%/ !"%(/1/"%$#07
TIPUL DATA
DATE D$10#0 2$#/(0 -,%1 /%1'0 4712 BC -/ 4712AD7
!eclararea )A8IABIL+L:8
)ariabilele PL/SQL pot fi declarate si optional le pot fi asi"nate o valoare
initiala, in sectiunea !+(LA8+ a unui bloc. Alte variabile referite in partea
declarativa trebuie declarate separat in declaratiile anterioare.
Sintaxa#
indentificator tipdata [(precizia,scala)] [NOT NULL] [ := expresie ] ;
%nde 7expresie7 poate fi o alta variabila, sau o expresie cu functii si
operatori. !aca o valoare initiala nu este asi"nata, atunci variabila va
contine o valoare nula pina cind ii va fi asi"nata ulterior o valoare.
(onstanta 0:, 0%LL nu mai este permisa in aceasta situatie.
+xemple#
v_count NUMBER NOT NULL := 0;
v_salary NUMBER(7,2);
v_annsal NUMBER(9,2) := month_sal * 12;
-- mount_sal trebuie sa existe deja
postcode CHAR(7);
surname VARCHAR2(25) := 'Skywalker' ;
v_message VARCHAR2(80) := 'May the course be
woth you!' ;
married BOOLEAN := FALSE;
today DATE := SYSDATE;
+ste indicat sa nu ale"eti acelasi nume &identificator' pentru o variabila ca
nume pentru coloanele din tabela folosite in cadrul blocului. !aca
variabilele PL/SQL apar in instructiuni SQL si au acelasi nume ca coloana,
atunci :8A(L+ considera ce se refera coloana.
!eclararea (:0S,A0,+L:8
(onstantele permit asi"narea unei valori unui identificator, pentru o
viitoare referire in cadrul unui bloc. :rice incercare de a modicica valoarea
unei constante va cauza producerea unei erori PL/SQL.
Sintaxa#
identificator := expresie ;
%nde 7identificator7 este numele variabilei tinta, sau cimp, pentru a primi
valoarea 7expresie7.
7+xpresie7 poate fi literal, numele unei alte variabile existente, sau alta
expresie necesara pentru a determina valoarea ce va fi asi"nata. !e
obicei, cele mai multe din expresiile disponibile in indero"arile SQL ,
clauza S+L+(, sunt disponibile aici. =unctiile si expresiile permise in
PL/SQL vor fi discutate mai tirziu in acest %0I,.
+xemple#
v_count := v_count +1;
ann_sal := mount_sal * 12 +NVL(comm,0);
lev := 6;
mess := 'The current level is ' || TO_CHAR(lev) ;
v_ename := 'KING';
)alorile pe care le pot lua variabilele booleene pot fi ,8%+ si =ALS+, ca
rezultat a unei expresii booleene.
+xemple#
overpaid := ann_sal > 35000 ;
male := UPPER(title) == 'MR' ;
salary_ok := NOT overpaid ;
female := NOT male ;
switch1 := TRUE;
switch2 := FALSE;
Accesarea variabilelor 0:0 PL/SQL
)ariabilele declarate in mediul de lucru 7masina7 pot fi referite in
instructiuni PL/SQL. Aceasta include variabilele de lucru ale masinii
declarate in pro"ramele precompilate. Adresarea variabilelor non1PL/SQL
trebuie facuta prin prefixarea cu 7#7 pentru a le distin"e de declararea de
variabile PL/SQL.
+xemple#
:screen_field1 := ann_sal ;
:warp_factor := 9 ;
:global.var1 := 'YES' ;
!etalii despre modul de minuire al variabilelor 0:0 PL/SQL sunt descrise
in cursuri :8A(L+ special destinate acestor variabile.
(onversii de tipuri de date
PL/SQL incearca sa converteaza dipurile de date in mod dinamic daca
sunt mixate in cadrul unei instructiuni. !e exemplu daca un numar este
asi"nat unei variabile (>A8, atunci in mod automat numarul este
translatat astfel incit va putea fi stocat in cariabila de tip (>A8.
+xemple#
/6$13
LOOP
END LOOP5
LOOP
END LOOP5
E1ercitii