Advertisement
Guest User

Untitled

a guest
Feb 25th, 2020
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.90 KB | None | 0 0
  1. set serveroutput on
  2. set autoprint on
  3.  
  4. declare
  5. v_name angajati.nume%type;
  6. begin
  7. select nume into v_nume from angajati where id_angajat = 101; --atribuire cu select
  8. dbms_output.put_line('Angajatul se numeste '||v_nume); --afisare
  9. end;
  10. /
  11.  
  12. --var de mediu se declara in afara blocului
  13. --nu are nevoie de : la sf
  14. --fara dimensiune
  15. --PLSQL se acceseaza cu : in fata ':nume_variabila:=2;'
  16. --afisare implicita set autoprint on
  17. --afisare print nume_var
  18.  
  19. variable g_pret number
  20.  
  21. begin
  22. select avg(pret) into :g_pret from rand_comenzi where id_produs = 3133;
  23. end;
  24. /
  25. print g_pret;
  26.  
  27. --produse al caror pret > decat media produsel9or cu id 3133
  28. --trebuie sters print ca sa mearga
  29.  
  30. select id_produs, pret from rand_comenzi where pret > :g_pret;
  31.  
  32. --var de substitutie
  33. --permit introd. de val. de la tastatura
  34.  
  35. declare
  36. v_nr number(6);
  37. begin
  38. select count(id_comanda) into v_nr from comenzi where id_angajat= &id;
  39. dbms_output.put_line('Angajatul a intermediat '||v_nr||' comenzi');
  40. end;
  41. /
  42.  
  43. --var compozite pot stoca mai multe valori
  44. --v_var nume_tabela%rowtype
  45. --compozit format din campuri cu tipul de data diferit
  46. --se refera la inreg. unei tabele
  47. --este o variabila compusa
  48.  
  49. declare
  50. v_prod produse%rowtype;
  51. begin
  52. select * into v_prod from produse where id_produs =3133;
  53. dbms_output.put_line('Produsul '||v_prod.id_produs|| ' are pretul de lista'|| v_prod.pret_lista);
  54. end;
  55. /
  56.  
  57. declare
  58. v_prod produse%rowtype;
  59. begin
  60. select * into v_prod from produse where id_produs =3133;
  61. dbms_output.put_line('Produsul '||v_prod.id_produs|| ' are categoria '|| v_prod.categorie);
  62. end;
  63. /
  64.  
  65. create table produse1 as select * from produse where 1=2; --tabela fara inregistrari
  66.  
  67. declare
  68. v_prod produse%rowtype;
  69. begin
  70. select * into v_prod from produse where id_produs =3133;
  71. dbms_output.put_line('Produsul '||v_prod.id_produs|| ' are categoria '|| v_prod.categorie);
  72. insert into produse1 values v_prod;
  73. end;
  74. /
  75.  
  76. --sau
  77.  
  78. drop table produse1;
  79.  
  80. declare
  81. v_prod produse%rowtype;
  82. begin
  83. select * into v_prod from produse where id_produs =3133;
  84. dbms_output.put_line('Produsul '||v_prod.id_produs|| ' are categoria '|| v_prod.categorie);
  85. execute immediate 'create table produse1 as select * from produse where 1=2';
  86. execute immediate 'insert into produse1 values (:1,:2,:3,:4,:5,:6)' using v_prod.id_produs, v_prod.denumire_produs, v_prod.descriere, v_prod.categorie, v.prod.pret_lista, v_prod.pret_min; -- descompunere pe componenete
  87. end;
  88. /
  89.  
  90. --alta var compusa, de tip record
  91. -- se creaza cu 'type nume_tip is record'(nume_camp1 tip_data ...);
  92. --vrec nume_tip;
  93.  
  94. declare
  95. type tip_p is record (v_id produs.id_produs%type , v_nr number(6));
  96. vrec_p tip_p;
  97. begin
  98. select p.id_produs, sum(pret*cantitate) into vrec_p from produse p, rand_comenzi c
  99. where c.id_produs=p.id_produs and p.id_produs =3133
  100. group by p.id_produs;
  101. dbms_outpput.put_line('Produsul ' || vrec_p.v_id || 'are vfaloarea comandata' || vrec_p.v_nr);
  102. end;
  103. /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement