我寫了一個程序來生成長度爲2的字符串的所有可能的組合。程序如下:在oracle中生成一定長度的字符串的所有可能組合
CREATE OR REPLACE PROCEDURE string_combinations
AS
vblString1 VARCHAR2(100);
vblString2 VARCHAR2(100);
vblChr1 NUMBER;
vblChr2 NUMBER;
BEGIN
vblChr1 := 65;
LOOP
SELECT Chr(vblChr1) INTO vblString1 FROM dual;
vblChr2 := 65;
LOOP
vblString2 := vblString1||Chr(vblChr2);
Dbms_Output.put_line(vblString2);
vblChr2:=vblChr2+1;
EXIT WHEN vblChr2=91;
END LOOP;
vblChr1:=vblChr1+1;
EXIT WHEN vblChr1=91;
END LOOP;
END;
/
我已經在另一個循環內使用循環。所以,如果我必須生成長度爲三的字符串,我可以簡單地使用另一個循環。但是如果我想要生成長度爲5,6,7或更長的字符串,那將會很長。我如何使用遞歸來實現它? 我正在使用oracle。
多麼美麗的解決方案。感謝您的快速回復。節省了很多時間。 – hsuyaa
@hsuyaa不客氣! –