語句:update BIZ_VOUCHER_TOTAL_INFO set
GRANTRECEDEF_NUM=to_number(GRANTRECEDEF_NUM)+1 where
TERMINAL_ID='3401010X' and BATCH_NO='1921' and CARDBOX_NO='box4_1' and MED_TYPE='4' and BATCH_STATE='0'
update 表名 set 列=列+1 where 條件;
可能出現的問題,如果GRANTRECEDEF_NUM這個字段在表中沒有數據,則這條語句失效。
需要先給它填一個非null數值一般0,然后才能生效。
修改后:
update BIZ_VOUCHER_TOTAL_INFO set
GRANTRECEDEF_NUM=nvl(GRANTRECEDEF_NUM,0)+1 where
TERMINAL_ID='3401010X' and BATCH_NO='1921' and CARDBOX_NO='box4_1' and MED_TYPE='4' and BATCH_STATE='0'
當表里沒數據時,我們給它+1沒有辦法,,所以先需要做一個判斷,是否為null
通過nvl(ex1,ex2),如果ex1為null,則返回ex2的值,如果ex1不為null,則返回ex1的值。先給null賦值為0,再加1,這樣就可以了
to_number這里也可以不要,轉換字符串為number類型,去掉也可以正常執行,只是保險起見加起。