使用 Load when 子句时出现问题?

Posted

技术标签:

【中文标题】使用 Load when 子句时出现问题?【英文标题】:Problem while using Load when clause? 【发布时间】:2011-05-12 11:06:32 【问题描述】:

我需要拒绝外部表中的行,该表在 CSV 文件中以某些特殊字符(例如~\ 等)开头(每行的第一列)。

为此,我在ACCESS PARAMETERS 子句中使用了LOAD WHEN 子句。我一直在访问参数子句中使用以下语句:

load when (1:1) != '~'

但它会抛出一个错误,说明“INVALID CHARACTER”

如果我尝试使用以下语句,

load when (empname != '~empname')

它抛出:

ERROR at line 1:
ORA-29913: error in executing ODCIEXTTABLEFETCH callout
ORA-06512: at "SYSTEM.EMP_PROCEDURE", line 101
ORA-06512: at line 1

程序中的第101行是select * from emp;

如何使用LOAD WHEN 子句 - 有什么例子吗?

【问题讨论】:

【参考方案1】:

你可以用这个:

LOAD WHEN (1:1) != 0x'7e'

参考:http://download.oracle.com/docs/cd/E11882_01/server.112/e16536/et_params.htm#i1009513

【讨论】:

感谢您的建议,它正在工作。由于我使用的是 TOAD,我尝试使用单引号,但是当我尝试使用 LOAD WHEN (1:1) != 0x''7e'' 时,它正在工作。【参考方案2】:

您是否尝试过使用波浪号的 ASCII 值?

load when (1:1) != CHR(126)

【讨论】:

感谢您的建议,但我面临同样的问题 第 1 行错误:ORA-29913:执行 ODCIEXTTABLEOPEN 标注时出错 ORA-29400:数据磁带错误 KUP-00554:解析访问参数时遇到错误KUP-01005:语法错误:找到“(”:期待以下之一:“和,badfile,byteordermark,characterset,column,data,delimited,discardfile,disable_directory_link_check,exit,fields,fixed,load,logfile,language,not,nodiscardfile , nobadfile, nologfile, date_cache, or, processing, readsize, string, skip," CONTD.,KUP-01007:在第 2 行第 40 列 ORA-06512:在“SYS.ORACLE_LOADER”,第 19 行 ORA-06512:在“SYSTEM.EMP_PROCEDURE”,第 101 行 ORA-06512:在第 1 行

以上是关于使用 Load when 子句时出现问题?的主要内容,如果未能解决你的问题,请参考以下文章

解决eclipse启动时出现“failed to load the jni shared library”

在MySQL数据库中使用多个WHERE子句值更新多个列值时出现错误。

关于怎样解决eclipse打开时出现的Failed to load the JNIshared library亲测有效

Hibernate:在子选择查询中使用 IN 子句时出现错误

使用 case when 时出现 SQL (Redshift) 错误 - 不支持这种类型的相关子查询模式

使用 properties.load() 时出现 NullPointerException