COMMA_TO_TABLE プロシージャー - 名前のコンマ区切りリストから名前の表への変換

COMMA_TO_TABLE プロシージャーは、名前のコンマ区切りリストを名前の配列に変換します。 リスト内の各項目は、配列の要素になります。

注: 名前は、有効な ID としてフォーマット設定されている必要があります。

構文

構文図を読む構文図をスキップするDBMS_UTILITY.COMMA_TO_TABLE_LNAME (list,tablen, tab)
構文図を読む構文図をスキップするDBMS_UTILITY.COMMA_TO_TABLE_UNCL (list,tablen, tab)

パラメーター

list
名前のコンマ区切りリストを指定する、タイプ VARCHAR(32672) の入力引数。
tablen
tab 内の項目数を指定する、タイプ INTEGER の出力引数。
tab
list 内に個々の名前の表が入る、タイプ LNAME_ARRAY または UNCL_ARRAY の出力引数。 tab の説明については、LNAME_ARRAY または UNCL_ARRAY を参照してください。

許可

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