Fra et svar på http://forums.oracle.com/forums/thread .jspa?messageID=1791550 det virker måske, men du har ikke 10 g at teste på...
SELECT MIN(permutations)
FROM (SELECT REPLACE (SYS_CONNECT_BY_PATH (n, ','), ',') permutations
FROM (SELECT LEVEL l, SUBSTR ('&col', LEVEL, 1) n
FROM DUAL
CONNECT BY LEVEL <= LENGTH ('&col')) yourtable
CONNECT BY NOCYCLE l != PRIOR l)
WHERE LENGTH (permutations) = LENGTH ('&col')
I eksemplet col
er defineret i SQL*Plus, men hvis du gør dette til en funktion, kan du sende det ind, eller du kan omarbejde det til at tage en tabelkolonne direkte.
Jeg ville tage det som et udgangspunkt snarere end en løsning; det oprindelige spørgsmål handlede om anagrammer, så det er designet til at finde alle permutationer, så noget lignende, men forenklet, kan være muligt. Jeg formoder, at dette ikke skalerer særlig godt for store værdier.