我写了一个程序来生成长度为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不客气! –