oracleを使用したシェルシェルスクリプト

oracleを使用したシェルシェルスクリプト

Unix変数をselectステートメントに置き換えようとすると、次のエラーが発生します。私は何が間違っていましたか?

sqlplus  "/ as sysdba" << EOF
spool /home/oracle/l.log

archive log list;
exit;
EOF

Adest=`cat  /home/oracle/l.log |head -4|tail -1|awk '{print $3}`
sqlplus "/ as sysdba" << EOF
spool /home/oracle/register.lst
select 'alter database register logfile '||''''||$Adest||'/1_'||sequence#||'_915925946.dbf'||'''' from v\$archived_log where applied='NO';
@ /home/oracle/register.lst
exit;
EOF

Error Log:-
SQL> select 'alter database register logfile '||''''||||'/1_'||sequence#||'_915925946.dbf'||'''' from v$archived_log where applied='NO';
select 'alter database register logfile '||''''||||'/1_'||sequence#||'_915925946.dbf'||'''' from v$archived_log where applied='NO'
                                                 *
ERROR at line 1:
ORA-00936: missing expression 


SQL> @ /home/oracle/register.lst
SQL> exit;


cat  /home/oracle/l.log|head -4|tail -1|awk {'print $3'}
/u01/app/oracle/DG1_ARCH

ベストアンサー1

以下を追加するとうまくいきます

'データベース登録ログファイルの変更'''||'$Adest'||'/1_'||sequence#||'_915925946.dbf'||''';'from v\$archived_log ここで apply=' NO選択します。 ';

あなたのアドバイスと助けに感謝します! ! !

おすすめ記事