5

在 windows xp 中,我启动 sqlloader.exe 将数据加载到 Oracle。这很好用,直到我的密码包含一个@符号,sqlloader 参数也使用它来确定要连接到的数据库:sqlldr.exe userid/password@database control=ctrlfile.ctl

如何让 sqlldr.exe 接受像 p@ssword 这样的密码?

我尝试使用单引号/双引号: sqlldr.exe "user/p@ssword"@database 没有成功。我试图跳过整个用户/密码,在控制台上输入它,但没有成功。

甚至谷歌也帮不了我(尽管它把我带到了这个很棒的网站上)。

4

3 回答 3

6

使用 parfile 也会失败。您只需要使用 \" 转义密码,如下所示:username/\"p@ssword\"@database

不知道为什么以前没有人发布此解决方案。

干杯,贝尔纳多

于 2011-06-27T16:42:31.807 回答
0

你用参数文件试过吗?我认为这将允许您拥有所需的任何类型的密码。从甲骨文的网站:

PARFILE = path_ file_name

告诉 SQL Loader 从文本文件中读取命令行参数值。此文本文件称为参数文件,包含关键字/值对。通常,关键字/值对由换行符分隔。如果您需要多次执行相同的加载,使用 PARFILE 参数可以节省大量输入,因为您不需要每次都重新输入所有命令行参数。参数文件没有默认扩展名。*

于 2010-05-12T13:11:12.240 回答
0

如果您从命令行执行,例如 CMD,那么您必须用 " 封装密码部分,并且由于 CMD 解释,您也必须转义双引号。

用户/\"p@ssw0rd\"

如果将 userid 参数放在 PARFILE 中,则需要用双引号封装密码,但不要转义双引号。

用户/“p@ssw0rd”

我刚碰到这个。

于 2020-09-30T14:55:14.687 回答