通过 Chef Recipe 调用,SQLPLUS 无法在 Windows 12R2 中识别 Oracle_Home 环境变量

Called through chef recipe, SQLPLUS unable to identify Oracle_Home environment variable in Windows 12R2

我是运行厨师食谱,使用chef client,设置ORACLE_BASE、ORACLE_HOME和ORACLE_SID环境变量,然后执行oracle sql脚本创建数据库实例。

环境变量是使用 windows 批处理文件 (.bat)

设置的
SET ORACLE_BASE=C:\<ora_base>
SET ORACLE_HOME=C:\<ora_base>product.2.0

然后在同一个批处理文件中执行sql脚本文件。

<Dir>\path\product.2.0\dbhome_1\bin\sqlplus /nolog @C:\files\myscript.sql

我在上面的代码中也使用了 chef 资源 'batch',仍然抛出了同样的错误。 Sqlplus 无法看到 oracle_home 环境变量。

STDERR: Error 6 initializing SQL*Plus
SP2-0667: Message file sp1.msb not found
SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory

为什么 oracle_home 厨师食谱执行不可见? 有人可以提供一种解决方案来执行 sql 脚本而不会出现此错误。

您的 ORACLE_HOME 与您启动 SQL*Plus 的路径不匹配。由于您有不同的缩短版本,因此很难确定,但您似乎刚刚关闭了 dbhome_1 部分:

SET ORACLE_BASE=C:\<ora_base>
SET ORACLE_HOME=C:\<ora_base>\product.2.0\dbhome_1

或者可能,如果它们不同:

SET ORACLE_BASE=<Dir>\path
SET ORACLE_HOME=<Dir>\path\product.2.0\dbhome_1