如何将 Excel 工作表中的行插入 SQL Server 2005 或 oracle

Posted

技术标签:

【中文标题】如何将 Excel 工作表中的行插入 SQL Server 2005 或 oracle【英文标题】:How to insert rows in an Excel sheet into SQL Server 2005 or oracle 【发布时间】:2010-05-30 06:18:26 【问题描述】:

中?

例如,如果我在 Excel 表中有 5000 行,我如何将这些行插入到任何数据库中的表中

【问题讨论】:

excel 到 oracle ***.com/questions/2124278/… 【参考方案1】:

我建议将 Excel 文件保存为制表符或逗号分隔值文件,并使用适当的命令导入数据库。例如,mysql 使用LOAD DATA INFILE。对于 MS-SQL,请参阅 this page at msdn。我不确定如何将数据导入 Oracle,尽管许多搜索表明这是可能的。不过,我认为导出为 CSV 等格式将是您需要的步骤。

【讨论】:

【参考方案2】:

对于 Oracle(请参阅 JYelton 对 MySQL 和 MS-SQL 的回答),命令将是:

sqlldr username@server/password control=loader.ctl

CTL 文件将包含有关您需要导入的文件的详细信息。您必须将 excel 文件转换为 CSV 格式。

控制文件中的示例条目。

load data
 infile 'c:\data\mydata.csv'
 into table emp
 fields terminated by "," optionally enclosed by '"'          
 ( empno, empname, sal, deptno )

更多详情请联系ORAFAQ for SQL Loader。你也可以使用UTL_FILE

或者,考虑使用 CSV 文件作为数据创建一个外部表,并对其进行详细操作。

CREATE 声明示例如下:

CREATE TABLE countries_ext (
  EMP_ID        VARCHAR2(5),
  EMP_NAME      VARCHAR2(50),
  DEPT          VARCHAR2(50)
)
ORGANIZATION EXTERNAL (
  TYPE ORACLE_LOADER
  DEFAULT DIRECTORY ext_tables
  ACCESS PARAMETERS (
    RECORDS DELIMITED BY NEWLINE
    FIELDS TERMINATED BY ','
    MISSING FIELD VALUES ARE NULL
    (
      employee_id      CHAR(5),
      employee_name    CHAR(50),
      department       CHAR(50)
    )
  )
  LOCATION ('employee.txt')
)
PARALLEL 5
REJECT LIMIT UNLIMITED;

详情请看:Oracle documentation for External Tables。

【讨论】:

以上是关于如何将 Excel 工作表中的行插入 SQL Server 2005 或 oracle的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Excel 中的数据插入 Spark SQL 中的临时表中

如何删除EXCEL表中的大量数据行,要删除的行数大概8万

我可以将 Excel 工作表中的行加载到 BULK 的数据库表中吗

如何在 Excel 中生成的 SQL 插入语句中获取行数?

将 Excel 工作表中的数据插入到链接的访问表中

使用列名从excel中读取数据并插入到C#中的SQL表中