PL / SQL所有可能的组合功能

时间:2015-10-30 12:35:15

标签: oracle plsql

使用PL / SQL以计算从一组n个值中选择的k个项目的组合数。我最近创建了一个使用递归来处理字符串,它似乎工作正常,但现在我想将它用于一组输入的n值而不是字符串值,并且似乎无法弄清楚如何正确调整它以使用值而不是字符串。这是我的字符串递归代码。

create or replace 
  function print_anagrams
  (pre in varchar2, str in varchar2)
   RETURN varchar2
  As
    prefix varchar2(30);
    stringg varchar2(30);
    strlen number;
  begin
    strlen := length(str);
    if NVL(strlen, 0) = 0 then
     dbms_output.put_line(pre);
    else
      for i in 1..strlen loop
        prefix := pre || SUBSTR(str,i,1);
        stringg := SUBSTR(str,1,i - 1) || SUBSTR(str,i+1,strlen);
        print_anagrams(prefix,stringg);
      end loop;
    end if;
  end;
/

1 个答案:

答案 0 :(得分:0)

您希望传入的参数是“varchar2表”。有关详细信息,请参阅此文章:http://www.oracle.com/technetwork/issue-archive/2012/12-jul/o42plsql-1653077.html。请注意,如果您愿意,也可以使用“整数表”。