[PL/SQL] cursors en 2 tabellen

Pagina: 1
Acties:

  • Vinzzz243
  • Registratie: Februari 2001
  • Laatst online: 22-01-2025
Ik heb de volgende code, wat ik wil weten is, hoe ik de code moet veranderen, zodat ik 2 dezelfde kolomnamen (uit 2 verschillende tabellen) tóch kan aanroepen.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
DECLARE
  cursor c_med is
    select lof.mnr, lof.begindatum, lof.einddatum, med.naam, med.mnr
    from medewerkers med, verlof lof
    where lof.begindatum = '10-04-1996'
      and lof.mnr = med.mnr;   
BEGIN
  for r_med in c_med loop
  dbms_output.put_line(r_med.med.mnr || ' ' || r_med.naam || ' ' ||
 r_med.begindatum || ' ' || r_med.einddatum);
  end loop; 
END;
/


Ik was iets aant zoeken, dus heb ik hier even bij de output regel ipv r_med.mnr iets anders gezet. Ik krijg nu namelijk de melding dat ik in de select regel aliassen moet aanbrengen om dubbele kolomnamen te voorkomen. Is het gewoon weg niet te doen? want de naam van de kolom blijft altijd hetzelfde...

  • ErikRo
  • Registratie: Juni 2001
  • Laatst online: 26-08 18:02
Je gebruikt 2 x medewerkersnummer dus volgens mij bevat de select dan c_med.mnr (uit lof) en je wilt nog een c_med.mnr (uit med) er aan toevoegen maw 2 x c_med.mnr en dat gaat niet :)
Even uit mijn hoofd "med.mnr as lmnr"
Maar waarom zou je dat willen? die nummers zijn volgens jouw select altijd allebei hetzelfde.

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


  • Vinzzz243
  • Registratie: Februari 2001
  • Laatst online: 22-01-2025
ja maar stel dat ik
code:
1
and lof.mnr = med.mnr
weghaal. De vraag is of het mogelijk is om 2 kolommen met dezelfde naam uit verschillende tabellen, weer te geven met 2 variabelen. Ik DENK dat het niet gaat....vroeg het me gewoon af.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

select tabel.kolom as alias, tabel2.kolom as alias2

kweet niet of dat in pl/sql werkt, vast wel...

  • ErikRo
  • Registratie: Juni 2001
  • Laatst online: 26-08 18:02
Vinzzz schreef op 06 oktober 2002 @ 18:19:
ja maar stel dat ik
code:
1
and lof.mnr = med.mnr
weghaal. De vraag is of het mogelijk is om 2 kolommen met dezelfde naam uit verschillende tabellen, weer te geven met 2 variabelen. Ik DENK dat het niet gaat....vroeg het me gewoon af.
Ik begrijp er geen reet van. Vertel nou eens wat je precies wilt zien :) dan vertellen wij wel of het kan.

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


  • Vinzzz243
  • Registratie: Februari 2001
  • Laatst online: 22-01-2025
ErikRo schreef op 06 oktober 2002 @ 18:40:
[...]

Ik begrijp er geen reet van. Vertel nou eens wat je precies wilt zien :) dan vertellen wij wel of het kan.
ok, stel je hebt tabel winnaar en tabel verliezer.
Beide tabellen bevatten spelersnr's. nu wil ik via een cursor en een loopje (net zoals bij mij hierboven) de tekst: winnaarnr: 54 en verliezernr: 23 zien
Let op: beide tabellen hebben als kolomnaam spelersnr

hoop dat het zo duidelijk is...maareh, waarom snappen de anderen het wel ;)

  • Vinzzz243
  • Registratie: Februari 2001
  • Laatst online: 22-01-2025
ACM schreef op 06 oktober 2002 @ 18:26:
select tabel.kolom as alias, tabel2.kolom as alias2

kweet niet of dat in pl/sql werkt, vast wel...
en hoe roep ik die recordvariabele dan aan...
dat gaat nu met r_med.mnr

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Ga alsjeblieft wat lezen over aliassing van kolomnamen.
Bekijk zo'n query dan es los in een of andere tool die dat kan tonen en ga dan zelf er es over nadenken.

WELLICHT dat het r_med.alias is, maar dat is slechts speculatie die je echt absoluut zelf niet had kunnen bedenken, of wel???

  • ErikRo
  • Registratie: Juni 2001
  • Laatst online: 26-08 18:02
Vinzzz schreef op 06 oktober 2002 @ 22:21:
[...]


ok, stel je hebt tabel winnaar en tabel verliezer.
Beide tabellen bevatten spelersnr's. nu wil ik via een cursor en een loopje (net zoals bij mij hierboven) de tekst: winnaarnr: 54 en verliezernr: 23 zien
Let op: beide tabellen hebben als kolomnaam spelersnr

hoop dat het zo duidelijk is...maareh, waarom snappen de anderen het wel ;)
Anderen? Er heeft verder maar één iemand gereageerd.
De rest begreep je vraag niet ;)
Maar goed om op je vraag terug te komen, ja dat kan.

"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

Vinzzz schreef op 06 oktober 2002 @ 17:25:
code:
1
where lof.begindatum = '10-04-1996'
Gratis advies: leer dit alsjeblieft heel snel af.
Linkerkant van de vergelijking waarschijnlijk een date, rechterkant een char.

Resultaat na automatische conversie is:
code:
1
where to_char(lof.begindatum) = '10-04-1996'


Consequenties:
- NLS_DATE_FORMAT of enige afhankelijke environment setting wijzigen en je code werkt niet meer.
- elke index op je datumveld kan niet gebruikt worden.

Who is John Galt?

Pagina: 1