我想将下面这条存储过程写成一个通用的形式,可以针对所有表,而不是只对于一张表.麻烦各位了.--向表中写入文本文件(针对于一张表而言)
create or replace procedure prc_insert_from_txt
is
 v_ORG_ID test_insert_txt.org_id%type;
 v_PARENT_ORG_ID test_insert_txt.parent_org_id%type;
 v_ORG_CODE test_insert_txt.org_code%type;
 v_name test_insert_txt.name%type; v_file utl_file.file_type;
 v_buffer varchar2(32767);
 j number;
 k number;
begin
 dbms_output.enable(buffer_size => null);
 v_file:=utl_file.fopen('MYFILE','GSDG_JG_DM1.TXT','r');
 loop
 utl_file.get_line(v_file,v_buffer);
 exit when (instr(v_buffer,',',1)=0);
  j:=instr(v_buffer,',',1,1);
  v_ORG_ID:=to_number(ltrim(substr(v_buffer,1,j-1)));  k:=j+1;
  j:=instr(v_buffer,',',1,2);
  v_PARENT_ORG_ID:=to_number(ltrim(substr(v_buffer,k,j-k)));  k:=j+1;
  j:=instr(v_buffer,',',1,3);
  v_ORG_CODE:=ltrim(substr(v_buffer,k,j-k));  k:=j+1;
  j:=instr(v_buffer,',',1,4);
  v_name:=ltrim(substr(v_buffer,k,j-k));   insert into test_insert_txt (org_id,parent_org_id,org_code,name)
      values(v_ORG_ID,v_PARENT_ORG_ID,v_ORG_CODE,v_name);
 end loop;
 UTL_FILE.FCLOSE(V_FILE);
 commit;
EXCEPTION
  WHEN NO_DATA_FOUND THEN
    UTL_FILE.FCLOSE(v_file);
    dbms_output.put_line('no data found!');
  COMMIT;
  WHEN   OTHERS   THEN
    dbms_output.put_line('other cause!');
end prc_insert_from_txt;