如何将 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 中的临时表中