我的旧机器出现了一些硬件故障,现在我正试图让所有东西都在新机器上运行。安装了Oracle并加载了我的数据库。我有一个自动创建批处理文件,控制文件和数据文件的进程。创建文件后,它将运行批处理文件。它工作得很好。但在这台新机器上只是挂起。
这是一个类似的问题(没有答案) - https://stackoverflow.com/questions/21374488/sqlldr-doent-execute-when-invoked-from-command-prompt。
我的bat文件包含以下内容:
sqlldr user/password control='C:\Users\Public\Documents\sqlldr\test.ctl'
控制文件如下所示:
load data infile 'C:\Users\Public\Documents\sqlldr\test.csv' replace into table test_table fields terminated by "|" TRAILING NULLCOLS (field1 char(12), field2 char(16))
我的test.csv文件中有一条记录。它通常会有数万个。我在控制台中唯一得到的是,无论是运行bat文件还是直接输入sqlldr命令,都是:
SQL*Loader: Release 11.2.0.1.0 - Production on Wed Sep 24 11:08:14 2014
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
如果我传入无效的ctl文件名,则会给我一个错误。或者如果我使用无效的用户/通行证,它将无法继续。奇怪的是,如果我将csv文件的名称更改为无效,它仍然只是坐在那里,我没有收到错误。
有什么想法吗?它与我的路径变量有什么关系吗?我不这么认为,因为它似乎找到sqlldr,但此时我不确定。