sql - 我正在尝试使用 sql loader 将数据加载到我的 oracle 表中
问题描述
这是我的表...它有Number
一个列名
CREATE TABLE pwc_it_service (
"SEQ" NUMBER,
"NUMBER" VARCHAR2(10),
"CI_NAME" VARCHAR2(200),
"CI_CLASS" VARCHAR2(200),
"OWNED_BY_PRIMARY" VARCHAR2(200),
"OWNED_BY_SECONDARY" VARCHAR2(200),
"MANAGING_TERRITORY" VARCHAR2(200),
"LOS" VARCHAR2(100),
"BUSINESS_UNIT" VARCHAR2(100),
"IMPORTED" DATE,
"LAST_UPDATED" DATE
)
当我运行我的 ctl 文件时,我收到以下错误:
Record 1: Rejected - Error on table PWC_IT_SERVICE, column NUMBER.
ORA-01747: invalid user.table.column, table.column, or column specification
如何在不更改列名的情况下插入值
解决方案
为列命名确实是个坏主意"NUMBER"
(是的,包括双引号和大写)。你能做到这一点并不意味着你应该这样做。现在您必须处理它并始终使用相同的语法- 双引号和大写。看一看:
SQL> create table test ("NUMBER" varchar2(10));
Table created.
SQL> insert into test (number) values ('A');
insert into test (number) values ('A')
*
ERROR at line 1:
ORA-00928: missing SELECT keyword
SQL> insert into test ("number") values ('A');
insert into test ("number") values ('A')
*
ERROR at line 1:
ORA-00904: "number": invalid identifier
SQL> insert into test ("NUMBER") values ('A');
1 row created.
SQL>
在控制文件中执行相同的操作。
load data
infile *
replace
into table test
(
"NUMBER" terminated by whitespace
)
begindata
Little
Foot
这个怎么运作?
SQL> desc test
Name Null? Type
----------------------------- -------- --------------------
NUMBER VARCHAR2(10)
SQL> $sqlldr scott/tiger@xe control=test02.ctl log=test02.log
SQL*Loader: Release 11.2.0.2.0 - Production on Sri Svi 23 22:23:07 2018
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Commit point reached - logical record count 1
Commit point reached - logical record count 2
SQL> select * From test;
NUMBER
----------
Little
Foot
SQL>
工作正常。
但是,我建议您重命名该不幸的列。摆脱双引号,现在和永远。
推荐阅读
- sql-server - 在 SQL Server 触发器中记录信息
- angular - 如何在角度4中增加和减少计数器
- java - 在 Java 中查找 W3C Dom 节点的 Xpath
- amazon-web-services - 在 TTL 允许的范围之外截断 DynamoDB 表
- java - Firestore 生成的密钥与集合中的自定义密钥?
- google-apps-script - 根据行单元格值的出现复制或更新行
- verilog - Systemverilog 中的双向分配
- android - AsyncTask 实际上不是异步的
- authentication - cochdb 权限角色始终“未授权”
- apache-camel - Apache Camel File 组件基本路径