如何直接从Excel插入数据到Oracle数据库

在这里输入图像描述

我想知道如何从Excel中插入数据到Oracle的意思可以说我有一个工作表充满了数据,我想将它们全部插入Oracle数据库。

我怎么做?

提前致谢。

尝试在Excel中创build插入查询(如果数据不是那么大):
喜欢 :
在AA1单元格中写入: 'INSERT INTO <TABLE> VALUES('
那么来自不同单元的相应值(即“A1”,“B1”,“+”))
它会在Excel中创build插入脚本。 只需复制脚本并执行。

这些是样本查询,请根据您对INSERT STATEMENT的要求编写自己的查询。

许多Oracle IDE提供此function。

Oracle SQL开发人员:

  • 从CSV导入新的或现有的表
  • 从XLS / XLSX文件导入新的或现有的表
  • 可以设置外部表或SQL * Loader会话以从分隔文件导入到新的或现有的表
  • 提供了一个用于自动化目的的命令行界面

我在这里谈论这些function。

将excel列映射到oracle表格列

使用另存为选项将您的Excel文件格式转换为.csv格式

将以下内容保存在D盘下的.ctl扩展名的文件夹下。 在运行这个.ctl之前,请确保表格应该出现在您的架构中,并且不同的列名不在您的发布图片中。 列名应与.ctl文件(sc_id,sal等)的名称匹配。 而且你的列的数据types应该和.csv文件中的数据匹配。 还要确保你的table应该是empty否则你应该在你的.ctl文件中使用truncateappend选项。

  LOAD DATA INFILE 'D:\folder_name\csvfile_name.CSV' BADFILE 'D:\folder_name\csvfile_name.BAD' DISCARDFILE 'D:\folder_name\csvfile_name.log' logfile 'D:\folder_name\csvfile_name.DSC' iNTO TABLE schema_name.table_name FIELDS TERMINATED BY ',' TRAILING NULLCOLS ( sc_id, sal, sc_cd1, coll, sc_cd2, bill_mas, sc_cd3, wk_sal, check_bill_month, check_sale_wk ) 

在sql plus中使用以下命令运行.ctl文件

 sqlldr schema_name/password@databasename control=your control file path. 

如果在将数据加载到表中时发生任何错误,那么这些错误将logging到.log文件中 要了解有关sqlloader的更多信息,请参阅http://docs.oracle.com/cd/B10501_01/server.920/a96652/ch05.htm

你可以使用sql loader,但是如果你想要一个更强大的解决scheme(特别是如果数据将直接在电子表格中修改的话),那么在Oracle中查看外部表。 您可以直接从电子表格构build数据库表,代码如下所示:

 CREATE TABLE YOUR_SCHEMA.YOUR_TABLE ( ACCT_NO VARCHAR2(15 BYTE), PRODUCT_TYPE VARCHAR2(50 BYTE), ORGINATION_DATE VARCHAR2(20 BYTE), MATURITY_DATE VARCHAR2(20 BYTE), FIXED_PERIOD_START_DATE VARCHAR2(30 BYTE), FIXED_PERIOD_END_DATE VARCHAR2(30 BYTE), ORIGINAL_LOAN_AMOUNT NUMBER, CURRENT_BALANCE NUMBER ) ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY YOUR_DIRECTORY ACCESS PARAMETERS ( RECORDS DELIMITED BY NEWLINE LOGFILE YOUR_DIRECTORY:'your_log.log' BADFILE YOUR_DIRECTORY:'your_bad.bad' FIELDS TERMINATED BY ',' MISSING FIELD VALUES ARE NULL ) LOCATION (YOUR_DIRECTORY:'your_file.csv') ) 

请注意,上面的任何单词“你的”必须改变为任何你想命名你的文件和目录。 另请注意,“YOUR_DIRECTORY”是您必须创build的实际数据库对象:

 CREATE OR REPLACE DIRECTORY YOUR_DIRECTORY AS 'C:\workspaces\test\XL2ExternalTables' 

请参考答案。 https://community.oracle.com/thread/2166713?start=0

我只是从上面的链接复制了对我有用的方法

在Oracle sql开发者中,转到Tables – > select import data —>select你的excel或csv文件 – >它会显示列 – >将数据导入到一个表中。

我有一个查询,我已经有一个表ABC,我从它删除了几行,但在此之前,我出口我在Excel表中删除的行。 现在我需要将这些logging重新插入到表格中。 由于logging数量更多,所以我不能写入插入语句。 那么有什么办法,我可以通过Excel表导入数据回到表格。 谢谢,阿布舍克