Ik ben aan het werk in Oracle 10 en probeer het volgende probleem op te lossen:
Ik geef aan een stored procedure een comma-separated list van IDs mee (bijvoorbeeld '1,5,4,3') en maak met behulp van dynamisch een select statement die zoiets doet als:
Dit werkt, alleen geeft Oracle de restultaten terug als 1,3,4,5 ipv wat ik meegeef, dus 1,5,4,3.
Een standaard 'simpele' order by werkt natuurlijk ook niet.
Ik heb op het internet exact hetzelfde probleem gevonden met een oplossing, maar dat is alleen in mysql: http://artur.hefczyc.net/node/3
In Oracle werkt dat helaas niet
.
Een oplossing (denk ik) is om een global temporary table te gebruiken waarin ik de IDs in plaats met bijvoorbeeld een 2e kolom waarin een volgnummer zit. Dan een join te doen met de tabel waaruit ik meer data wil halen en dan order by het volgnummer, maar is er ook een eenvoudigere oplossing zoals die bij mysql?
Ik heb wel gezocht op google naar dingen als 'oracle advanced order by', etc, maar of ik kijk er overheen of ik gebruik de verkeerde woorden, want ik kan het niet vinden. Iemand die hier ervaring mee heeft?
Ik geef aan een stored procedure een comma-separated list van IDs mee (bijvoorbeeld '1,5,4,3') en maak met behulp van dynamisch een select statement die zoiets doet als:
SQL:
1
| select id, ... from tbl_test where id in (1,5,4,3) |
Dit werkt, alleen geeft Oracle de restultaten terug als 1,3,4,5 ipv wat ik meegeef, dus 1,5,4,3.
Een standaard 'simpele' order by werkt natuurlijk ook niet.
Ik heb op het internet exact hetzelfde probleem gevonden met een oplossing, maar dat is alleen in mysql: http://artur.hefczyc.net/node/3
In Oracle werkt dat helaas niet
Een oplossing (denk ik) is om een global temporary table te gebruiken waarin ik de IDs in plaats met bijvoorbeeld een 2e kolom waarin een volgnummer zit. Dan een join te doen met de tabel waaruit ik meer data wil halen en dan order by het volgnummer, maar is er ook een eenvoudigere oplossing zoals die bij mysql?
Ik heb wel gezocht op google naar dingen als 'oracle advanced order by', etc, maar of ik kijk er overheen of ik gebruik de verkeerde woorden, want ik kan het niet vinden. Iemand die hier ervaring mee heeft?