oracleは問合せからデータを処理しない

私は、従業員が重複する2つのフライトに割り当てられているかどうかを確認するトリガーを作成しています。

それは次のようなものです:

select flight_id from flight 
where arrival_time > :new.departure_time
and departure_time < :new.arrival_time;

if flight_id is empty 
  [do nothing]
if flight_id exists
  [raise application error]

誰でも私がそこで条件付きロジックをコードする必要がある方法で私を助けることができますか?これは初めてのoracle(大学の授業)で働いています。

ベストアンサー

SELECT ... INTO is your friend. It will raise an
exception, you catch it, do nothing, otherwise and raise your own
error.

select flight_id into v
from flight 
where arrival_time > :new.departure_time
and departure_time < :new.arrival_time;
raise_application_error(-20000, 'not good');
exception
when NO_DATA_FOUND
  then return 1
 when others
   then raise_application_error(-20011,'really good');

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です