Maison > Article > base de données > 导入指定文件的数据库
欢迎进入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]