首先,我连接到SYS并执行以下操作
1.创建一个目录,您的文件将被上传
CREATE OR REPLACE DIRECTORY FILE_DIRR AS 'C:\EXCEL_FILES2';
1.授予数据库用户读、写权限
GRANT READ, WRITE ON DIRECTORY FILE_DIRR TO HRM;
在窗体中编写的代码是:
declare
file utl_file.file_type;
str varchar2(500);
v_item_id number;
v_item_name varchar2(500);
p_dir varchar2(500) := 'FILE_DIRR';
p_file_name varchar2(500) := 'item_Sheet.xlsx';
p_file_name varchar2(500) := 'item_Sheet.csv';
begin
file := utl_file.fopen(p_dir, p_file_name, 'r');
for i in 1 .. 1 loop
utl_file.get_line(fp, str);
end loop;
loop
begin
utl_file.get_line(file, str);
v_item_id := substr(str, 1, instr(str, ',') - 1);
str := substr(str, instr(str, ',') + 1);
v_item_name := str;
begin
insert into items (item_id,item_name) values (v_item_id,v_item_name);
commit;
end;
exception when no_data_found then
exit;
end;
end loop;
utl_file.fclose(fp);
end;
我期望此代码能够成功运行
1条答案
按热度按时间webghufk1#
在Oracle中创建目录对象的sintax为:
在您的案例中:
FILE_DIRR是目录对象名称,路径是“C:\EXCEL_FILES2”。错误消息提示路径不存在。为此,您需要访问文件系统并定义现有文件夹的正确路径。希望您没有想到该命令会在文件系统中创建一个新目录。