暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle SQLLDR替换功能不起作用

askTom 2018-03-08
418

问题描述

帮助我尝试在性别栏上使用repace功能。该列只有2个可能的值 (-2,-3),我试图分别用M和F替换它们。但是我一直收到一个错误。
记录5: 拒绝-表L2K_TNCPS_T_PERSON上的错误。
ORA-00913: 值太多。
我做错了什么?


加载数据
档案 *
截断
进入表L2K_TNCPS_T_PERSON
由 “|” 终止的字段
可选地由 '"' 和 '"' 括起来
尾随nullcols
(PERSON_ID CHAR(4000),
SSN CHAR(4000),
LAST_NAME CHAR(4000) "TRIM(:LAST_NAME)",
FIRST_NAME CHAR(4000) "TRIM(:FIRST_NAME)",
MIDDLE_NAME CHAR(4000) "TRIM(:MIDDLE_NAME)",
IS_ORGANIZATION CHAR(4000),
出生日期 “RRRR-MM-DD”,
性别字符 (4000) “替换 (: 性别,'-2','M'),替换 (: 性别,'-3','F')”,
ADDRESS_ID CHAR(4000),
性别 _ 描述字符 (4000)
)

专家解答

我们使用您指定的函数来创建insert语句。

所以在最基本的SQL Loader控制文件中,例如

(A,B,C)


我们将按照以下方式生成一个插入:

insert into MY_TABLE (A,B,C) values (:A,:B,:C)


所以在你的代码中,我们最终会这样做:

insert into L2K_TNCPS_T_PERSON
(PERSON_ID,SSN, .... GENDER ... )
values
(:PERSON_ID,:SSN, .... REPLACE(:GENDER,'-2','M'),REPLACE(:GENDER,'-3','F')


所以你可以看到这样的SQL不起作用...'n' 列与n 1个值。

您需要将表达式更改为:

替换 (: 性别,'-2','M'),'-3','F')

这样它就做了两个替换,但仍然只是一个表达式
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论