oracle - oracle 12c 中的 SQL 加载程序问题
问题描述
尝试通过 sql loader 加载数据时出现以下错误,有人可以帮助解决此问题。
错误:
C:\Users\Raghu>sqlldr hr/hrschema control=D:\sql\1.csv
SQL*Loader: Release 12.2.0.1.0 - Production on Sun Sep 29 09:03:41 2019
Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.
SQL*Loader-500: Unable to open file (D:\sql\1.csv)
SQL*Loader-553: file not found
SQL*Loader-509: System error: The system cannot find the file specified.
C:\Users\Raghu>
.ctl 文件:
load data infile 'd:\sql\1.csv'
TRUNCATE
into table students
fields terminated by "|"
(SID,CNAME)
数据文件:
SID|CNAME
10|Java
20|UNIX
30|SQL
40|PLSQL
50|AI
60|PEGA
70|RPA
80|C
90|C++
100|Python
解决方案
无法打开文件 (D:\sql\1.csv) SQLLoader-553:找不到文件 SQL*Loader-509:系统错误:系统找不到指定的文件。
这很简单;目录中没有命名1.csv
的文件 d:\sql
。确保它存在并且您有权访问它。
除此之外,它(大部分)看起来不错并加载数据。就是这样:
SQL> create table students (sid number, cname varchar2(20));
Table created.
SQL> $sqlldr scott/tiger control=test10.ctl log=test10.log
SQL*Loader: Release 11.2.0.2.0 - Production on Ned Ruj 29 10:46:51 2019
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Commit point reached - logical record count 10
Commit point reached - logical record count 11
SQL> select * From students;
SID CNAME
---------- --------------------
10 Java
20 UNIX
30 SQL
40 PLSQL
50 AI
60 PEGA
70 RPA
80 C
90 C++
100 Python
10 rows selected.
SQL>
“大部分”与包含以下行的日志文件有关:
Record 1: Rejected - Error on table STUDENTS, column SID.
ORA-01722: invalid number
它与 CSV 文件中的第一行有关 - 它包含列标题,而SID
不是数字。它很容易通过添加 - 作为控制文件的第一行来处理
options (skip=1)
推荐阅读
- sql - 在一行中显示一对多关系
- powershell - 复制文件夹时出错!使用“0”参数调用“ExecuteQuery”的异常:“远程服务器返回错误:(400) 错误请求。”
- wpf - TabItem 样式触发器不会在应用程序启动时更新
- .net - 如何从 .net 客户端为 ibm amqp 主题创建不可修改的持久订阅者?
- c++ - 在 cmake 中需要具有依赖项的共享库
- haskell - Haskell Stack - 如何在堆栈测试期间禁用复制可执行文件?
- git - 无法让 git-receive-pack 与 golang ssh 隧道一起工作
- javascript - 带有双向图表的 D3 v4 图表
- javascript - vue - 通过组件数组添加时属性不反应
- r - 条形图无法呈现(错误:第一个参数,`data`,必须是数据框或共享数据。[没有可用的堆栈跟踪])