PLSQL

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 4

Laborator PL/SQL

Bazele limbajului. Cereri SQL


A
Care sunt declaratiile invalide ?
1. nom_varA NUMBER(8) DEFAULT 10 ;
VALID

SQL> declare
2 nom_varA NUMBER(8) DEFAULT 10;
3 begin
4 dbms_output.put_line(user);
5 end;
6 /

PL/SQL procedure successfully completed.

2. nom_var VARCHAR2(20) NOT NULL ;


INVALID

SQL> declare
2 nom_var VARCHAR(20) NOT NULL;
3 begin
4 dbms_output.put_line(user);
5 end;
6 /
nom_var VARCHAR(20) NOT NULL;
*
ERROR at line 2:
ORA-06550: line 2, column 9:
PLS-00218: a variable declared NOT NULL must have an initialization assignment

3. nom_var BOOLEAN :=1 ;


INVALID

SQL> declare
2 nom_var BOOLEAN :=1 ;
3 begin
4 dbms_output.put_line(user);
5 end;
6 /
nom_var BOOLEAN :=1 ;
*
ERROR at line 2:
ORA-06550: line 2, column 19:
PLS-00382: expression is of wrong type
ORA-06550: line 2, column 9:
PL/SQL: Item ignored

4. nom_var BINARY_INTEGER ;
VALID

SQL> declare
2 nom_var BINARY_INTEGER;
3 begin
4 dbms_output.put_line(user);
5 end;
6 /

PL/SQL procedure successfully completed.


5. 2nom_var BINARY_INTEGER ;
INVALID

SQL> declare
2 2nom_var BINARY_INTEGER ;
3 begin
4 dbms_output.put_line(user);
5 end;
6 /
2nom_var BINARY_INTEGER ;
*
ERROR at line 2:
ORA-06550: line 2, column 1:
PLS-00103: Encountered the symbol "2" when expecting one of the following:
begin function pragma procedure subtype type <an identifier>
<a double-quoted delimited-identifier> current cursor delete
exists prior
The symbol "2" was ignored.

6. nom_varI NUMBER(3) :=123.45678 ;


VALID

SQL> declare
2 nom_varI NUMBER(3) :=123.45678 ;
3 begin
4 dbms_output.put_line(user);
5 end;
6 /

PL/SQL procedure successfully completed.

7. nom_var NUMBER(3) :=1234.5678 ;

SQL> declare
2 nom_var NUMBER(3) :=1234.5678 ;
3 begin
4 dbms_output.put_line(user);
5 end;
6 /
declare
*
ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error: number precision too large
ORA-06512: at line 2

INVALID

8. nom_varK CONSTANT NUMBER(12,3) :=123.45678 ;


VALID

SQL> declare
2 nom_varK CONSTANT NUMBER(12,3) :=123.45678 ;
3 begin
4 dbms_output.put_line(user);
5 end;
6 /
B
Care este rezultatul afişat de programul următor?
declare
utilizator varchar2(30) := '1 :' || user ;
begin
declare
utilizator varchar2(30) := '2 :' || user ;
begin
declare
utilizator varchar2(30) := '3 :' || user ;
begin
dbms_output.put_line (utilizator) ;
end ;
end ;
end ;
/

PL/SQL procedure successfully completed.

C
CreaŃi un bloc PL/SQL în care declaraŃi variabilele de la secŃiunea A, punctele
1,6,8.
AfişaŃi informaŃiile stocate în aceste variabile.

declare
nom_varA NUMBER(8) DEFAULT 10 ;
begin
declare
nom_varI NUMBER(3) :=123.45678 ;
begin
declare
nom_varK CONSTANT NUMBER(12,3) :=123.45678 ;
begin
dbms_output.put_line(nom_varA);
end;
end;
end;
/

D
Care sunt expresiile valide care pot înlocui trei puncte din blocul următor?
declare
v_1 emp%ROWTYPE ;
begin
… / SELECT * INTO v_1 FROM emp WHERE empno= 7900 ;
end ;
/

1. SELECT * INTO v_1 FROM emp WHERE empno= 7900 ;


2. UPDATE emp SET ROW=v_1 WHERE empno= 7900;
3. SELECT COUNT(*) INTO v_1 FROM emp WHERE 1=2 ;
4. SELECT * INTO v_1 FROM emp WHERE 1=2 ;
5. SELECT * INTO v_1 FROM emp ;
E
CreaŃi blocul PL/SQL care afişează cel mai mare salariu a departamentului SALES,
utilizând o variabilă de legătură.

F
CreaŃi blocul PL/SQL care preia de la tastatură un nume de departament şi
returnează un
mesaj ce indică numărul de angajaŃi la acest departament.
G
CreaŃi blocul PL/SQL care permite inserarea unui nou angajat:
utilizaŃi variabile de substituŃie pentru parametrizarea blocului PL/SQL, pentru
numele şi
codul angajatului ; pentru salariu, utilizaŃi rezultatul de la secŃiunea E, dublat;
celelalte
coloane rămân nule. ConfirmaŃi (validaŃi actualizările).
După execuŃie, afişaŃi tabela.
H
CreaŃi blocul PL/SQL care permite efectuarea operaŃiilor:
- afişarea jobului, salariului şi datei de angajare a angajatului ALLEN ; ştergerea
înregistrării angajatului SMITH.
- modificarea comisionului lui TURNER, acordându-i încă 50 de unităŃi şi mărirea
salariului lui cu 50%.
ExecutaŃi blocul, afişaŃi tabela şi apoi anulaŃi toate modificările.
I
CreaŃi blocul PL/SQL care permite modificarea locaŃiei unui departament :
utilizaŃi variabilele de substituŃie pentru a parametriza blocul PL/SQL, pentru
numele
departamentului şi noua locaŃie. ConfirmaŃi (validaŃi) actualizările.
După execuŃie, afişaŃi tabela.
J
CreaŃi blocul PL/SQL care permite ştergerea angajaŃilor unui anumit departament, a
cărui
nume este introdus de la tastatură printr-o variabilă de substituŃie. AfişaŃi
numărul de linii
afectate (SQL%ROWCOUNT).
După execuŃie, afişaŃi tabela.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy