我正在使用chef客户端运行一个厨师食谱,它设置ORACLE_BASE,ORACLE_HOME和ORACLE_SID环境变量,然后执行oracle sql脚本来创建数据库实例。
使用Windows批处理文件(.bat)设置环境变量
SET ORACLE_BASE=C:\<ora_base>
SET ORACLE_HOME=C:\<ora_base>product\12.2.0
然后sql脚本文件在同一个批处理文件中执行。
<Dir>\path\product\12.2.0\dbhome_1\bin\sqlplus /nolog @C:\files\myscript.sql
我使用了上面代码的主厨资源'批处理',仍然抛出相同的错误。 Sqlplus无法看到oracle_home环境变量。
STDERR:错误6初始化SQL * Plus SP2-0667:找不到消息文件sp1.msb SP2-0750:您可能需要将ORACLE_HOME设置为Oracle软件目录
为什么oracle_home对主厨食谱执行不可见?有人可以提供一个执行sql脚本的解决方案,而不会出现此错误。
您的ORACLE_HOME
与您从中启动SQL * Plus的路径不匹配。这有点难以确定,因为你有不同的缩短版本,但你似乎刚刚离开了dbhome_1
部分:
SET ORACLE_BASE=C:\<ora_base>
SET ORACLE_HOME=C:\<ora_base>\product\12.2.0\dbhome_1
或者可能,如果它们不同:
SET ORACLE_BASE=<Dir>\path
SET ORACLE_HOME=<Dir>\path\product\12.2.0\dbhome_1