COMMA_TO_TABLE 过程 - 将用逗号定界的名称列表转换为名称表

COMMA_TO_TABLE 过程 - 将用逗号定界的名称列表转换为名称数组。列表中的每个条目都将成为数组中的一个元素。

注: 这些名称必须格式化为有效标识。

语法

阅读语法图跳过直观语法图DBMS_UTILITY.COMMA_TO_TABLE_LNAME (list,tablen, tab)
阅读语法图跳过直观语法图DBMS_UTILITY.COMMA_TO_TABLE_UNCL (list,tablen, tab)

参数

列表
类型为 VARCHAR(32672) 的输入自变量,用于指定用逗号定界的名称列表。
tablen
类型为 INTEGER 的输出自变量,用于指定 tab 中的条目数。
tab
类型为 LNAME_ARRAY 或 UNCL_ARRAY 的输出自变量,其中包含 list 中的各个名称的表。请参阅 LNAME_ARRAYUNCL_ARRAY 以获取 tab 的描述。

权限

对 DBMS_UTILITY 模块的 EXECUTE 特权。

示例

示例 1:以下过程使用 COMMA_TO_TABLE_LNAME 过程将名称列表转换为表。然后会显示表的条目。
SET SERVEROUTPUT ON@

CREATE OR REPLACE PROCEDURE comma_to_table(
  IN p_list VARCHAR(4096))
BEGIN
  DECLARE r_lname DBMS_UTILITY.LNAME_ARRAY;
  DECLARE v_length INTEGER;
  CALL DBMS_UTILITY.COMMA_TO_TABLE_LNAME(p_list, v_length, r_lname);
  BEGIN
    DECLARE i INTEGER DEFAULT 1;
    DECLARE loop_limit INTEGER;

    SET loop_limit = v_length;
    WHILE i <= loop_limit DO
      CALL DBMS_OUTPUT.PUT_LINE(r_lname[i]);
      SET i = i + 1;
    END WHILE;
  END;
END@

CALL comma_to_table('sample_schema.dept,sample_schema.emp,sample_schema.jobhist')@
此示例生成以下输出:
SET SERVEROUTPUT ON
DB20000I  The SET SERVEROUTPUT command completed successfully.

CREATE OR REPLACE PROCEDURE comma_to_table(
  IN p_list VARCHAR(4096))
BEGIN
  DECLARE r_lname DBMS_UTILITY.LNAME_ARRAY;
  DECLARE v_length INTEGER;
  CALL DBMS_UTILITY.COMMA_TO_TABLE_LNAME(p_list, v_length, r_lname);
  BEGIN
    DECLARE i INTEGER DEFAULT 1;
    DECLARE loop_limit INTEGER;

    SET loop_limit = v_length;
    WHILE i <= loop_limit DO
      CALL DBMS_OUTPUT.PUT_LINE(r_lname[i]);
      SET i = i + 1;
    END WHILE;
  END;
END
DB20000I  The SQL command completed successfully.

CALL comma_to_table('sample_schema.dept,sample_schema.emp,sample_schema.jobhist')

  Return Status = 0

sample_schema.dept
sample_schema.emp
sample_schema.jobhist