2013-06-03 31 views
0

所以我在我的数据库中有一个用户,我想用它来运行一个。 bat文件。最简单的方法是使用Oracle作业。运行批处理文件的Oracle作业

所以我创造了我的工作,但是当我尝试运行它,它给了我下面的错误:

ORA-27370: job slave failed to launch a job of type EXECUTABLE 
ORA-27300: OS system dependent operation:accessing job scheduler service failed with status: 2 
ORA-27301: OS failure message: The system cannot find the file specified. 
ORA-27302: failure occurred at: sjsec 6a 
ORA-27303: additional information: The system cannot find the file specified. 

出于好奇,我创建了同样的工作,用SYS用户的确切设置在其模式中(是的,我知道这不是建议的......),当我执行这个工作时,它完美地工作。 所以我尽管可能涉及到一些权限,所以我给了我的用户SYS用户拥有的所有系统权限和角色,以查看是否存在这个问题。

但是,我得到了同样的错误..任何想法,为什么这在sys模式,而不是在我的用户架构,虽然用户具有所有权限设置?

+0

.bat - 所以你的数据库安装在Windows操作系统上? – APC

+0

另外,什么版本的数据库?批处理文件有什么作用? – APC

+0

是的,我使用Windows。 DB是oracle 11g标准。批处理文件使用来自oracle – Teshte

回答

2

您还没有提供任何有关您正在运行的确切命令的信息。我们必须猜测。

从你的描述来看,我会说这种行为是典型的“SYS is special”。在DBA guide中,我们可以看到,如果在没有提供凭证的情况下帐户为SYS,外部本地作业的行为将会有所不同。

所以我猜你没有凭证就用DBMS_SCHEDULER运行你的工作,并且默认的非SYS OS帐户与Oracle安装程序帐户有不同的操作系统权限。

尝试使用create a credentialDBMS_SCEDULER.CREATE_CREDENTIAL具有足够特权的操作系统帐户并将此凭据分配给您的作业。