【问题标题】:SQL Loader in OracleOracle 中的 SQL 加载器
【发布时间】:2017-10-12 21:17:23
【问题描述】:

当我使用SQL Loader 将数据从CSV file 插入到oracle 表中时,它工作正常。

LOAD DATA
INFILE DataOut.txt
BADFILE dataFile.bad
APPEND INTO TABLE ASP_Net_C_SHARP_Articles
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
(ID,Name,Category)

以上设置用于执行此操作,但我不想指定任何列名 ex. (ID,Name,Category)

这是否可能,如果可以,谁能告诉我如何..

【问题讨论】:

  • 不.. 我不认为这是可能的。是否有不想输入列名的原因?

标签: oracle sql-loader


【解决方案1】:

SQL*Loader 中,您需要指定列名。如果您仍然坚持忽略控制文件中的列名,那么我建议您使用 SQL 来“发现”列名并动态生成控制文件并通过 shell 脚本将其包装以使其更加自动化。

同时,您可以考虑使用SQL*Loader 引擎的外部表,因此您仍然需要按照上面的建议在此处为您的输入文件执行一些动态创建。但是您可以创建一个脚本来扫描输入文件并为您动态生成CREATE TABLE..ORGANIZATION EXTERNAL 命令。然后数据变得可用,就好像它是数据库中的一个表一样。

如果对您有帮助,您也可以使用FILLER 跳过部分列。如果稍后再次需要跳过的列的值,则可以使用BOUNDFILLER(适用于 Oracle 9i 及更高版本)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多