2015-08-20 127 views
1

enter image description here如何直接从Excel中插入数据到Oracle数据库

我想知道如何从Excel中插入数据到Oracle的意义可以说,我有一个工作表中全部数据的,我想他们都插入到Oracle数据库。

我该怎么做?

在此先感谢。

+0

您正在使用哪个工具? – Buddi

+0

Excel 2010和SQL * Plus – Iftekhar

+0

然后使用sql loader将数据从excel表格加载到表格http://www.orafaq.com/wiki/SQL*Loader_FAQ – Buddi

回答

1

您可以使用sql加载程序,但是如果您想要一个更强大的解决方案(特别是在数据将直接在电子表格中修改的情况下),请查看Oracle中的外部表。您可以直接在电子表格中建立一个数据库表,代码如下:

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”是一个实际的数据库对象必须创建:

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

尝试在Excel中创建插入查询(如果数据不是很大):
像:
在AA1单元写 :'INSERT INTO <TABLE> VALUES('
然后,将在Excel中创建插入脚本,然后从不同的单元格(即'A1'''B1'''+')')
的相应值。只需复制脚本并执行即可。

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

2

许多Oracle IDE都提供此功能。

的Oracle SQL Developer:

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

我会谈谈这些功能here

Mapping excel columns to oracle table cols

2

转换您的Excel文件格式为.csv格式使用另存为与在d驱动.CTL扩展FOLDER_NAME文件夹下的文件如下内容选项

保存。在运行这个.ctl之前,请确保表格应该出现在您的架构中,并且不同的列名不在您的发布映像中。列名应与.ctl文件(sc_id, sal等)的名称匹配。并且您的列的数据类型应该与.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加上使用运行您.CTL文件如果在将数据加载到表中那些将记录到.log文件发生任何错误的命令之下

sqlldr schema_name/[email protected] control=your control file path. 

。有关sqlloader的更多信息,请参阅http://docs.oracle.com/cd/B10501_01/server.920/a96652/ch05.htm

0

我有一个查询, 我已经有一个表ABC,我从它删除了几行,但在此之前,我拿出了我在Excel表中删除的行的导出。 现在我需要将这些记录重新插入表格中。 由于记录数更多,我无法为所有人编写插入语句。 那么有什么办法,我可以使用Excel表格将数据导入到表格中。 谢谢, Abhishek

+0

这不是一个答案 – Kalamarico

相关问题