Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle SQL Loader中带前导下划线的列_Oracle_Sql Loader_Controlfile - Fatal编程技术网

Oracle SQL Loader中带前导下划线的列

Oracle SQL Loader中带前导下划线的列,oracle,sql-loader,controlfile,Oracle,Sql Loader,Controlfile,我想通过SQL Loader在Oracle数据库中加载数据。 这是我的控制文件。我剪掉了中间的部分,因为它不太长 OPTIONS (BINDSIZE=512000, ROWS=10000) LOAD DATA CHARACTERSET UTF8 APPEND INTO TABLE EIDESWTDOC FIELDS TERMINATED BY '~' OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS ( MANDT CHAR(6)"NVL(:M

我想通过SQL Loader在Oracle数据库中加载数据。 这是我的控制文件。我剪掉了中间的部分,因为它不太长

OPTIONS (BINDSIZE=512000, ROWS=10000) 
LOAD DATA 
CHARACTERSET UTF8
APPEND
INTO TABLE EIDESWTDOC 
FIELDS TERMINATED BY '~' 
 OPTIONALLY ENCLOSED BY '"' 
TRAILING NULLCOLS (
MANDT CHAR(6)"NVL(:MANDT,' ')"
, SWITCHNUM CHAR(40)"NVL(:SWITCHNUM,' ')"
, POD CHAR(44)"NVL(:POD,' ')"
, SWITCHTYPE "NVL(:SWITCHTYPE, 0.0)"
, OWNER CHAR(20)"NVL(:OWNER,' ')"
, SWTVIEW "NVL(:SWTVIEW, 0.0)"
, MOVEINDATE DATE 'YYYY-MM-DD'
, MOVEOUTDATE DATE 'YYYY-MM-DD'
.....
, SP_INITIATOR CHAR(20)"NVL(:SP_INITIATOR,' ')"
, _IDEXGE_NONFIXED CHAR(2)"NVL(:_IDEXGE_NONFIXED,' ')"
, _IDEXGE_MRPERIO CHAR(4)"NVL(:_IDEXGE_MRPERIO,' ')"
)   
由于列以下划线开头,我得到一个语法错误(非字母数字字符的非法组合)。 我已经试着引用了,但没有任何效果。有人能解决这个问题吗

致以最诚挚的问候,Chris,Hi Quoting似乎有效。

控制文件

LOAD DATA
  APPEND INTO TABLE TEMP
  FIELDS TERMINATED BY ','
  (FirstName CHAR,
  "_Address" CHAR)
LOAD DATA
  APPEND INTO TABLE TEMP
  FIELDS TERMINATED BY ','
  (FirstName CHAR,
  _Address CHAR)
执行日志

$ sqlldr ***/*** control="/home/venkat/Desktop/sqlLoader/load.ctl" data = "/home/venkat/Desktop/sqlLoader/data.txt"

SQL*Loader: Release 11.2.0.2.0 - Production on Wed Nov 21 00:59:36 2018

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

Commit point reached - logical record count 2
$ sqlldr ***/*** control="/home/venkat/Desktop/sqlLoader/load.ctl" data = "/home/venkat/Desktop/sqlLoader/data.txt"

SQL*Loader: Release 11.2.0.2.0 - Production on Wed Nov 21 01:05:23 2018

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

SQL*Loader-350: Syntax error at line 5.
Illegal combination of non-alphanumeric characters
  _Address CHAR)
  ^
但每当我尝试不引用时,我得到的错误与你报告的完全相同

控制文件

LOAD DATA
  APPEND INTO TABLE TEMP
  FIELDS TERMINATED BY ','
  (FirstName CHAR,
  "_Address" CHAR)
LOAD DATA
  APPEND INTO TABLE TEMP
  FIELDS TERMINATED BY ','
  (FirstName CHAR,
  _Address CHAR)
执行日志

$ sqlldr ***/*** control="/home/venkat/Desktop/sqlLoader/load.ctl" data = "/home/venkat/Desktop/sqlLoader/data.txt"

SQL*Loader: Release 11.2.0.2.0 - Production on Wed Nov 21 00:59:36 2018

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

Commit point reached - logical record count 2
$ sqlldr ***/*** control="/home/venkat/Desktop/sqlLoader/load.ctl" data = "/home/venkat/Desktop/sqlLoader/data.txt"

SQL*Loader: Release 11.2.0.2.0 - Production on Wed Nov 21 01:05:23 2018

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

SQL*Loader-350: Syntax error at line 5.
Illegal combination of non-alphanumeric characters
  _Address CHAR)
  ^

PS:尝试引用所有以下划线开头的列名。

问题是指NVL()函数中的列:
“NVL(:\u IDEXGE\u NONFIXED,”)”
谢谢!完全忘记在NVL函数中引用列。。。现在可以了。