CREATE OR REPLACE PROCEDURE DFMS.SP_GET_SPAM_Weight_Info_test (
p_pn IN VARCHAR2,
o_std_weight out NUMBER,
.......
)
IS
v_range NUMBER;
v_res varchar2(100);
v_minweight varchar(10);
ex exception;
BEGIN
o_std_weight:='0.0';
o_pn_desc:='';
o_mc_code:='';
o_res :='OK';
v_range := TO_NUMBER (function_get_singlecontrolvalue ('ALL', 'SPAM-WEIGHT-RANGE', '0.05'));
......
注意 function_get_singlecontrolvalue ('ALL', 'SPAM-WEIGHT-RANGE', '0.05') 返回值为varchar2 类型。
select function_get_singlecontrolvalue ('ALL', 'SPAM-WEIGHT-RANGE', '0.05') from dual ; 发现返回值为 0.05
select to_number(function_get_singlecontrolvalue ('ALL', 'SPAM-WEIGHT-RANGE', '0.05')) from dual ; 返回值也为 0.05
但是在Toad中单步调试这个procedure 的时候, 代入值执行发现 v_range 的值为 .05 , 而不是 0.05 , 缺少一个小数点前面的 0,
同样的语句在另外一个结构差不多的10g数据库中却可以正常返回 0.05 , Toad也换了几个版本, 都是一样的结果 。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/35489/viewspace-669546/
,如需转载,请注明出处,否则将追究法律责任。