Sqlplus error de inicio de sesión cuando se utilizan variables bash: SP2-0306: opción no válida
Tengo un script bash que se conecta a una base de datos Oracle 10g.
En un primer paso, toma algunas variables de un archivo "config" con el siguiente comando
. /path/to/my/configfile.ini
En el archivo de configuración hay algunas variables:
export USRID=myUser
export USRID_PASS=myPassword
export USR_PASS="$USRID/$USRID_PASS@myDatabase"
Entonces en realidad se conecta a través de sqlplus usando el comando:
sqlplus -s $usr_pass
ejando a un lado los problemas de seguridad y diseño terribles (este script ha existido durante 5 años). Esto realmente está haciendo su trabajo en uno de nuestros servidores UNIX, pero no en otro.
Cuando ejecuto el script conbash -x
, Puedo ver que el comando se expandió a:
sqlplus -s myUser/myPassword@myDatabase
... que debería funcionar bien (y en realidad está funcionando en un servidor), pero la respuesta en el servidor que falla es:
ERROR: ORA-01017: nombre de usuario / contraseña inválidos; inicio de sesión denegad
SP2-0306: opción no válida. Uso: CONN [ECT] [inicio de sesión] [AS {SYSDBA | SYSOPER}] donde :: = [/] [@] | SP2-0306: opción no válida.
Supongo que tiene que ver más con bash que con Oracle, pero no soy un experto en bash. ¿Hay alguna configuración o detalle que me falta?
EDITAR
Intentando precisar el problema un poco más, ahora estoy ejecutando dos versiones del script en un tercer servidor de desarrollo, y en diferentes pruebas, el inicio de sesión funciona si lo hago con:
sqlplus -s $usrid/$usrid_pass@myDatabase
pero no cuando lo intento:
sqlplus -s $usr_pass
Así que es un poco molesto.
Además de eso, tendré que verificar el proceso de sincronización del archivo de configuración ... Te avisaré cuando llegue a algo nuevo. Gracias a todos