要實現 9999 的下一個數字為 A000, 而非 10000,
可以用 case when ... then 來達成,
參考下面的程式 :
程式碼
declare
v_original_data number := 10000;
v_new_data varchar2(10);
begin
select case when( floor(v_original_data / 1000) < 10 ) then
to_char(v_original_data)
else
chr(floor(v_original_data / 1000) + 55) || lpad( mod(v_original_data, 1000), 3, 0)
end a1
into v_new_data
from dual;
dbms_output.put_line( 'v_original_data=' || v_original_data || ', v_new_data = ' || v_new_data );
end;
-- 執行結果
v_original_data=9999, v_new_data = 9999
v_original_data=10000, v_new_data = A000