ログファイルがありますが、ouput.log
ログファイルの内容は次のとおりです。ログファイルは.sql
複数のファイル出力を順番に設定します。ログファイルには、実行中のSQLファイルの例が含まれています。 --> @/opt/DBA/HIP/FILES/Environments/PRDO/347_WT_04NOV2020.sql
ORAモードを使用する任意の時点でエラーが発生する可能性がある「n」個のSQL文を含めることができます。したがって、コマンドがORA-を見つけるたびに無効なファイル名を取得する必要があります。
== Files executed in PRDO ==
== PRDO Execution spool ==
SQL> @/opt/DBA/HIP/FILES/Environments/PRDO/347_WT_04NOV2020.sql
SQL> ------UHIPOPS-36625---
SQL>
SQL> SET DEFINE OFF;
SQL>
SQL> ALTER SESSION SET CURRENT_SCHEMA = HIS_PD;
Session altered.
Elapsed: 00:00:00.00
SQL>
SQL> INSERT INTO msg (MSG_ID,
2 LANG_CD,
3 SVR_CD,
4 MSG_DSC)
5 VALUES (92012,
6 'EN',
7 1,
8 'Please enter the EIN in the correct format: XX-XXXXXXX.');
1 row created.
Elapsed: 00:00:00.03
SQL>
SQL> INSERT INTO msg (MSG_ID,
2 LANG_CD,
3 SVR_CD,
4 MSG_DSC)
5 VALUES (92012,
6 'ES',
7 1,
8 'Ingrese el EIN en el formato correcto: XX-XXXXXXX.');
ORA-
Elapsed: 00:00:00.00
SQL>
SQL> INSERT INTO msg (MSG_ID,
2 LANG_CD,
3 SVR_CD,
4 MSG_DSC)
5 VALUES (92012,
6 'PT',
7 1,
8 'Introduza o EIN no formato correto: XX-XXXXXXX.');
1 row created.
Elapsed: 00:00:00.00
SQL>
SQL> COMMIT;
Commit complete.
Elapsed: 00:00:00.00
SQL> @/opt/DBA/HIP/FILES/Environments/PRDO/348_WT_04NOV2020.sql
SQL> ------UHIPOPS-36625---
SQL>
SQL> SET DEFINE OFF;
SQL>
SQL> ALTER SESSION SET CURRENT_SCHEMA = HIS_PD;
Session altered.
Elapsed: 00:00:00.00
SQL>
SQL> INSERT INTO msg (MSG_ID,
2 LANG_CD,
3 SVR_CD,
4 MSG_DSC)
5 VALUES (92012,
6 'EN',
7 1,
8 'Please enter the EIN in the correct format: XX-XXXXXXX.');
1 row created.
Elapsed: 00:00:00.03
SQL>
SQL> INSERT INTO msg (MSG_ID,
2 LANG_CD,
3 SVR_CD,
4 MSG_DSC)
5 VALUES (92012,
6 'ES',
7 1,
8 'Ingrese el EIN en el formato correcto: XX-XXXXXXX.');
1 row created.
Elapsed: 00:00:00.00
SQL>
SQL> INSERT INTO msg (MSG_ID,
2 LANG_CD,
3 SVR_CD,
4 MSG_DSC)
5 VALUES (92012,
6 'PT',
7 1,
8 'Introduza o EIN no formato correto: XX-XXXXXXX.');
ORA-
Elapsed: 00:00:00.00
SQL>
SQL> COMMIT;
Commit complete.
Elapsed: 00:00:00.00
上記のログファイルの例では、2つのキャプチャされたSQLファイルを実行しましたが、両方のファイルでエラーが発生しましたORA-
。これで、エラーSQLのファイル名を取得するコマンドまたは方法はありますか?出力は次のようにする必要があります
347_WT_04NOV2020.sql
348_WT_04NOV2020.sql
私が知っているのは基本です。grep "ORA-" output.log
ORA-がoutput.logにある場合、出力が提供されます。
ベストアンサー1
使用awk
:
awk -F'/' '/^SQL> @/{ filename=$NF; next } /^ORA-/{ print filename; }' infile