Avatar billede strato Nybegynder
25. oktober 2000 - 13:22 Der er 1 kommentar og
1 løsning

Dynamisk LIKE op

Jeg ønsker at videregive et uvist antal
argumenter til en query med LIKE, f.eks.:

SELECT P.pid
FROM Publikationer P
WHERE P.name LIKE %arg1% OR P.name LIKE %arg2% AND P.name LIKE %arg3% o.s.v.
hvor antallet af args altså ikke kendes på forhånd.

Jeg har på fornemmelsen at der en standard syntaks til dette, hjælp til web-sider der kan afhjælpe problemmet eller konkrete forslag (skal kunne implementeres i Oracle) er velkomne. Det behøvs f.eks. ikke være v.h.a. LIKE, men muligvis via en anden metode...
mvh Strato :)
Avatar billede teepee Nybegynder
26. oktober 2000 - 10:32 #1
Du skal vist bruge LIKE. Du opbygger selv strengen i en varchar2() og konkatenerer bare løs. Hernæst afhænger det af versionen. DBMS_SQL pakken skal bruges ved tidligere versioner, men version 8 har en EXECUTE IMMEDIATE som kan bruges
Avatar billede strato Nybegynder
26. oktober 2000 - 13:15 #2
Jeg er ikke sikker på at jeg forstår dig ret.
Givet et tuple hvor et element f.eks. er en ordliste, emneord el.lign. Søgningen skal finde netop det tuple i tabellen hvor alle ord, hver for sig, eksisterer. Altså noget svarende til:

SELECT P.pid
FROM Publikationer P
WHERE P.name LIKE %søgeord1%
INTERSECT
SELECT P.pid
FROM Publikationer P
WHERE P.name LIKE %søgeord2%
INTERSECT o.s.v.
Balladen  er så bare at antallet af søgeord skal afgøres dynamisk...

Jeg så et hav af avancerede options til O8i deriblandt tekst baserede søgeværktøjer såsom
NEAR ...

Men tak for hjælpen so far. Jeg forsøger naturligvis selv at finde dokumentation på dit foreslag...
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