Oracle PL / SQL:在FUNCTION调用中使用FOR LOOP变量时出错

时间:2017-04-03 19:45:23

标签: oracle plsql

有没有办法在FUNCTION调用中使用FOR LOOP变量。例如,我有一个返回字符串的简单函数。我从一个过程调用该函数,并传递两个参数,其中一个参数是来自FOR LOOP的变量:

toolbar

我收到错误:必须声明组件'ID'。我还尝试将FOR LOOP值添加到局部变量,但得到相同的结果。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

如果它对某人有帮助,IOT解决了我必须删除围绕id As "id"的双引号的问题。

答案 1 :(得分:0)

为什么不使用集合,而不是使用正则表达式来解析分隔列表:

create or replace package body TEST_JNS is
  FUNCTION f_display_msg(var IN VARCHAR2,
                         num IN NUMBER)
  RETURN VARCHAR2 IS
  BEGIN
    RETURN num || '#: ' || var || ' world';
  END f_display_msg;

  PROCEDURE main
  AS
    TYPE numberlist IS TABLE OF INTEGER;
    l_name VARCHAR2(100) := 'hello';
    v_list numberlist    := numberlist( 1, 2, 3 );
  BEGIN
    l_name := 'hello';
    FOR i IN 1 .. v_list.COUNT LOOP
      dbms_output.put_line( f_display_msg( l_name, v_list(i) ));
    END LOOP;
  END main;
end TEST_JNS;