如何使用PLSQL打开、读取和存储XLSX文件的DB内容?

如何使用PLSQL打开、读取和存储XLSX文件的DB内容?,plsql,oracle11g,plsql-package,Plsql,Oracle11g,Plsql Package,我正在尝试使用PLSQL打开、解析.xlsx文件中的内容并将其保存到数据库中。这可能吗?我将文件放在服务器上,为该路径创建了对象,并为我的用户授予了权限rw。我应该使用PLSQL将XLSX转换为CSV吗?这是可能的还是有其他方法来处理XLSX文件 到目前为止我试过的是,但我得到了一个例外 ORA-22288:文件或LOB操作FILEOPEN失败 试图对我的对象授予权限,但它仍然不起作用。假设您只想手动上载少量电子表格(而不是要求定期或大量自动上载),那么将excel文件中的行插入数据库的最简单方

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

到目前为止我试过的是,但我得到了一个例外

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


试图对我的对象授予权限,但它仍然不起作用。

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

例如:

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

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
put中:

="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中运行。

假设您只想手动上载少量电子表格(而不是要求定期或大量自动上载)然后,将excel文件中的行插入数据库的最简单方法是向表中添加一列,该列将生成SQL insert语句

例如:

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

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
put中:

="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中运行。

我明白你的意思,但我没有SQL Plus或Developer。@AdiC.N。然后在任何IDE中运行这些SQL语句,您可以使用这些IDE来运行您从问题中链接到的SQL语句。如果您无法运行SQL语句,那么我们提供给您的任何和所有解决方案都将无法执行。我理解您的意思,但我没有SQL Plus或Developer。@AdiC.N。然后在任何IDE中运行这些SQL语句,您可以使用这些IDE来运行您从问题中链接到的SQL语句。如果您没有任何方法来运行SQL语句,那么我们提供给您的任何和所有解决方案都将无法执行。