0

type t_file_list is table of clob;.zip ファイル (BLOB 形式) からファイル名 ( ) のテーブルを返すテーブル関数があります。ヘッダーは次のようになります。

  function get_file_list(
    p_zipped_blob in blob
   ,p_encoding in varchar2 := null
  )
    return t_file_list
  is
  .....
  end;

function get_file_listこれらのファイル名を選択し、それぞれにいくつかの手順を呼び出す必要がありますが、正しく呼び出す方法が見つからないため、これを試します:

  for i in (select * from table(zip_util_pkg.get_file_list(ab_zipped_blob))) 
  loop
    .....
  end loop;

しかし、ORA-22905 や PLS-00642 などのエラーが発生します。私が間違っていることと、テーブル関数を正しく呼び出す方法を誰かに教えてもらえますか?

4

1 に答える 1

3

SQL を使用する必要はありません。完全に PL/SQL で実行できます。

DECLARE
  p_files ZIP_UTIL_PKG.T_FILE_LIST;
BEGIN
  p_files := zip_util_pkg.get_file_list(ab_zipped_blob);
  FOR i IN 1 .. p_files.COUNT LOOP
    some_procedure( p_files(i) );
  END LOOP;
END;
/
于 2016-02-25T20:20:43.863 に答える