Uitwerkingen van de opgaven
|
|
|
- Frans Bakker
- 7 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Bijlage B Uitwerkingen van de opgaven Hoofdstuk 2 Oefening 1 dbms_output.put_line( user ); dbms_output.put_line( sysdate ); Oefening 2 v_naam varchar2(20) default 'Theo Vermeulen'; v_vandaag date default sysdate; v_gebdatum date default to_date( ' ', 'dd-mm-yyyy' ); v_dagen number; v_maanden number; v_jaren number; v_dagen := v_vandaag - v_gebdatum; v_maanden := months_between( v_vandaag, v_gebdatum); v_jaren := trunc( v_maanden/12 ); dbms_output.put_line( v_naam ', geboren op ' to_char( v_gebdatum ) ' heeft op ' to_char( v_vandaag ) ' de leeftijd van ' to_char( v_dagen ) ' dagen, ' to_char( v_maanden ) ' maanden en ' to_char( v_jaren ) ' jaren' ); Oefening 3a v_einde constant pls_integer default 10 ; v_factor pls_integer default 1; v_product pls_integer default 0 ; exit when v_factor > v_einde ; v_product := 6 * v_factor ; dbms_output.put_line ( '6 * ' to_char(v_factor) ' = ' to_char(v_product)) ; v_factor := v_factor + 1 ; end ; end ; B1
2 Leerboek Oracle PL/SQL Oefening 3b v_einde constant pls_integer default 10 ; v_factor pls_integer default 1; v_product pls_integer default 0 ; while v_factor <= v_einde v_product := 6 * v_factor ; dbms_output.put_line ( '6 * ' to_char(v_factor) ' = ' to_char(v_product)) ; v_factor := v_factor + 1 ; end ; end ; Oefening 3c v_einde constant pls_integer default 10 ; v_product pls_integer default 0 ; for i_factor in 1.. v_einde v_product := 6 * i_factor ; dbms_output.put_line ('6 * ' to_char(i_factor) ' = ' to_char(v_product)) ; end ; end ; Oefening 4 v_vandaag date default sysdate; v_gebdatum date default to_date( ' ', 'dd-mm-yyyy'); v_leeftijd number; v_aant_wkend pls_integer default 0; v_leeftijd := floor( months_between( v_vandaag, v_gebdatum)/12); for v_teller in 1.. v_leeftijd v_gebdatum := add_months( v_gebdatum, 12 ); if to_char( v_gebdatum, d' ) in ( 1', 7' ) v_aant_wkend := v_aant_wkend + 1; end ; dbms_output.put_line( 'Het aantal weekenden ' to_char( v_aant_wkend )); B2
3 Bijlage B Uitwerkingen van de opgaven Oefening 5a v_tijd_volw number := 1.25; v_tijd_kind number :=.75; v_pol number := 8; v_door_volw number := 50; v_door_kind number := 20; v_#_volw pls_integer := 2; v_#_kind pls_integer := 1; v_#_dag pls_integer := 7; v_tijd_tot number := 0; v_door_tot number := 0; v_tijd_tot := v_pol + v_#_dag * ( ( v_#_volw * v_tijd_volw) + ( v_#_kind * v_tijd_kind)); v_door_tot := v_pol + ( v_#_volw * v_door_volw ) + ( v_#_kind * v_door_kind) ; dbms_output.put_line( 'Tijdelijk: ' v_tijd_tot ); dbms_output.put_line( 'Doorlopend: ' v_door_tot ); Oefening 5b v_tijd_volw number := 1.25; v_tijd_kind number :=.75; v_pol number := 8; v_door_volw number := 50; v_door_kind number := 20; v_#_volw pls_integer := 2; v_#_kind pls_integer := 1; v_#_dag pls_integer := 0; v_tijd_tot pls_integer := 0; v_door_tot pls_integer := 0; v_door_tot := v_pol + ( v_#_volw * v_door_volw ) + ( v_#_kind * v_door_kind) ; while v_tijd_tot < v_door_tot v_#_dag := v_#_dag + 1; B3
4 Leerboek Oracle PL/SQL v_tijd_tot := v_pol + v_#_dag * ( ( v_#_volw * v_tijd_volw) + ( v_#_kind * v_tijd_kind)); end ; dbms_output.put_line( 'Aantal dagen: ' v_#_dag ); dbms_output.put_line( 'Tijdelijk: ' v_tijd_tot ); dbms_output.put_line( 'Doorlopend: ' v_door_tot ); Oefening 6 v_bedrag number; v_beschikbaar constant number := 8000; v_aantal pls_integer; select count(*) into v_aantal from medewerkers; v_bedrag := v_beschikbaar / v_aantal; update medewerkers set maandsal = maandsal + v_bedrag ; if v_aantal <> sql%rowcount dbms_output.put_line ( 'Onjut aantal updates'); rollback; else dbms_output.put_line ( 'De salarverhoging bedraagt: ' to_char( v_bedrag )); end ; Oefening 7 v_teller pls_integer default 0; v_opslag constant number := 1.1; v_tot_sal number; v_maxtot constant number default 55000; select sum(maandsal) into v_tot_sal from medewerkers; B4
5 Bijlage B Uitwerkingen van de opgaven while ( v_tot_sal * v_opslag ) < v_maxtot v_teller := v_teller + 1; update medewerkers set maandsal = maandsal * v_opslag; v_tot_sal := v_tot_sal * v_opslag; end ; dbms_output.put_line('aantal updates: ' to_char(v_teller)); dbms_output.put_line('totaal aan salarsen: ' to_char(v_tot_sal)); Oefening 8 v_sal_10_procent number; v_sal_80_euro number ; select sum(maandsal * 1.1), sum(maandsal + 80) into v_sal_10_procent, v_sal_80_euro from medewerkers; dbms_output.put_line('v_sal_10_procent: ' to_char(v_sal_10_procent)); dbms_output.put_line('v_sal_80_euro : ' to_char(v_sal_80_euro)); if v_sal_10_procent < v_sal_80_euro update medewerkers set maandsal = maandsal * 1.1; else update medewerkers set maandsal = maandsal + 80; B5
6 Leerboek Oracle PL/SQL Oefening 9 v_sal_10_procent number; v_sal_80_euro number ; v_som number; v_aantal pls_integer; select count(*) into v_aantal from user_tables where table_name = 'LOG_TABEL'; if v_aantal = 0 execute immediate 'create table log_tabel ( ' ' getal number' ', tekst varchar2(200)' ', datum date )'; select sum(maandsal * 1.1), sum(maandsal + 80) into v_sal_10_procent, v_sal_80_euro from medewerkers; if v_sal_10_procent < v_sal_80_euro v_som := v_sal_10_procent; update medewerkers set maandsal = maandsal * 1.1; else v_som := v_sal_80_euro; update medewerkers set maandsal = maandsal + 80; -- de insert moet ook met dynamch SQL -- Het programma compileert niet als op compile-time -- de tabel log_tabel nog niet bestaat! execute immediate 'insert into log_tabel (getal) ' ' values (' v_som ')'; B6
7 Bijlage B Uitwerkingen van de opgaven Hoofdstuk 3 Oefening 1 v_naam medewerkers.naam%type; v_mnr medewerkers.mnr%type; v_maandsal medewerkers.maandsal%type; v_naam := 'VERMEULEN'; select mnr, maandsal into v_mnr, v_maandsal from medewerkers where naam = v_naam; dbms_output.put_line( 'Naam medewerker: ' v_naam ); dbms_output.put_line( 'Nummer: ' to_char( v_mnr )); dbms_output.put_line( 'Maandsalar: ' v_maandsal ); exception when no_data_found rae_application_error( , 'Onbekende werknemer ' v_naam ); when too_many_rows rae_application_error( , 'Meer dan 1 werknemer met de naam ' v_naam ); end ; Opmerking in deze uitwerking ziet u dat de variabele v_naam de waarde VERMEULEN krijgt, zodat de no_data_found-situatie getest kan worden. Om alle situaties te testen, moet u het script een keer bijwerken en aan v_naam een bestaande naam toekennen. Een derde keer moet u een naam die dubbel voorkomt, toekennen om de situatie too_many_ rows te testen. Omdat het vervelend om voor een goede test telkens het script te moeten aanpassen, kunt u ook gebruikmaken van substitutievariabelen. De eerste regel na de ziet er dan als volgt uit: v_naam := '&medewerkersnaam'; Voor een uitgebreide beschrijving van substitutievariabelen verwijzen we naar Leerboek Oracle SQL. In het kort komt de werking ervan op het volgende neer. In het script medewerkersnaam een substitutievariabele, herkenbaar aan de ampersand (&). Als u vanuit SQL*Plus (of een ontwikkeltool als SQL Developer) een script uitvoert, controleert Oracle of er substitutievariabelen in voorkomen. Zo ja, dan wordt u gevraagd de waarde van die variabele te specificeren. De waarde die u opgeeft, wordt in het script op de plaats van de B7
8 Leerboek Oracle PL/SQL substitutievariabele geplaatst. Daarna wordt het script aan de Oracle Server aangeboden en verwerkt. Oefening 2a BEGIN update afdelingen set naam = 'VERKOOP' where naam = 'PERSONEELSZAKEN'; EXCEPTION when dup_val_on_index rae_application_error( , 'Afdelingsnaam komt al voor'); END; Oefening 2b DECLARE e_afdeling_bestaat_niet exception; pragma exception_init( e_afdeling_bestaat_niet, -2291); BEGIN update medewerkers set afd = 50 where naam = 'DE KONING'; EXCEPTION when e_afdeling_bestaat_niet rae_application_error( , 'Afdelingsnummer bestaat niet'); END; Oefening 3 v_mnr medewerkers.mnr%type ; v_err varchar2( 250 ); e_geen_delete exception; e_fk_found exception; pragma exception_init( e_fk_found, ); v_mnr := &medewerkersnummer; delete from inschrijvingen where curst = v_mnr; update uitvoeringen set docent = null where docent = v_mnr; delete from medewerkers B8
9 Bijlage B Uitwerkingen van de opgaven where mnr = v_mnr; if sql%notfound rae e_geen_delete ; dbms_output.put_line( 'Medewerker verwijderd'); exception when e_fk_found v_err := dbms_utility.format_error_stack(); if v_err like '%.A_HOOFD_FK%' rae_application_error( , 'Medewerker niet verwijderd: afdelingshoofd'); elsif v_err like '%.M_CHEF_FK%' rae_application_error( , 'Medewerker niet verwijderd: heeft nog ondergeschikten'); when e_geen_delete rae_application_error( , 'Geen medewerker verwijderd'); Oefening 4 v_code cursussen.code%type; v_oms cursussen.omschrijving%type; v_type cursussen.type%type; v_lengte cursussen.lengte%type; v_code := upper( '&cursuscode' ); v_oms := '&cursusomschrijving'; v_type := upper( '&cursustype' ); v_lengte := &cursuslengte; insert into cursussen ( code, omschrijving, type, lengte ) values ( v_code, v_oms, v_type, v_lengte ); dbms_output.put_line( 'Cursus ' v_code ' toegevoegd' ); B9
10 Leerboek Oracle PL/SQL exception when dup_val_on_index update cursussen set omschrijving = v_oms, type = v_type, lengte = v_lengte where code = v_code; dbms_output.put_line( 'Cursus ' v_code ' gewijzigd' ); Hoofdstuk 4 Oefening 1 type type_tab_naam table of medewerkers.naam%type; t_namen type_tab_naam; select naam bulk collect into t_namen from medewerkers order by naam; if t_namen.count > 0 dbms_output.put_line( 'Namen met een A'); for i in 1.. t_namen.count if t_namen( i ) like '%A%' dbms_output.put_line(t_namen( i ) ); end ; dbms_output.put_line( 'Namen langer dan 6 tekens'); for i in 1.. t_namen.count if length( t_namen( i ) ) > 6 dbms_output.put_line(t_namen( i ) ); B10
11 Bijlage B Uitwerkingen van de opgaven end ; Oefening 2 type type_coll_med table of medewerkers%rowtype; t_med type_coll_med; v_index pls_integer; select * bulk collect into t_med from medewerkers order by gbdatum; v_index := t_med.first; while v_index not null dbms_output.put_line( t_med(v_index).naam ' ' to_char( t_med(v_index).gbdatum ) ); exit when v_index >= 4; v_index := t_med.next(v_index); end ; Oefening 3 type type_rec_med record ( naam medewerkers.naam%type, functie medewerkers.functie%type, maandsal medewerkers.maandsal%type, cumsal number); type type_coll_medrec table of type_rec_med; t_med type_coll_medrec; v_cumsal number := 0; select naam B11
12 Leerboek Oracle PL/SQL, functie, maandsal, null bulk collect into t_med from medewerkers order by naam; if t_med.count > 0 for i in 1.. t_med.count v_cumsal := v_cumsal + t_med(i).maandsal; t_med(i).cumsal := v_cumsal; dbms_output.put_line(t_med( i ).naam ' ' t_med( i ).functie ' ' t_med( i ).maandsal ' ' t_med( i ).cumsal ); end ; Oefening 4 type type_coll_med table of medewerkers%rowtype; t_med type_coll_med; v_opgemaakt number := 0 ; v_grens number := 1500; select * bulk collect into t_med from medewerkers order by maandsal for update; if t_med.count > 0 for i in 1.. t_med.count exit when v_opgemaakt + ( t_med(i).maandsal * 0.1 ) > v_grens; update medewerkers set maandsal = maandsal * 1.10 where mnr = t_med(i).mnr; B12
13 Bijlage B Uitwerkingen van de opgaven v_opgemaakt := v_opgemaakt + ( t_med(i).maandsal * 0.1 ); end ; dbms_output.put_line ( 'Opgemaakt: ' to_char( v_opgemaakt )); commit; Oefening 5 type type_coll_med table of medewerkers%rowtype; t_med type_coll_med; v_teller pls_integer:= 0; v_totsal number := 0; v_maxsal constant number := 55000; v_opslag constant number := 0.1; select * bulk collect into t_med from medewerkers order by gbdatum desc for update; if t_med.count = 0 rollback; -- met het return-statement kunnen we een PL/SQL-blok -- direct verlaten. return; select sum(maandsal) into v_totsal from medewerkers; <<buiten>> while v_totsal <= v_maxsal for i in 1..t_med.count exit buiten when (v_totsal + ( t_med(i).maandsal * v_opslag )) > v_maxsal; update medewerkers B13
14 Leerboek Oracle PL/SQL set maandsal = maandsal * (1 + v_opslag) where mnr = t_med(i).mnr; t_med(i).maandsal := t_med(i).maandsal *(1+ v_opslag); v_teller := v_teller + 1; v_totsal := v_totsal + (t_med(i).maandsal * v_opslag); end ; end buiten; dbms_output.put_line( to_char( v_teller ) '-maal een rij ge-update' ); dbms_output.put_line( to_char( v_totsal ) ' het salartotaal' ); commit; Oefening 6 type type_coll_varchar varray (4) of varchar2(15); t_telefoon type_coll_varchar := type_coll_varchar(); t_telefoon.extend(4); t_telefoon(1) := ' '; t_telefoon(2) := ' '; t_telefoon(3) := ' '; t_telefoon(4) := ' '; for i in dbms_output.put_line(t_telefoon(i)); end ; -- De volgende regel mag niet: -- t_telefoon(5) := ' '; -- Levert een fout op: ORA-06532: Subscript outside of limit -- Alternatief: type type_coll_varchar varray (4) of varchar2(15); t_telefoon type_coll_varchar := type_coll_varchar(' ', ' ', ' ', ' '); B14
15 Bijlage B Uitwerkingen van de opgaven for i in dbms_output.put_line(t_telefoon(i)); end ; Oefening 7 create table mkopie as select * from medewerkers where 1=2 / type type_coll_med table of medewerkers%rowtype; tab_mdw type_coll_med; select * bulk collect into tab_mdw from medewerkers order by naam; forall i in indices of tab_mdw insert into mkopie values tab_mdw(i); Oefening 8 type type_coll_number table of number; t_mnrs type_coll_number; select m.mnr bulk collect into t_mnrs from medewerkers m where m.functie = 'MANAGER'; forall i in indices of t_mnrs update medewerkers set maandsal = 1.1 * maandsal where chef = t_mnrs(i); B15
16 Leerboek Oracle PL/SQL for i in t_mnrs.first.. t_mnrs.last dbms_output.put_line( 'Aantal updates: ' sql%bulk_rowcount(i) ' bij medewerker ' t_mnrs(i) ); end ; Oefening 9 type type_coll_number table of number; tab_chef type_coll_number; tab_hoofd type_coll_number; tab_docent type_coll_number; tab_chef_niet_hoofd type_coll_number; tab_chef_docent type_coll_number; select chef bulk collect into tab_chef from medewerkers; select hoofd bulk collect into tab_hoofd from afdelingen; select docent bulk collect into tab_docent from uitvoeringen; tab_chef_niet_hoofd := tab_chef multet except tab_hoofd; tab_chef_niet_hoofd := set ( tab_chef_niet_hoofd ); tab_chef_docent := tab_chef multet intersect tab_docent; dbms_output.put_line('niet-hoofden:'); if not tab_chef_niet_hoofd empty for i in 1.. tab_chef_niet_hoofd.count dbms_output.put_line(tab_chef_niet_hoofd(i)); B16
17 Bijlage B Uitwerkingen van de opgaven end ; dbms_output.put_line('chefs die docent zijn:'); if not tab_chef_docent empty dbms_output.put_line(tab_chef_docent(i)); end ; Hoofdstuk 5 Oefening 1 procedure print ( p_tekst in varchar2 ) dbms_output.put_line( p_tekst ); end print; print( user ); print( sysdate ); Oefening 2 v_woord varchar2( 200 ); function revstr ( p_tekst in varchar2 ) return varchar2 v_revtekst varchar2( 200 ); for i in 1.. length( p_tekst ) v_revtekst := substr( p_tekst, i, 1 ) v_revtekst ; end ; return v_revtekst; end revstr; B17
18 Leerboek Oracle PL/SQL v_woord := '&woord'; dbms_output.put_line( revstr( p_tekst => v_woord )); Oefening 3 create sequence seq_medewerkers_mnr start with 8000 / v_afd afdelingen.anr%type; function afdeling_van (p_mnr in medewerkers.mnr%type) return number v_anr afdelingen.anr%type; select afd into v_anr from medewerkers where p_mnr = mnr; return v_anr; exception when no_data_found return null; end afdeling_van; procedure ontsla_med ( p_mnr in medewerkers.mnr%type ) v_err varchar2( 200 ); e_geen_delete exception; e_fk_found exception; pragma exception_init( e_fk_found, ); delete from inschrijvingen where curst = p_mnr; update uitvoeringen set docent = null where docent = p_mnr; delete from medewerkers where mnr = p_mnr; if sql%notfound rae e_geen_delete ; B18
19 Bijlage B Uitwerkingen van de opgaven exception when e_fk_found v_err := dbms_utility.format_error_stack(); if v_err like '%.A_HOOFD_FK%' rae_application_error( , 'Medewerker niet verwijderd: afdelingshoofd'); elsif v_err like '%.M_CHEF_FK%' rae_application_error( , 'Medewerker niet verwijderd: heeft nog ondergeschikten'); when e_geen_delete rae_application_error( , 'Geen medewerker verwijderd'); end ontsla_med; procedure neem_med_aan ( p_naam in medewerkers.naam%type, p_voorl in medewerkers.voorl%type, p_gbdatum in medewerkers.gbdatum%type, p_maandsal in medewerkers.maandsal%type, p_afd in medewerkers.afd%type, p_functie in medewerkers.functie%type default null, p_chef in medewerkers.chef%type default null ) v_afd_chef number; v_functie medewerkers.functie%type := upper( p_functie ); e_geen_18 exception; e_geen_chef exception; e_geen_chef_afd exception; if months_between( sysdate, p_gbdatum )/12 < 18 rae e_geen_18; if p_chef not null v_afd_chef := afdeling_van( p_chef ); exception when no_data_found rae e_geen_chef; if v_afd_chef <> p_afd B19
20 Leerboek Oracle PL/SQL rae e_geen_chef_afd; insert into medewerkers ( mnr, naam, voorl, functie, chef, gbdatum, maandsal, comm, afd ) values ( seq_medewerkers_mnr.nextval, upper ( p_naam ), upper ( p_voorl ), v_functie, p_chef, p_gbdatum, p_maandsal, case v_functie when 'VERKOPER' p_maandsal *.1 else null end, p_afd ) ; exception when e_geen_chef rae_application_error( , 'Ongeldig chefnummer: ' to_char( p_chef )); when e_geen_chef_afd rae_application_error( , 'Chef niet op zelfde ' 'afdeling als medewerker' ); when e_geen_18 rae_application_error( , 'Medewerker nog geen 18 jaar' ); end neem_med_aan ; B20
21 Bijlage B Uitwerkingen van de opgaven BEGIN ontsla_med( p_mnr => 7900 ); v_afd := afdeling_van( p_mnr => 7369 ); dbms_output.put_line( v_afd ); neem_med_aan ( p_naam => 'vermeulen', p_voorl => 't', p_gbdatum => to_date(' ', 'dd-mm-yyyy'), p_maandsal => 2000, p_afd => 10 ); neem_med_aan ( p_naam => 'derks', p_voorl => 'm', p_gbdatum => to_date(' ', 'dd-mm-yyyy'), p_maandsal => 2500, p_afd => 30, p_functie => 'verkoper', p_chef => 7698 ); neem_med_aan ( p_naam => 'martens', p_voorl => 'i', p_gbdatum => to_date(' ', 'dd-mm-yyyy'), p_maandsal => 2100, p_afd => 20, p_functie => 'TRAINER' ); neem_med_aan ( p_naam => 'punter', p_voorl => 'w', p_gbdatum => to_date(' ', 'dd-mm-yyyy'), p_maandsal => 2600, p_afd => 30, p_functie => 'verkoper', p_chef => 7782 ); END; B21
22 Leerboek Oracle PL/SQL Oefening 4 v_rekening varchar2( 20 ); function geldig_bankrek ( p_reknr in varchar2 ) return boolean v_reknr varchar2( 20 ) := p_reknr; v_lengte constant number := 9; v_som number default 0; v_cijfer varchar2( 1 ); v_reknr := replace( v_reknr, '.', '' ); v_reknr := replace( v_reknr, ' ', '' ); if length( v_reknr ) <> v_lengte return false; else for i in 1.. v_lengte v_cijfer := substr( v_reknr, i, 1 ); if v_cijfer not between 0 and 9 return false; v_som := v_som + ( ((v_lengte+1) - i) * v_cijfer ); end ; if mod( v_som, 11 ) <> 0 return false; else return true; end geldig_bankrek ; v_rekening := '&rekeningnummer'; if geldig_bankrek( p_reknr => v_rekening ) dbms_output.put_line( 'Geldig rekeningnummer' ); else dbms_output.put_line( 'Ongeldig rekeningnummer' ); B22
23 Bijlage B Uitwerkingen van de opgaven Oefening 5 procedure drop_tabel ( p_tabel in varchar2, p_cascade_mode in varchar2 default 'NO_CASCADE' ) v_error varchar2( 255 ); v_cascade varchar2( 30 ); e_onbekende_parameter exception; if upper( p_cascade_mode ) = 'CASCADE' v_cascade := ' cascade constraints'; elsif upper( p_cascade_mode ) = 'NO_CASCADE' null; else rae e_onbekende_parameter; execute immediate 'drop table ' p_tabel v_cascade ; exception when e_onbekende_parameter rae_application_error( , 'Onbekende waarde voor parameter P_CASCADE_MODE: ' p_cascade_mode ); end drop_tabel; drop_tabel(p_tabel => 'schalen'); drop_tabel(p_tabel => 'medewerkers'); Hoofdstuk 6 Oefening 1 v_bedrag number; v_beschikbaar constant number := 8000; v_aantal pls_integer; cursor c_med select count(*) from medewerkers; B23
24 Leerboek Oracle PL/SQL open c_med; fetch c_med into close c_med; v_aantal; v_bedrag := v_beschikbaar / v_aantal; update medewerkers set maandsal = maandsal + v_bedrag ; if v_aantal <> sql%rowcount dbms_output.put_line ( 'Onjut aantal updates'); rollback; else dbms_output.put_line ( 'De salarverhoging bedraagt: ' to_char( v_bedrag )); end ; Oefening 2 cursor c_med select * from medewerkers order by gbdatum; type type_coll_med table of c_med%rowtype; t_med type_coll_med; v_index pls_integer; open c_med; fetch c_med bulk collect into t_med; close c_med; v_index := t_med.first; while v_index not null dbms_output.put_line( t_med(v_index).naam ' ' to_char( t_med(v_index).gbdatum ) ); exit when v_index >= 4; v_index := t_med.next(v_index); end ; B24
25 Bijlage B Uitwerkingen van de opgaven Oefening 3 cursor c_med select naam, gbdatum from medewerkers order by gbdatum; for r_med in c_med exit when c_med%rowcount >= 5; dbms_output.put_line( r_med.naam ' ' to_char ( r_med.gbdatum ) ); end ; Oefening 4 cursor c_med select * from medewerkers order by maandsal for update; v_opgemaakt number := 0 ; v_grens number := 1500; for r_med in c_med exit when v_opgemaakt + ( r_med.maandsal * 0.1 ) > v_grens; update medewerkers set maandsal = maandsal * 1.10 where current of c_med; v_opgemaakt := v_opgemaakt + ( r_med.maandsal * 0.1 ); end ; dbms_output.put_line ( 'Opgemaakt: ' to_char( v_opgemaakt )); commit; B25
26 Leerboek Oracle PL/SQL Hoofdstuk 7 Oefening 1 alter session set plsql_warnings = 'enable:all' Oefening 2 Hier volgt alleen de uitwerking voor de procedure print. De overige procedures creëert u op dezelfde manier door de proceduredefinitie van create [or replace] te voorzien. create or replace procedure print ( p_tekst in varchar2 ) dbms_output.put_line( p_tekst ); end print; Oefening 3 create or replace function years_between ( p_datum1 in date, p_datum2 in date ) return number return ( months_between( p_datum1, p_datum2) / 12); end years_between; select naam, gbdatum, trunc( years_between (sysdate, gbdatum) ) as leeftijd from medewerkers Oefening 4 create or replace procedure log_melding ( p_tekst in varchar2, p_getal in number default null) pragma autonomous_transaction; insert into log_tabel (getal, tekst, datum) values (p_getal, p_tekst, sysdate); commit; end log_melding; B26
27 Bijlage B Uitwerkingen van de opgaven Oefening 5 select text from user_source where name like upper( '%&naam%' ) Oefening 6 select table_name from user_tables tab where not exts ( select 1 from user_dependencies dep where tab.table_name = dep.referenced_name) Oefening 7 -- Voor de eerste controle moet u eerst het script UTLDTREE.sql uitvoeren. -- Daarna voert u de procedure deptree_fill als volgt uit: execute deptree_fill( 'TABLE', user, 'MEDEWERKERS' ) -- Daarna vindt u de afhankelijkheden terug in de view deptree of ideptree: select * from deptree; select * from ideptree; -- Voor de tweede controle roept u opnieuw de procedure deptree_fill aan en -- wel als volgt: execute deptree_fill( 'TABLE', user, 'INSCHRIJVINGEN' ) -- Daarna raadpleegt u deptree of ideptree. select * from deptree; select * from ideptree; Hoofdstuk 8 Oefening 1 create or replace package pck_pz as procedure bepaal_comm_perc ( p_ratio in number ); procedure ontsla_med ( p_mnr in medewerkers.mnr%type ); procedure ontsla_med ( p_naam in medewerkers.naam%type B27
28 Leerboek Oracle PL/SQL ); procedure neem_med_aan ( p_naam in medewerkers.naam%type, p_voorl in medewerkers.voorl%type, p_gbdatum in medewerkers.gbdatum%type, p_maandsal in medewerkers.maandsal%type, p_afd in medewerkers.afd%type, p_functie in medewerkers.functie%type default null, p_chef in medewerkers.chef%type default null ); end pck_pz; / create or replace package body pck_pz as g_commsieratio number; procedure bepaal_comm_perc ( p_ratio in number ) v_maxratio number; select max( comm/maandsal ) into v_maxratio from medewerkers; if p_ratio <= v_maxratio g_commsieratio := p_ratio; else rae_application_error( , 'Waarde van initiele commsieratio (' to_char( p_ratio ) ') overschrijdt maximum (' to_char( v_maxratio ) ')' ) ; end bepaal_comm_perc; function afdeling_van (p_mnr in number ) return number v_anr number; select afd B28
29 Bijlage B Uitwerkingen van de opgaven into v_anr from medewerkers where p_mnr = mnr; return v_anr; exception when no_data_found return null; end afdeling_van; procedure ontsla_med ( p_mnr in medewerkers.mnr%type ) v_err varchar2( 200 ); e_geen_delete exception; e_fk_found exception; pragma exception_init( e_fk_found, ); delete from inschrijvingen where curst = p_mnr; update uitvoeringen set docent = null where docent = p_mnr; delete from medewerkers where mnr = p_mnr; if sql%notfound rae e_geen_delete ; exception when e_fk_found v_err := dbms_utility.format_error_stack(); if v_err like '%.A_HOOFD_FK%' rae_application_error( , 'Medewerker niet verwijderd: afdelingshoofd'); elsif v_err like '%.M_CHEF_FK%' rae_application_error( , 'Medewerker niet verwijderd: heeft nog ondergeschikten'); when e_geen_delete rae_application_error( , 'Geen medewerker verwijderd'); end ontsla_med; procedure ontsla_med ( p_naam in medewerkers.naam%type ) B29
30 Leerboek Oracle PL/SQL v_mnr medewerkers.mnr%type; select mnr into v_mnr from medewerkers where naam = p_naam; ontsla_med( v_mnr); exception when no_data_found rae_application_error( , 'Medewerker bestaat niet: ' p_naam); when too_many_rows rae_application_error( , 'Naam medewerker niet uniek: ' p_naam '. Gebruik mnr' ); end ontsla_med; procedure neem_med_aan ( p_naam in medewerkers.naam%type, p_voorl in medewerkers.voorl%type, p_gbdatum in medewerkers.gbdatum%type, p_maandsal in medewerkers.maandsal%type, p_afd in medewerkers.afd%type, p_functie in medewerkers.functie%type default null, p_chef in medewerkers.chef%type default null ) v_afd_chef number; v_functie medewerkers.functie%type := upper( p_functie ); e_geen_18 exception; e_geen_chef exception; e_geen_chef_afd exception; if months_between( sysdate, p_gbdatum )/12 < 18 rae e_geen_18; if p_chef not null v_afd_chef := afdeling_van( p_chef ); exception when no_data_found rae e_geen_chef; if v_afd_chef <> p_afd B30
31 Bijlage B Uitwerkingen van de opgaven rae e_geen_chef_afd; insert into medewerkers ( mnr, naam, voorl, functie, chef, gbdatum, maandsal, comm, afd ) values ( seq_medewerkers_mnr.nextval, upper ( p_naam ), upper ( p_voorl ), v_functie, p_chef, p_gbdatum, p_maandsal, case v_functie when 'VERKOPER' p_maandsal * g_commsieratio else null end, p_afd ) ; exception when e_geen_chef rae_application_error( , 'Ongeldig chefnummer: ' to_char( p_chef )); when e_geen_chef_afd rae_application_error( , 'Chef niet op zelfde ' 'afdeling als medewerker' ); when e_geen_18 rae_application_error( , 'Medewerker nog geen 18 jaar' ); end neem_med_aan ; select avg( comm/maandsal ) into g_commsieratio from medewerkers; B31
32 Leerboek Oracle PL/SQL exception when zero_divide rae_application_error( , 'Kan commsieratio niet uitrekenen: maandsal = 0'); end pck_pz; Oefening 2 create or replace package timer as procedure aanzetten; procedure stopzetten; function verstreken_msecs return pls_integer; create or replace package body timer as g_ pls_integer; g_eind pls_integer; procedure aanzetten g_ := dbms_utility.get_time(); end aanzetten; procedure stopzetten g_eind := dbms_utility.get_time(); end stopzetten; function verstreken_msecs return pls_integer return (g_eind - g_); end verstreken_msecs ; B32
33 Bijlage B Uitwerkingen van de opgaven Oefening 3 t_namen dbms_utility.lname_array; v_namen varchar2(2000); v_aantal binary_integer; select naam bulk collect into t_namen from afdelingen; dbms_utility.table_to_comma ( tab => t_namen, tablen => v_aantal, lt => v_namen); dbms_output.put_line(v_namen); Hoofdstuk 9 Oefening 1 create table uit_audit ( wie varchar2(30), wat varchar2(3), wanneer date ) / create or replace trigger asiud_uit after insert or update or delete on uitvoeringen v_action varchar2( 3 ) ; if ( inserting ) v_action := 'INS'; elsif( updating ) v_action := 'UPD'; else v_action := 'DEL'; insert into uit_audit ( wie, wat, wanneer ) B33
34 Leerboek Oracle PL/SQL values ( user, v_action, sysdate ); end asiud_uit; Oefening 2 create or replace trigger biur_med before insert or update on medewerkers for each row if :new.gbdatum not null and months_between( sysdate, :new.gbdatum)/12 < 18 rae_application_error( , 'Medewerker jonger dan 18 jaar' ); :new.functie := upper( :new.functie ); :new.naam := upper( :new.naam ); if :new.functie = 'MANAGER' and :old.functie not in ( 'MANAGER', 'DIRECTEUR' ) :new.maandsal := :old.maandsal * 1.1; end biur_med; Oefening 3 Voor deze opgave het nodig een package (een specificatie en een body) te maken en drie triggers die een aantal procedures uit het package aanroepen. create table uit_audit (wie varchar2(30), wat varchar2(3), wanneer date, aantal number) / create or replace package pck_audit as procedure init; procedure telop; procedure schrijf; end pck_audit; / create or replace package body pck_audit as g_aantal pls_integer := 0; B34
35 Bijlage B Uitwerkingen van de opgaven procedure init g_aantal := 0; end init ; procedure telop g_aantal := g_aantal + 1; end telop; procedure schrijf v_action varchar2( 3 ) ; if ( inserting ) v_action := 'INS'; elsif( updating ) v_action := 'UPD'; else v_action := 'DEL'; insert into uit_audit ( wie, wat, wanneer, aantal ) values ( user, v_action, sysdate, g_aantal ); end schrijf; end pck_audit ; / create or replace trigger biuds_uit before insert or update or delete on uitvoeringen pck_audit.init ; end biuds_uit; / create or replace trigger aiudr_uit after insert or update or delete on uitvoeringen for each row B35
36 Leerboek Oracle PL/SQL pck_audit.telop; end aiudr_uit; / create or replace trigger aiuds_uit after insert or update or delete on uitvoeringen pck_audit.schrijf; end aiuds_uit; Oefening 4 Voor deze opgave het nodig een package (een specificatie en een body) te maken en drie triggers die een aantal procedures uit het package aanroepen. create or replace package pck_chefconstr as procedure init ; procedure save (p_mnr in medewerkers.mnr%type,p_chef in medewerkers.chef%type,p_afd in medewerkers.afd%type ) ; procedure check_constr ; end pck_chefconstr ; / create or replace package body pck_chefconstr as e_geen_directeur exception ; e_directeurs exception ; type type_rec_med record ( mnr medewerkers.mnr%type, chef medewerkers.chef%type, afd medewerkers.afd%type ) ; type type_tab_med table of type_rec_med index by binary_integer; t_med type_tab_med; g_index pls_integer := 0 ; procedure init B36
37 Bijlage B Uitwerkingen van de opgaven t_med.delete ; g_index := 0 ; end init ; procedure save (p_mnr in medewerkers.mnr%type,p_chef in medewerkers.chef%type,p_afd in medewerkers.afd%type ) g_index := g_index + 1 ; t_med(g_index).mnr := p_mnr ; t_med(g_index).chef := p_chef ; t_med(g_index).afd := p_afd ; end save ; procedure check_constr v_pres medewerkers.mnr%type ; v_afd medewerkers.afd%type ; select med.mnr into v_pres from medewerkers med where med.chef null ; exception when no_data_found rae e_geen_directeur ; when too_many_rows rae e_directeurs ; end ; for i in 1.. t_med.count if t_med(i).chef <> v_pres select med.afd into v_afd from medewerkers med where med.mnr = t_med(i).chef ; if v_afd <> t_med(i).afd B37
38 Leerboek Oracle PL/SQL rae_application_error ( , 'Medewerker ' to_char (t_med(i).mnr) ' (afdeling ' to_char(t_med(i).afd) ') moet op zelfde afdeling als zijn chef werken (' to_char(t_med(i).chef) ' afdeling ' to_char(v_afd) ')' ) ; end if ; end if ; end ; exception when e_directeurs rae_application_error ( , 'Meer dan 1 directeur.') ; when e_geen_directeur rae_application_error ( , 'Geen directeur aanwezig.') ; end check_constr ; end pck_chefconstr ; / create or replace trigger med_bsiu before insert or update of chef, afd on medewerkers pck_chefconstr.init ; end med_bsiu; / create or replace trigger med_ariu after insert or update of chef, afd on medewerkers for each row pck_chefconstr.save (:new.mnr, :new.chef, :new.afd) ; end med_ariu; / create or replace trigger med_asiu after insert or update of chef, afd on medewerkers pck_chefconstr.check_constr ; end med_asiu ; / B38
Elfde-Liniestraat 24 3500 Hasselt Schooljaar 2009-2010 TINFO POKER GAME Oracle Scripts
Elfde-Liniestraat 24 3500 Hasselt Schooljaar 2009-2010 TINFO POKER GAME Oracle Scripts Studenten: Peter Asnong Rik Broens Tom De Keyser Daan Gielen Kris Gregoire Koen Olaerts Toon Wouters Inhoudsopgave
PL/SQL. Declaraties van variabelen. Structuur PL/SQL is een blok-georiënteerde taal: Toekenningen
PL/SQL PL/SQL is een procedurele uitbreiding op SQL, omdat SQL op zich niet krachtig genoeg is om complexe databank applicaties te ontwikkelen. Server-side functies, of stored procedures worden op de database
Secure Application Roles
Secure Application Roles Beheer de toegang tot de database 1. Inleiding Het realiseren van geautoriseerde toegang tot een database lijkt eenvoudig. Echter, vaak blijkt dat dezelfde combinatie van gebruikersnaam
SQL manipulatietaal. We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database.
SQL manipulatietaal We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database. Basiscommando's: INSERT : toevoegen van gegevens DELETE : verwijderen van gegevens UPDATE : wijzigen van gegevens
SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.
BASISINSTRUCTIES SQL SQL : Structured Query Language is een taal gericht op het ondervragen van een relationele database en die aan veel klassieke databasemanagementsystemen kan worden gekoppeld. SQL is
DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd.
SQL Inleiding relationele databases DBMS DataBase Management System!hiërarchische databases.!netwerk databases.!relationele databases.!semantische databases.!object oriënted databases. Relationele databases
Tien manuals voor PL/SQL ontwikkelaar
Tien manuals voor PL/SQL ontwikkelaar Overzicht nieuwe features in Oracle 9i Een PL/SQL ontwikkelaar heeft niet alleen maar met de taal PL/SQL te maken. De basis van de functionaliteit die een PL/SQL ontwikkelaar
Query SQL Boekje. Fredrik Hamer
Query SQL Boekje Query SQL Boekje Fredrik Hamer Schrijver: Fredrik Hamer Coverontwerp: Fredrik Hamer ISBN: 9789402162103 Fredrik Hamer Inhoudsopgave A. Aanhef bepalen 17 Aantal 18 Aantal dagen tussen
DBMS SQL. Relationele databases. Sleutels. DataBase Management System. Inleiding relationele databases. bestaan uit tabellen.
SQL Inleiding relationele databases DBMS DataBase Management System!hiërarchische databases.!netwerk databases.!relationele databases.!semantische databases.!object oriënted databases. Op dit moment gebruiken
1. Geef code en omschrijving van alle cursussen die precies vier dagen duren.
Antwoorden Deze bijlage geeft de antwoorden van de opgaven waarmee de hoofdstukken 4, 5, 7, 8, 9, en 10 zijn afgesloten. Waar dat van toepassing is geven we alternatieve oplossingen aan, evenals waarschuwingen
Sparse columns in SQL server 2008
Sparse columns in SQL server 2008 Object persistentie eenvoudig gemaakt Bert Dingemans, e-mail : [email protected] www : http:// 1 Content SPARSE COLUMNS IN SQL SERVER 2008... 1 OBJECT PERSISTENTIE EENVOUDIG
SQL datadefinitietaal
SQL datadefinitietaal We kunnen er het schema van de database mee bepalen: metadata toevoegen, wijzigen en verwijderen uit een database. Basiscommando's: CREATE : toevoegen van metagegevens DROP : verwijderen
SQL STATEMENTS. Deze kolom kan grote stukken tekst aan en is bedoeld om tekst erin de plaatsen. Geheel getal, bijvoorbeeld 8, 63, 835 NUMERIC
Aantekeningen IRDB Vak: IRDB > Infrma1ca Rela1nele DataBase Onderstaande database scripts zijn gebaseerd p PstgreSQL. Standaarden Schrijf SQL wrden al1jd in hfdlefers, k al werkt het met kleine lefers;
Toon TITEL, JAAR en PLATVORM van GAMES die voor het jaar 2000 uitkwamen op Nintendo 64
Klas Veldnaam Datatype Lengte KLASNAAM Short Text 3 Characters JONGENS Number Integer MEISJES Number Integer Lessen Veldnaam Datatype Lengte KLASNAAM Short Text 3 Characters DOCCODE Short Text 3 Characters
COMPUTERWOORDEN.NL SQL - basis
Inhoudsopgave... 1 Introductie: SQL... 7 SQL... 7 SQL geschiedenis...7 SQL dialecten...7 Basis SQL-commando's...8 CREATE TABLE... 8... 8... 8 Datatype...8 Grootte...10 Veldtype... 10 DELETE FROM... 10...
Oefeningen Hoofdstuk 1 : Select
Oefeningen Hoofdstuk 1 : Select 1. Geef de naam en functie van alle medewerkers die verkoper zijn. VERKOPER VERKOPER MARTENS VERKOPER DEN DRAAIER VERKOPER 2. Geef de naam en functie van de medewerkers
1. Inleiding... 2 1.1. Inleiding SQL... 3 1.1.1. Inleiding... 3 1.1.2. Database, databaseserver en databasetaal... 4 1.1.3. Het relationele model...
1. Inleiding... 2 1.1. Inleiding SQL... 3 1.1.1. Inleiding... 3 1.1.2. Database, databaseserver en databasetaal... 4 1.1.3. Het relationele model... 4 1.1.4. Wat is SQL?... 6 1.1.5. Verschillende categorieên
Puzzelen met SQL: Fileleed
Puzzelen met SQL: Fileleed Patrick Barel, Alex Nuijten - AMIS Services BV Na begin de dag met een dansje en de NOS Headlines worden op Radio 3 de files voorgelezen. Heleen de Geest of John Bakker, van
Foutafhandeling in SQL
Algemene richtlijnen binnen de mogelijkheden van RDBMS en 4GL Foutafhandeling in SQL Toon Loonen Foutafhandeling van SQL-code is op veel projecten een achtergebleven gebied. Soms is er discussie of het
SQL Aantekeningen 3. Maarten de Rijke [email protected]. 22 mei 2003
SQL Aantekeningen 3 Maarten de Rijke [email protected] 22 mei 2003 Samenvatting In deze aflevering: het selecteren van tuples, operaties op strings, en aggregatie functies. Verder kijken we naar iets
Inhoud. Voorwoord Belangrijkste kenmerken van dit boek De opzet van dit boek Over de auteur Woord van dank
v Voorwoord Belangrijkste kenmerken van dit boek De opzet van dit boek Over de auteur Woord van dank 1 Introductie: data en informatie 1.0 Wat leer je in dit hoofdstuk? 1.1 Verschil tussen gegevens en
2 Specificatie In deze tabel staat voor welk crebotraject de leereenheid is gemaakt Crebotraject code: 95311
LEEREENHEID Oracle Dit document bestaat uit twee onderdelen - Onderdeel Leereenheid - Onderdeel Onderwijsproduct 1 Naam leereenheid In deze tabel staat de naam en het type van de leereenheid Leereenheid
[TOETS SQL INLEIDING]
2011 ROC ter AA afdeling T&T Team ICT Toets SQL Inleiding Duur: 100 minuten Hulpmiddelen: Alleen Pen en Papier Er is één voorblad en vijf opgaven pagina s. Normering: Deel I: 14 punten (7x2 Deel II: 10
Puzzelen met SQL DBA. De muzieklijst, deel 1. De tabellen De tabellen die we gaan gebruiken in deze puzzel zijn weergegeven in afbeelding 1.
Puzzelen met SQL De muzieklijst, deel 1 In de trein, in het park, in de stad, op de fiets voorop en ook achterop tijdens het hardlopen en zelfs met zwemmen, overal kom je ze tegen. Of het nu verhalen zijn,
Data Definition Language
Data Definition Language We gaan hier dezelfde database gebruiken als in de vorige les. Nu gaan we deze echter maken met behulp van DDL gedeelte van SQL. Om in het SQL deel van Microsoft Access te komen
Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren
Universiteit van Amsterdam FNWI Voorbeeld van tussentoets Inleiding programmeren Opgave 1: Wat is de uitvoer van dit programma? public class Opgave { static int i = 0 ; static int j = 1 ; int i = 1 ; int
Inhoudsopgave. Theorie... 14 Praktijk... 14. Gegevens uit Database halen... 13 DML commando s... 14
SQL 2013 Inhoudsopgave Inhoudsopgave... 2 SQL begrippen... 3 Maken Database... 4 Rechten voor een Database... 4 User aanmaken... 5 Rol Toekennen aan een user... 5 Backup... 6 Theorie... 6 In SQL... 6 SQL
Editions Based Redefinition: Tijdens de verbouwing gaat de verkoop door. Lucas Jellema, Alex Nuijten - AMIS Services BV
Editions Based Redefinition: Tijdens de verbouwing gaat de verkoop door. Lucas Jellema, Alex Nuijten - AMIS Services BV In een vorige editie van Optimize hebben we bekeken wat voor nieuwe toeters en bellen
Deze software kunt u eventueel downloaden van de officiële site van Oracle:
Voorwoord Dit boek vormt een uitgebreide kennismaking met de taal PL/SQL van Oracle. Deze taal combineert de kracht van de vierdegeneratietaal SQL met de procedurele elementen van een derdegeneratietaal.
Object geörienteerd Pl/Sql
Object geörienteerd Pl/Sql Pl/Sql, da's toch niks man! Java veel krachtiger, daar kun je alles mee! Een beetje overdreven denk je mschien, maar soms bekruipt me het gevoel dat veel Oracleconsultants binnen
2 Specificatie In deze tabel staat voor welk crebotraject de leereenheid is gemaakt Crebotraject code: 95311
LEEREENHEID PhP 2 Dit document bestaat uit twee onderdelen - Onderdeel Leereenheid - Onderdeel Onderwijsproduct 1 Naam leereenheid In deze tabel staat de naam en het type van de leereenheid Leereenheid
Zelftest Oracle basiscursus
Zelftest Oracle basiscursus Document: N0475Test.fm 14/01/2008 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST ORACLE BASISCURSUS Dit is een
Een Data Driven toepassing op basis van Visual Objects en SQL Server
Een Data Driven toepassing op basis van Visual Objects en SQL Server Door Bert Dingemans www.dla-architect.nl Inleiding In voorgaande artikelen heb ik een aantal onderwerpen belicht die ten grondslag liggen
SQL.
SQL [email protected] Mogelijkheden Tabellen maken: create table Tabellen verwijderen: drop table Tabellen vullen: insert into Tabellen wijzigen: update, delete from Gegevens opvragen: select
= > >= < <= BETWEEN IS NULL IS NOT NULL
Select queries SELECT...FROM... SELECT DISINCT...FROM... WHERE...AND...OR...NOT...LIKE...IN = > >= <
Zelftest DB2 for z/os basiscursus
Zelftest DB2 for z/os basiscursus Document: n1067test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST DB2 FOR Z/OS BASISCURSUS
Databases - Inleiding
Databases Databases - Inleiding Een database is een verzameling van een aantal gegevens over een bepaald onderwerp: een ledenbestand van een vereniging, een forum, login gegevens. In een database worden
Databank - Basis 1. Inhoud. Computervaardigheden en Programmatie. Hoofdstuk 4 Databank - Basis. Terminologie. Navigeren door een Venster
4. 4. Inhoud rste BAC Toegepaste Biologische Wetenschappen Hoofdstuk 4 Databank Terminologie, Navigeren, Importeren Tabellen Records/Velden manipuleren Queries (Vragen) [Ook in SQL] sorteren filter volgens
Hoofdstuk 6. PHP Data Objects. Cursus PHP & MySQL Groep D
Hoofdstuk 6 PHP Data Objects Cursus PHP & MySQL Groep D Hoofdstuk 1: PHP Data Objects 1.1 Inleiding Tegenwoordig kun je er bij het ontwikkelen van een website bijna niet meer omheen: het gebruik van een
Puzzelen met SQL DEV. Crash SQL Investigation
Puzzelen met SQL Crash SQL Investigation Deze puzzel is gebaseerd op het verhaal van Carel-Jan Engel tijdens een AMIS Query over High Availability. Hij vertelde hoe hij actief was bij het vliegveld van
Inhoud. Voorwoord 1 Belangrijkste kenmerken van dit boek 1 De opzet van dit boek 1 Over de auteurs 2 Woord van dank 2
v Voorwoord 1 Belangrijkste kenmerken van dit boek 1 De opzet van dit boek 1 Over de auteurs 2 Woord van dank 2 1 Introductie: data en informatie 3 1.0 Wat leer je in dit hoofdstuk? 3 1.1 Verschil tussen
12. Meer dan één tabel gebruiken en sub-queries
12. Meer dan één tabel gebruiken en sub-queries 12.1. Inleiding In de vorige hoofdstukken heb je telkens queries uitgevoerd op één tabel. In de praktijk is het raadplegen van gegevens over het algemeen
Les 11 : Basis SQL (deel2).
Les 11 : Basis SQL (deel2). Wat is SQL? SQL gaan we gebruiken voor het raadplegen van de database. We gaan gegevens invoegen in de database, selecteren, aanpassen en verwijderen van de database. Om dit
Puzzelen met SQL 38. De Muzieklijst, deel 2 PUZZELEN MET SQL
2 3 4 10 2 14 15 18 21 PUZZELEN MET SQL 3 26 27 1 32 33 33 36 Puzzelen met SQL 38 0 41 5 46 47 De Muzieklijst, deel 2 intro In het vorige nummer is een start gemaakt met het bijhouden van een muzieklijst,
Zelftest SQL Workshop
Zelftest SQL Workshop Document: n0087test.fm 04/01/2018 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST SQL WORKSHOP Handleiding Deze test
De plug-in is heel eenvoudig te installeren met een setup-programma. Waarna je een aantal menu opties in het tools menu er bij krijgt.
Plsqldoc Genereer je documentatie Beeklaan 444 2562 BK Den Haag www.darwin-it.nl [email protected] KvK 27283780 ING 65.35.40.663 Technical Architect Net als (vrijwel) elke ontwikkelaar vind ik het documenteren
Autorisatiepolicy s in een datawarehouse
utorisatiepolicy s in een datawarehouse Oracle VPD en Oracle Label Security Bij het opzetten van een datawarehouse speelt autorisatieproblematiek vaak een belangrijke rol. De data moeten voor management-gebruik
Automatische Installatie op IIS server
Automatische Installatie op IIS server In de map Web staat het installatiebestand : Je kan de install starten door het aanklikken van het msi bestand vanuit Verkenner. Na installatie is steeds een manuele
Zelftest SQL Workshop
Zelftest SQL Workshop Document: n0087test.fm 25/06/2014 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST SQL WORKSHOP Handleiding Deze test
EMBEDDED SQL. Inleiding. Queries en update-opdrachten. Embedden en hostvariabelen
Inleiding In het boek Databases & SQL wordt beschreven hoe opdrachten in de programmeertaal SQL gebruikt worden om de inhoud van een relationele database te raadplegen en te bewerken. SQL wordt daarbij
Object Oriented Programming
Object Oriented Programming voor webapplicaties Door Edwin Vlieg Waarom OOP? Basis uitleg over OOP Design Patterns ActiveRecord Model View Controller Extra informatie Vragen OOP Object Oriented Programming
Leerboek Oracle PL/SQL
Leerboek Oracle PL/SQL gilbert rattink Derde druk Leerboek Oracle PL/SQL Derde druk Gilbert Rattink Meer informatie over deze en andere uitgaven kunt u verkrijgen bij: Sdu Klantenservice Postbus 20014
Introductie (relationele) databases
Eerste les Introductie (relationele) databases Database en DBMS Een verzameling van gestructureerd opgeslagen gegevens Dus ook een kaartenbak is een database Van oudsher waren er hiërarchische en netwerkdatabases
Hoe bouw ik een component? Drs. Arjan Burger
Hoe bouw ik een component? Drs. Arjan Burger Zelf bouwen in Joomla! Veel standaard componenten aanwezig Zelf bouwen: meer mogelijkheden Maatwerk (redelijke tot grondige) PHP kennis vereist Meeliften op
Toelichting Validatieregels DBC GGZ RG12
Toelichting Validatieregels DBC GGZ RG12 Versie 20111201 Ingangsdatum: 1 januari 2012 Inhoudsopgave 1 Inleiding...3 2 Algemene gegevens van de tabel...4 3 Specificatie van de validatieregels...6 4 De validatieregels...8
Oracle-database creëren
Datum: maart 2014 Versie: 3.1 2014 Perceptive Software. Alle rechten voorbehouden. Perceptive Software is een gedeponeerd handelsmerk van Lexmark International Technology S.A. in de VS en andere landen.
Guido Geurts Mark Bernaerts
Inhoud. OPVRAGEN VAN GEGEVENS UIT DE DATABANK...6 BASIS SQL QUERY BLOK...7 Syntax SELECT - statement:...7 Selectie van alle kolommen uit een tabel...8 Selecteren van bepaalde kolommen...8 Bewerkingen uitvoeren
oefeningen TOP2000 antwoorden
oefeningen TOP2000 antwoorden vragen niveau 1 Niveau 1 beslaat de volgende onderwerpen: SELECT, FROM, WHERE, DISTINCT, ORDER BY, LIKE, BETWEEN, IN, wildcards, eenvoudige vergelijkingen, eenvoudige logische
F. TRUYEN - Informatiekunde QBE. MS Access
F. TRUYEN - Informatiekunde QBE MS Access Maak queries via Design View Voeg de tabellen toe die je wil bevragen Selecteer de gewenste kolommen Bekijk resultaat met View knop Bekijk SQL code SQL venster
Oracle Database Vault
Oracle Database Vault beperken van toegang tot bedrijfskritische en privacy-gevoelige data Spreker(s) : Datum : E-mail : Ruud de Gunst 15 september 2015 [email protected] WWW.TRANSFER-SOLUTIONS.COM
Wiki on Wheels. -Wikipedia on your personal SQL server. Door Anton Kirschhock
Wiki on Wheels -Wikipedia on your personal SQL server Door Anton Kirschhock Inhoudsopgave 1 Wiki on Wheels... 3 1.1 Dit document... 3 1.2 De analyse van de Api... 3 2 De code (C#)... 3 2.1 C#... 3 2.2
Computerclub Volwassenen, Jeugd en Informatica vzw www.vji.be
Voorbeelden en oefeningen SQL 1 Computerclub Volwassenen, Jeugd en Informatica vzw www.vji.be Voorbeelden en oefeningen bij demo SQL Voorbeelden en oefeningen Stefan Cruysberghs www.scip.be Februari 2003
Uitwerkingen derde deeltentamen Gameprogrammeren Vrijdag 6 november 2015, uur
Uitwerkingen derde deeltentamen Gameprogrammeren Vrijdag 6 november 2015, 11.00-13.00 uur 1. Deze opgave bestaat uit een aantal deelvragen. Houd het antwoord kort: één of twee zinnen per onderdeel kan
Groepswerk Technieken voor Datamodellering
Groepswerk Technieken voor Datamodellering Verbinnen M. & Vanhuysse R. 2013-2014 Overzicht project management Logboek 2/4/14 team gevormd, onderwerp vastgelegd; 7/4/14 Inzending definitiestudie; 23/4/14
Bibliotheek in ProcessMaker
Bibliotheek in ProcessMaker Gevraagd wordt voor een bibliotheek een informatiesysteem te ontwerpen. De bibliotheek heeft een aantal bibliothecarissen die de verzameling beheren, en leden die deze boeken
Inleiding... 3. 1 Databases en Data Base Management Systems... 3. 2 Tabellen... 3. 3 Wat is SQL?... 5
1 Inhoudsopgave. Inleiding.... 3 1 Databases en Data Base Management Systems.... 3 2 Tabellen.... 3 3 Wat is SQL?... 5 4 Gegevens opvragen (deel 1).... 5 4.1 Boolean operatoren.... 7 4.2 IN en BETWEEN
Wijzigingen Universe OSIRIS Manager versie 5.12.1/01 mei 2012
Inleiding Dit document beschrijft de wijzigingen in de Universe osman release 5.12.1/01 in vergelijking met release 5.11.2/01. Een aantal wijzigingen heeft betrekking op melding 21550 van TUD en melding
DATAMODEL SQL. Middelbare School. Versie 1.0 Datum 30 oktober 2010 Auteur Mark Nuyens, studentnummer: 500625333 Groep TDI 1
DATAMODEL SQL Middelbare School Versie 1.0 Datum 30 oktober 2010 Auteur Mark Nuyens, studentnummer: 500625333 Groep TDI 1 INHOUDSOPGAVE 1. Informatiedomein 3 1.1 Informatiedomein 3 1.2 Toepassingen 3 2.
Structured Query Language (SQL)
Structured Query Language (SQL) Huub de Beer Eindhoven, 4 juni 2011 Database: in essentie 0 of meer tabellen elke tabel nul of meer kolommen (of velden) elke tabel nul of meer unieke rijen elke query werkt
II. ZELFGEDEFINIEERDE FUNCTIES
II. ZELFGEDEFINIEERDE FUNCTIES In Excel bestaat reeds een uitgebreide reeks van functies zoals SOM, GEMIDDELDE, AFRONDEN, NU enz. Het is de bedoeling om functies aan deze lijst toe te voegen door in Visual
Inleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord November 19, 2018 Overzicht Grafische programma s en tekstgebaseerde programma s Stijladviezen (Jeff Knupp, Writing Idiomatic Python) File Processing (Zelle 5.9.2)
Het SQL Leerboek zevende editie Antwoorden op Opgaven
Het SQL Leerboek zevende editie Antwoorden op Opgaven Auteur: Rick F. van der Lans Versie: 1.0 Datum: Februari 2012 2 Het SQL Leerboek Antwoorden op opgaven Februari 2012 Alle rechten voorbehouden. Alle
Oracle database voor gebruik met BPMone creëren
Oracle database voor gebruik met BPMone creëren 2012 Perceptive Software Datum: 10/31/2012 Versie: 2.8 BPMone is a trademark of Lexmark International Technology SA, registered in the U.S. and other countries.
Zorg ervoor dat je een database hebt aangevraagd op http://stap.iam.hva.nl Open daarna het volgende adres in je browser:
WERKGROEP 1 OEFENINGEN Zorg ervoor dat je een database hebt aangevraagd op http://stap.iam.hva.nl Open daarna het volgende adres in je browser: http://stap.iam.hva.nl/phpmyadmin Log in met de gegevens
Pazaak PROJECTWERK. Opleidingsonderdeel Projecten Workshops I. Faculteit Bedrijf en Organisatie Valentin Vaerwyckweg GENT
Faculteit Bedrijf en Organisatie Valentin Vaerwyckweg 1 9000 GENT ACADEMIEJAAR 2016-2017 OPLEIDING TOEGEPASTE INFORMATICA PROJECTWERK Opleidingsonderdeel Projecten Workshops I Pazaak GROEP: 13 STUDENTEN:
EXPLORING DB2. OPEN CURSOR Deze maal hebben we voor u een themanummer samengesteld
ABIS NIEUWSBRIEF VOOR DB2 PROFESSIONALS JAARGANG 7 - NUMMER 3, OKTOBER 2011 EXPLORING DB2 OPEN CURSOR Deze maal hebben we voor u een themanummer samengesteld over SQL PL, de SQLcomponent die u toelaat
6. Het maken van een database
6. Het maken van een database 6.1. Inleiding In hoofdstuk 5 heb je de oefendatabase gemaakt doormiddel van een script. In dit hoofdstuk ga je zelf een database maken en deze vullen met tabellen. Hiervoor
SQL & Datamodelleren
SQL & Datamodelleren HVA-CMD-V1-datamodelleren Algemene handleiding bij het lesprogramma 2012-2013 Inhoud Inhoud... 2 Inleiding... 3 Leerdoelen:... 3 Plaats in het leerplan:... 3 Werkwijze:... 3 Lesstof:...
Dynamische gebruikersbeslissingen in SAP Workflow
Dynamische gebruikersbeslissingen in SAP Workflow Inleiding Een gebruikersbeslissing in een SAP Workflow definitie biedt de mogelijkheid om een optiescherm aan de gebruiker aan te bieden. Hiermee kan de
Programmeren (1) Examen NAAM:
Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien) en geef zowel klad als net af. Bij heel wat vragen moet je zelf Java-code schrijven. Hou dit kort en bondig. Je hoeft
Technical Note. API Beschrijving Aangetekend Mailen
AUTHOR APPROVED Technical Note API Beschrijving Referentie: API beschrijving AM Versie: 0.0.7 Datum: 2015-07-24 Aangetekend Bellen B.V. Computerweg 5 Postbus 8307 3503 RH Utrecht T: +31 346 581 731 [email protected]
VBA voor Doe het Zelvers Deel 7
VBA voor Doe het Zelvers Deel 7 Handleiding van Auteur: leofact Juni 2014 Vorige aflevering In de vorige aflevering hebben we een timer gecreëerd met gebruik van de OnTime methode. Er werd ook een methode
Programmeermethoden NA. Week 5: Functies (vervolg)
Programmeermethoden NA Week 5: Functies (vervolg) Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Functies Vorige week bekeken we functies: def
Integriteitsbewaking bij een relationele database
Integriteitsbewaking bij een relationele database Bij het ontwikkelen van een informatiesysteem voor een organisatie moet er koste wat koste voor gezorgd worden, dat er geen tegenstrijdige gegevens in
Javascript oefenblad 1
Leer de basis van Javascript. Javascript oefenblad 1 Niels van Velzen Javascript oefenblad 1 Pagina 2 Inleiding Javascript is niet altijd even makkelijk. Vooral aan het begin is het even wennen hoe de
Les 2 Eenvoudige queries
Les 2 Eenvoudige queries XAMP Apache server ( http ) mysql server PHP myadmin IAM SQL oefeningen Database phpmyadmin Import : sql_producten.sql, sql_winkel.sql, sql_festival.sql SAMS SQL in 10 minuten
Methode: Verdeel en heers
Programmeren Blok B Thema: Complexiteit beteugelen http://www.win.tue.nl/ wstomv/edu/ip05/ College Tom Verhoeff Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica Software Engineering
FileMaker 13. Naslaggegevens voor SQL
FileMaker 13 Naslaggegevens voor SQL 2013 FileMaker, Inc. Alle rechten voorbehouden. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054, VS FileMaker en Bento zijn handelsmerken van
Inhoud. Pagina 2 van 13
Code Conventie Inhoud PHP algemeen... 3 Namen van variabelen... 3 Enkele of dubbele aanhalingstekens... 3 Globale variabelen... 3 Namen van functies... 3 Argumenten van functies... 3 Formattering... 4
EXIN Databases en SQL Foundation
EXIN Databases en SQL Foundation Preparation Guide Editie 201608 Copyright 2016 EXIN All rights reserved. No part of this publication may be published, reproduced, copied or stored in a data processing
Programmeren. Cursus Python
Programmeren Cursus Python Cursus Python Omschrijving In deze cursus leren de deelnemers te programmeren in de objectgeoriënteerde programmeertaal Python. Python is een taal die vaak wordt gebruikt voor
