[PLSQL] plsqltabel combineren met recordvariabele

Pagina: 1
Acties:

  • ErikRo
  • Registratie: Juni 2001
  • Laatst online: 26-08 18:02
Onderstaande gedeelte werkt prima, maar blijf het onoverzichtelijk vinden. Namelijk eerst een recordvariabele declareren, dan een plsqltabel declareren en daar dan recordvariabele instoppen.
1. Bestaat een plsql tabel altijd uit max. 2 velden (index+veld)?
2. Is het toch mogelijk meerdere velden (index+naam+functie+maandsal+cumsal)in een plsqltabel te krijgen met maar één declaratie via:
TYPE type_tab_medrec IS TABLE OF type_rec_med INDEX BY binary_integer;.


------------------------------------------------------------

DECLARE
CURSOR c_med IS SELECT naam,functie,maandsal FROM medewerkers ORDER by naam;
TYPE type_rec_med IS RECORD
(
naam medewerkers.naam%type,
functie medewerkers.functie%type,
maandsal medewerkers.maandsal%type,
cumsal number
);
TYPE type_tab_medrec IS TABLE OF type_rec_med INDEX BY binary_integer;
t_med type_tab_medrec;
v_cumsal number := 0;
v_teller number := 0;
BEGIN
dbms_output.put_line('dit is even als opvulling');
END;

"I don't have any solution but I certainly admire the problem." -- Ashleigh Brilliant


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Je kunt ipv. de losse declaratie van het record type ook het rowtype van de cursor gebruiken.

Who is John Galt?


  • ErikRo
  • Registratie: Juni 2001
  • Laatst online: 26-08 18:02
volgens mij niet want veld cumsal zit niet in de cursor.

"I don't have any solution but I certainly admire the problem." -- Ashleigh Brilliant


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Dan zet je toch ',0 cumsal' in de select van de cursor erbij.

Who is John Galt?


  • ErikRo
  • Registratie: Juni 2001
  • Laatst online: 26-08 18:02
Ik kan natuurlijk er altijd eens mee experimenteren :)
maar als ik het goed begrijp wordt blijkbaar een veld aangemaakt met als default o erin?

"I don't have any solution but I certainly admire the problem." -- Ashleigh Brilliant


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

ErikRo schreef op 21 augustus 2002 @ 17:38:
Ik kan natuurlijk er altijd eens mee experimenteren :)
maar als ik het goed begrijp wordt blijkbaar een veld aangemaakt met als default o erin?
Ja, in de resultaatset van de cursor, voer anders de query eens uit in SQL*Plus met de toevoeging, dan zie je het.
In principe kun je ook een nieuw type aanmaken waar het rowtype van de cursor in zit en daar velden aan toevoegen, maar dat maakt het niet simpeler.

Who is John Galt?


  • ErikRo
  • Registratie: Juni 2001
  • Laatst online: 26-08 18:02
Bedankt, het is gelukt. Ik moest natuurlijk nog wel wat aanpassingen doen in de body. om eea werkend te krijgen maar het wel gelukt en ik ben weer een stuk wijzer geworden :)

"I don't have any solution but I certainly admire the problem." -- Ashleigh Brilliant

Pagina: 1