SQLLoader,密码包含@ -signs

时间:2010-05-12 13:04:16

标签: passwords sql-loader

在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没有成功。 我试图跳过整个用户/密码,在控制台上输入,但没有成功。

即使谷歌也无法帮助我(虽然它带我进入了伟大的网站)。

3 个答案:

答案 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”

我刚遇到这个问题。