【问题标题】:How to do BULK INSERT in Oracle Database如何在 Oracle 数据库中进行 BULK INSERT
【发布时间】:2015-11-10 02:46:38
【问题描述】:

我正在尝试使用 Oracle11 从 CSV 文件批量插入表中。我的问题是数据库位于远程机器上,我可以使用 sqlpl 来使用它:

sqlpl username@oracle.machineName

很遗憾,sqlldr 无法使用以下命令进行连接:

sqlldr userid=userName/PW@machinename control=BULK_LOAD_CSV_DATA.ctl log=sqlldr.log

错误是:

Message 2100 not found; No message file for product=RDBMS, facility=ULMessage 2100 not found; No message file for product=RDBMS, facility=UL

现在放弃了这种方法,我尝试编写一个基本的 sql 脚本,但我不确定 BULK 的正确 Oracle 关键字。我知道这在 MySql 中有效,但我得到:

unknown command beginning "BULK INSER..."

运行脚本时:

BULK INSERT <TABLE_NAME>
FROM 'CSVFILE.csv'
WITH
(
    FIELDTERMINATOR = ',',
    ROWTERMINATOR = '\n'
)
GO

我不在乎哪一个有效!任何一个都可以,我只需要一点帮助。

【问题讨论】:

  • 首先,我假设您的意思是“sqlplus”比“sqlpl”更重要。您是否在运行SQL*Plus 的同一台机器上运行SQL*Loader?为什么使用“oracle.machinename”作为一个的 TNS 别名,而使用“machinename”作为另一个的 TNS 别名? Oracle 没有BULK INSERT 语句。如果 CSV 文件存在于客户端,您将使用 SQL*Loader;如果 CSV 文件存在于服务器上,您将使用外部表。

标签: oracle csv syntax insert bulkinsert


【解决方案1】:

对不起,我是个笨蛋!我忘记将 oracle/bin 添加到我的路径中!

如果您找到了这篇文章,请使用以下命令将 bin 目录添加到您的路径 (linux):

export ORACLE_HOME=/path/to/oracle/client
export PATH=$PATH:$ORACLE_HOME/bin

对不起,如果我浪费了任何人的时间......

【讨论】:

    猜你喜欢
    • 2021-03-01
    • 2019-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多