Avatar billede alsted Nybegynder
11. januar 2002 - 16:02 Der er 1 kommentar og
1 løsning

Reference til tabeller i pl/SQL

Jeg skal hente nogle oplysninger ud fra nogle på forhånd ukendte tabeller ud fra Nogle oplysning i en anden tabel. I Cursoren nedenfor hentes dels den tabel, jeg skal se i, og dels kolonnen i den tabel, som jeg skal søge på i WHERE clausen. Problemet er, at jeg ikke ved, hvordan jeg referer til Tabelnavn og kolonne i det efterfølgene SELECT statement. Nedenstående giver i hvert fald fejl:

PLS-00201: identifikatoren \'R1.TABNAME\' skal erklæres

Program:
CURSOR c1
IS
  SELECT TabName, ColName
    FROM RefTable
  WHERE Col = Something;
BEGIN
  FOR r1 IN c1
  LOOP
    SELECT COUNT(1) INTO Antal
      FROM r1.TabName
    WHERE r1.ColName = \'ID\';
  END LOOP;
END
Avatar billede teepee Nybegynder
11. januar 2002 - 16:28 #1
prøv ...

execute immediate \'SELECT COUNT(1) FROM \' || r1.TabName  || \' WHERE \' || r1.ColName \' || \' = \'\'ID\'\'\' INTO Antal
Avatar billede pgroen Nybegynder
11. januar 2002 - 16:34 #2
EXECUTE IMMEDIATE kræver dog at du kører 8i;
ellers skal du til at rode med DBMS_SQL-pakken...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester