在windows xp中,我启动sqlloader.exe将数据加载到Oracle上。这很好用,直到我的密码包含@ -sign,sqlloader参数也使用它来确定要连接的数据库:sqlldr.exe userid / password @ database control = ctrlfile.ctl
如何让sqlldr.exe接受像p @ ssword这样的密码?
我试过单/双引号:sqlldr.exe“user / p @ ssword”@database没有成功。 我试图跳过整个用户/密码,在控制台上输入,但没有成功。
即使谷歌也无法帮助我(虽然它带我进入了伟大的网站)。
答案 0 :(得分:5)
使用parfile也会失败。您只需要使用\“转义密码,如下所示:username / \”p @ ssword \“@ database
不确定为什么之前没有人发布此解决方案。
干杯, 伯纳
答案 1 :(得分:0)
您是否尝试过参数文件?我想这可以让你拥有你想要的任何密码。来自Oracle的网站:
PARFILE = path_ file_name
告诉SQL Loader从文本文件中读取命令行参数值。此文本文件称为参数文件,包含关键字/值对。通常,关键字/值对由换行符分隔。如果需要多次执行相同的加载,使用PARFILE参数可以节省大量的输入,因为您不需要每次都重新键入所有命令行参数。参数文件没有默认扩展名。*
答案 2 :(得分:0)
如果从CMD这样的命令行执行,则必须用“封装密码部分,并且由于CMD的解释,您也必须转义双引号。
用户/ \“ p @ ssw0rd \”
如果要将userid参数放在PARFILE中,则需要用双引号将密码封装起来,但不要转义双引号。
user /“ p @ ssw0rd”
我刚遇到这个问题。