我帮助转换为使用容器的应用程序之一依赖于运行sqlldr。我已经翻阅了这一页:
若要安装Oracle即时客户端,请执行以下操作。我的文件里有:
FROM alpine:3.15
RUN wget https://download.oracle.com/otn_software/linux/instantclient/216000/instantclient-basiclite-linux.x64-21.6.0.0.0dbru.zip
RUN wget https://download.oracle.com/otn_software/linux/instantclient/216000/in
我正在尝试从Java方法运行SQL Loader,但我遇到了一个问题。
我正在创建一个运行时进程来运行SQLLDR命令,但并不是加载了数据文件中的所有行。相反,无论数据文件中的总行数是多少,它都停留在相同的行数(5184行)。
但是,当我复制完全相同的命令并直接从命令提示符运行它时,它工作得很好,并且所有行都被加载。
你知道这个问题的原因是什么吗?我需要更改Java中的某种缓冲区大小吗?
谢谢!
// Run SQL Loader after creating the control file
Runtime rt = Runtime.getRuntime();
我看到SQL的行为非常奇怪。
我已经在我的终端(Linux)上执行了一个命令
sqlldr username/password@XXXX control=xxx.ctl
上面的命令没有产生任何错误:
Total logical records skipped: 0
Total logical records read: 4
Total logical records rejected: 0
Total logical records discarded: 0
但是当我在python脚本中使用这个语句时:
subproce
下面是我的控制文件示例:
OPTIONS (skip=1,errors=1000,direct=true,rows=10000)
load data
append
into table TABLE_NAME
fields terminated by ','
OPTIONALLY ENCLOSED BY '"'
trailing nullcols(
DATE_ID DATE_ID_VALUE,
DESC1 char(1000),
DES
你好,我有个问题,希望你们能帮我。我试着把所有相关信息都包括进去。我正在构建一个perl脚本,它最终将通过不同的sqlloader控制文件循环,并将它们各自的csv数据导入到oracle数据库表中。我正在测试多个控制负载,然后再循环它们。问题是,即使脚本连接到db并上传所有csv数据,我也会得到一个错误,而不会出现任何我能看到的问题。所有行都已被记录,而日志并没有真正的帮助:
================================================================================
[root@sanasr06 scripts]# pe
下面的ctl文件代码由选项卡分隔,所以我正在尝试下面的代码,但是它显示:
由于数据错误,5行未加载。它不是通过sql加载器加载到表中的。
OPTIONS ( ERRORS=405737, SILENT=(ERRORS))
LOAD DATA
INFILE '/home/maliprat/public/RDDH_Extracts/AMER_20171215_EQUITY_ISSUE.dat'
APPEND
INTO TABLE ENCORE_APP.TEMP_RDDH_RAW_DATA_ISSUE
**FIELDS TERMINATED BY X'9'**
TRA
我已经创建了一个批处理文件,它应该将数据上传到数据库中。在我输入数据库名称和密码之后,出现一个命令control =,我们在其中输入.ctl文件。
不幸的是,我找不到输入CTL文件名的命令。
任何帮助都将不胜感激。
批处理文件编码:
@ECHO OFF
sqlldr database_name/password@username
pause
SEC_LOAD.ctl
pause
这是控制台窗口中的输出:
sqlldr database_name/password@username
control =
SQL*Loader-287: No control file name specifie