1

現在、これは私がこの関数を使用している方法です:

TYPE                       strings IS TABLE OF VARCHAR(255) INDEX BY BINARY_INTEGER;
str_columns                strings;

function parse ( prc_string   in varchar,
                prc_delim    in varchar ) return strings as

  str_record    varchar(32767) := '';
  str_field     varchar(255)   := '';
  int_length    integer        := 0;
  int_sub       integer        := 0;
  int_count     integer        := 0;

  str_fields    strings;

  begin
     str_record := trim(prc_string) || prc_delim;
     int_length := length(str_record);
     if int_length = 0 then
        int_count := -1;
        return str_fields;
     end if;

     loop
        int_sub := int_sub + 1;
        exit when int_sub > int_length;
        if substr(str_record,int_sub,1) <> prc_delim then
           str_field := str_field || substr(str_record,int_sub,1);
        else
           int_count := int_count + 1;
           str_fields(int_count) := str_field;
           str_field := '';
        end if;
     end loop;

     return str_fields;

  end;

  str_columns            :=  parse_function(inp_buffer, ',');

これを関数にして、多くのプロシージャから呼び出すことができる必要があります。コンマ区切りでテキストを解析します。SQL Navigator で Collection Type と Function を使用しようとしましたが、エラー式が間違った型であるというエラーが表示されました。

基本的に、このプロシージャはテキスト ファイルを開いて解析します。

4

0 に答える 0