http://forums.oracle.com/forums/threadの回答から.jspa?messageID =1791550 これは機能するかもしれませんが、テストする10gがありません...
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')
例ではcol
はSQL*Plusで定義されていますが、これを関数にすると、渡すことができます。または、テーブルの列を直接取得するように作り直すこともできます。
私はそれを解決策ではなく出発点としてとらえます。元の質問はアナグラムに関するものだったので、すべての順列を見つけるように設計されているので、似ているが単純化されたものが可能かもしれません。これは大きな値ではうまくスケーリングできないと思います。