Почему SPOOL COMMAND не работает в RHEL? - PullRequest
0 голосов
/ 18 июня 2020

У меня есть несколько сценариев оболочки, в которых есть команда спула для oracle. Но это не работает в RHEL 7. В RHEL у нас есть Oracle SQL Client 12.2. Но раньше у меня была ОС OpenSUSE и Oracle SQL Client 11.2, и там все работало нормально. Я использую этот способ

cd $ORACLE_HOME
./sqlplus -S "$USERNAME"/"$PASSWD"@"$DB" << EOF >> $LOGFILE
SET ECHO OFF
SET SERVEROUTPUT OFF
SET HEADING OFF
SET FEEDBACK OFF
SPOOL $DIR/user.csv
SELECT * FROM PBR_OWNER.PSRS_USER;
SPOOL OFF

В user.csv данные не приходят. Помогите, пожалуйста, что делать.

1 Ответ

0 голосов
/ 18 июня 2020

Если все переменные установлены правильно и Oracle Net подключение к «$ DB» работает, ваш скрипт должен работать:

DIR=/tmp
USERNAME=system
PASSWD=oracle
DB=NCDB
LOGFILE=/tmp/ts.log
#
sqlplus -S "$USERNAME"/"$PASSWD"@"$DB" << EOF >> $LOGFILE
SET ECHO OFF
SET SERVEROUTPUT OFF
SET HEADING OFF
SET FEEDBACK OFF
SPOOL $DIR/user.csv
SELECT * FROM t;
SPOOL OFF
EOF
#
cat $DIR/user.csv

С:

SQL> show user;
USER est "SYSTEM"
SQL> select * from t;

X
----------
OK

SQL> 

Я получаю :

$ ./ts.sh

OK                                                                              
$ cat /tmp/user.csv

OK                                                                              
$ 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...