データベース内の列の 1 つに特定の値が含まれているかどうかを確認する必要があります。そうでない場合は、次の値でその行を作成します。
#!/bin/bash
#
MODEL=$1
if true (SELECT * FROM table.STATISTICS
WHERE MODEL = '$MODEL' )
do this (INSERT INTO table.STATISTICS('$MODEL',0,SYSDATE,0,SYSDATE,0); )
これには a を使用でき、merge
SQL*Plus を「ヒアドキュメント」として実行できるため、別のカウント操作を行う必要はありません。効果的にmerge
それを行います:
#!/bin/bash
MODEL=$1
sqlplus -s /nolog <<!EOF
connect user/pass
merge into statistics s
using (select '${MODEL}' as model, 0 as num1, sysdate as date1,
0 as num2, sysdate as date2 from dual) t
on (s.model = t.model)
when not matched then
insert (s.model, s.num1, s.date1, s.num2, s.date2)
values (t.model, t.num1, t.date1, t.num2, t.date2);
!EOF
ただし、明らかに実際の列名を使用してください。プレーンであっても、それらを明示的にリストすることをお勧めしinsert
ます。