Переключение пользователя в сценарии Shell для запуска SQL - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь запустить какой-то SQL в скрипте SHELL после переключения пользователя внутри скрипта. Сценарий запускается от имени пользователя root, но я ищу su для oracle, войдите в систему как SYSDBA и запустите некоторый SQL.

Я определил SQL в переменной $ cmd, но он не вызывается и unixсреда не загружается должным образом.

typeset cmd="<<-SQL
WHENEVER SQLERROR EXIT SQL.SQLCODE;
SET FEEDBACK OFF HEAD OFF SERVEROUTPUT ON
select NAME, OPEN_MODE, sys_context('USERENV','ORACLE_HOME') ORACLE_HOME from v$database;
EXIT;
SQL"

ts_log "Running SQL"
su oracle -c "export ORACLE_SID=TESTDB;export ORAENV_ASK=NO;. /usr/local/bin/oraenv;sqlplus -s \'/ as sysdba\' ${cmd}"

Цель для запуска SQL! Извлечение кода является частью более широкого кода, который создает новый $ ORACLE_HOME и заменяет БД на «новый» $ORACLE_HOME. Эта проверка докажет, что БД была заменена.

...