首页 > 解决方案 > Oracle sqlldr ORA-28009:连接为 SYS 应为 SYSDBA 或 SYSOPER

问题描述

我尝试从 DOSsqlldr运行SYS/PASS@

sqlldr.exe 'sys/PASS@orcl' control="D:/test/control_file.dat" log="D:/test/log.log"

并得到了这个错误

Oracle sqlldr ORA-28009:连接为 SYS 应为 SYSDBA 或 SYSOPER

有人可以告诉我在上面的命令行中指定SYSDBA或指定吗?SYSOPER

标签: oraclesql-loader

解决方案


您需要添加AS SYSDBA到您的连接字符串。尝试这个:

sqlldr.exe 'sys/PASS@orcl AS SYSDBA' control="D:/test/control_file.dat" log="D:/test/log.log"

附言

来自文档的注意事项:

此示例显示了用引号和反斜杠括起来的整个连接字符串。这是因为字符串 AS SYSDBA 包含一个空格,在这种情况下,大多数操作系统要求将整个连接字符串放在引号中或通过某种方法标记为文字。某些操作系统还要求命令行上的引号前有转义字符。在此示例中,反斜杠用作转义字符。如果反斜杠不存在,SQL*Loader 使用的命令行解析器将无法理解引号并将它们删除。有关系统上的特殊字符和保留字符的信息,请参阅特定于 Oracle 操作系统的文档。


推荐阅读