首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不通过sqlloader加载数据

不通过sqlloader加载数据
EN

Stack Overflow用户
提问于 2019-01-08 21:31:50
回答 1查看 251关注 0票数 0

我在oracle数据库中有一个表: TABLESPACES,列DATA_TIME的类型是: date。以及想要修补的数据文件,如下所示:

代码语言:javascript
复制
    ALTAIR          ;08-01-2019 10:33:28       ;SUB_DATA
    ALTAIR          ;08-01-2019 10:33:28       ;SUB_IDX
    ALTAIR          ;08-01-2019 10:33:28       ;SYSAUX

我的控制文件如下所示:

代码语言:javascript
复制
    load data
    infile '/home/oracle/space_monitor/logs/space_monitor.log'
    INTO TABLE TABLESPACES
    APPEND
    Fields terminated by ";"
    (
    DB "TRIM(:DB)",
    DATA_TIME "TRIM(:DATA_TIME)",
    NAME "TRIM(:NAME)"
    )

尝试加载数据时出现错误:

代码语言:javascript
复制
    Record 1: Rejected - Error on table TABLESPACES, column DATA_TIME.
    ORA-01843: not a valid month

当我使用时间戳文件更改控件时,如下所示:

代码语言:javascript
复制
    load data
    infile '/home/oracle/space_monitor/logs/space_monitor.log'
    INTO TABLE TABLESPACES
    APPEND
    Fields terminated by ";"
    (
    DB "TRIM(:DB)",
    DATA_TIME "to_date(:TIMESTAMP, 'DD-MM-YYYY HH24:MI:SS')",
    NAME "TRIM(:NAME)"
    )

我有错误:

代码语言:javascript
复制
    SQL*Loader-291: Invalid bind variable :TIMESTAMP in SQL string for column DATA_TIME.

在我的数据库oracle参数中:

代码语言:javascript
复制
    NLS_DATE_FORMAT like RR/MM/DD
    NLS_TIMESTAMP_FORMAT like RR/MM/DD HH24:MI:SSXFF

请帮帮我。

EN

回答 1

Stack Overflow用户

发布于 2019-01-08 23:44:25

您必须使用这些sqlloder函数的on (DATE fmt或TIMESTAMP fmt)。修剪将自动完成

代码语言:javascript
复制
(
DB "TRIM(:DB)",
DATA_TIME  timestamp "DD-MM-YYYY HH24:MI:SS",
NAME "TRIM(:NAME)"
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54092942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档