Oracle PL/SQL 實現 9999 的下一個數值為 A000

在 Oracle PL/SQL 中,

要實現 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



Related Posts Plugin for WordPress, Blogger...