欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

导入指定文件的数据库

程序员文章站 2022-06-12 17:39:37
...

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 导入指定文件的数据库 [sql] create or replace procedure IMP_DATA ( file_name in varchar2 --要导入的文件名,包含路径(如:d:\test\exp_0003.txt) ,p_user in varchar2 default SYS_CONTEXT

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入

  导入指定文件的数据库

  [sql]

  create or replace procedure IMP_DATA

  (

  file_name in varchar2 --要导入的文件名,包含路径(如:d:\test\exp_0003.txt)

  ,p_user in varchar2 default SYS_CONTEXT('USERENV', 'CURRENT_USER') --要导入的用户,缺省为当前用户

  ,p_sep in varchar2 default ',' --字段分隔符,默认为逗号(需要打开要导入的文件确认导入的字段分隔符)

  ) AS

  /*

  描述:根据EXP_DATA过程导出的数据进行导入

  created by cryking 2013.03.07

  注意:1.本存储建议由SYS账户或具有SYSDBA权限的账户执行

  2.不要在其他事务中运行本存储过程

  3. 默认导入的数据(p_user为空,或未指定)全部在当前用户下

  */

  v_file UTL_FILE.file_type;

  TYPE t_filed IS TABLE OF varchar2(200) INDEX BY BINARY_INTEGER;

  v_fileds t_filed;

  TYPE t_data IS TABLE OF varchar2(4000) INDEX BY BINARY_INTEGER;

  v_data t_data;

  v_datatype t_data;

  v_sql varchar2(30000);

  V_esql varchar2(30000);

  v_filed VARCHAR2(100) := '';

  v_filedstr VARCHAR2(4000) := '';

  V_TABLE VARCHAR2(1000);

  v_user varchar2(20);

  v_path varchar2(500);

  v_filename varchar2(50);

  v_sep varchar2(10);

  v_text varchar2(32600);

  v_textTmp varchar2(32600);

  i_flag integer:=0;

  I_TABLE INTEGER;

  exp_sep exception;

  ex_table exception;

  BEGIN

[1] [2] [3]

导入指定文件的数据库