2017-12-03 20 views
0

私のスクリプトをcronjobに追加する必要があります。 sqlpromptに接続されておらず、クエリが実行されていません。 cronは #!/ binに/ bashのSQLPROMPT内部の私は、スクリプトがSQLPROMPTに接続取得されていないされて直面していますCRONからSQLクエリを実行できません

sql=/instance_name/../product/12102 // ORACLE_HOME loc 

connnect=$($sql -s "/ as sysdba" <<EOF 
spool h1.txt 
select file_name from dba_data_files where tablespace_name='RTSPACE'; 
spool off; 
exit 
EOF) 
cat "h1.txt" | mail -s "test" [email protected] 
exit 

問題ではない他のコマンドのために正常に動作します。 私は現在メールを受け取っています。クエリの出力は読み込まれません。私のメールの本文は空白です。

+0

I解決策が見つかりました。 bash以外のシェルの場合はsource〜。/ profile 、bashシェルの場合はsource〜。/ bash_profile。両方のリダイレクトを>/dev/nullに変更してください。このshudはSQLプロンプトに接続します。 –

答えて

0

I解決策が見つかりました。 bash以外のシェルの場合は〜/ profile、bashシェルの場合はsource〜。/ bash_profile。両方のリダイレクトを>/dev/nullに変更してください。このshudはSQLプロンプトに接続します。

source ~./bash_profile >/dev/null 
source ~./profile >/dev/null 

sqlplus -s "/ as sysdba" <<EOF 
spool h1.txt 
select file_name from dba_data_files where tablespace_name='RTSPACE'; 
spool off; 
exit 
EOF) 
cat "h1.txt" | mail -s "test" [email protected] 
exit 
関連する問題