如何使用PLSQL打开,读取XLSX文件的内容并将其存储到DB?

时间:2018-09-04 08:27:23

标签: plsql oracle11g plsql-package

我正在尝试使用PLSQL将.xlsx文件中的内容打开,解析并保存到数据库。这可能吗 ?我将文件保存在服务器上,为该路径创建了对象,并为用户授予了权限rw。我应该使用PLSQL从XLSX转换为CSV吗?这可能还是有其他方法来处理XLSX文件?

到目前为止,我尝试的是this,但出现异常

  

ORA-22288:文件或LOB操作FILEOPEN失败

试图对我的对象授予权限,但仍然无法正常工作。

1 个答案:

答案 0 :(得分:2)

假设您只想手动上传少量电子表格(而不是要求定期或大量自动上传),那么将excel文件中的行插入数据库的最简单方法是在表格中添加一列作为SQL插入语句。

例如:

如果excel工作表的列ABC中有数据以及标题行:

ROWS A        B       C
1    id       value1  value2
2    1          23.0  Smith
3    2          42.7  O'Brien
4    3          59.6  Jones

然后在单元格D2中放置:

="INSERT INTO table_name ("&A$1&","&B$1&","&C$1&") VALUES ("&A2&","&B2&",'"&SUBSTITUTE(C2,"'","''")&"');"

然后将公式复制并粘贴到D3-D4中,以使表如下所示:

ROWS A      B       c        D
1    id     value1  value2  
2    1        23.0  Smith    INSERT INTO table_name (id,value1,value2) VALUES (1,23,'Smith');
3    2        42.7  O'Brien  INSERT INTO table_name (id,value1,value2) VALUES (2,42.7,'O''Brien');
4    3        59.6  Jones    INSERT INTO table_name (id,value1,value2) VALUES (3,59.6,'Jones');

最后,复制生成的SQL语句并在SQL Plus中运行它。