Oracle‎ > ‎Application Express‎ > ‎

選択リストのnull判定

選択リストで未選択(NULL)となっている場合、そのままnumber型に渡そうとするとエラーになる。これはAPEXのありがた迷惑な仕様が引き起こしているもので、回避するには'%null%'をNULLに変換する処理が必要になる。以下にサンプルを示す。


DECLARE
BEGIN
UPDATE T3_SUBJECT
SET OID1=DECODE(:P22014_OID1,'%null%',NULL,:P22014_OID1),
OID2=DECODE(:P22014_OID2,'%null%',NULL,:P22014_OID2),
OID3=DECODE(:P22014_OID3,'%null%',NULL,:P22014_OID3),
OID4=DECODE(:P22014_OID4,'%null%',NULL,:P22014_OID4)
WHERE REC_ID=:P22014_REC_ID
  AND SUBJECT_ID=:P22014_SUBJECT_ID
  AND SUBJECT_TYPE=:P22014_SUBJECT_TYPE
  AND SEQ_NO=:P22014_SEQ_NO;
END;
Comments