À partir d'une réponse sur http://forums.oracle.com/forums/thread .jspa?messageID=1791550 cela pourrait fonctionner, mais je n'ai pas 10g pour tester...
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')
Dans l'exemple col
est défini dans SQL*Plus, mais si vous en faites une fonction, vous pouvez la transmettre ou la retravailler pour prendre directement une colonne de table, je suppose.
Je prendrais cela comme un point de départ plutôt qu'une solution; la question initiale concernait les anagrammes, elle est donc conçue pour trouver toutes les permutations, donc quelque chose de similaire mais simplifié pourrait être possible. Je soupçonne que cela ne s'adapte pas très bien aux grandes valeurs.