查了些资料发下存储过程没有单一的一个数字函数可以满足你的要求,额,可能暂时没有
我不知道下面的这个是不是你想要的结果(将round 与 trunc 双剑合璧):
SQL> CREATE OR REPLACE PROCEDURE CHESHI
2 (I NUMBER)
3 AS
4 -- Local variables here
5 C NUMBER;
6 B NUMBER;
7 D NUMBER;
8 begin
9 ----确定舍入为两位,进行判断
10 --截断到小数点两位
11 SELECT (I - TRUNC(I))
12 INTO B
13 FROM DUAL;
14 --如果大于等于0。
12
15 IF B >= 0。12 THEN
16 --如果大于等于0。126
17 IF B >= 0。126 THEN
18 SELECT TO_CHAR(ROUND(I,2))
19 INTO C
20 FROM DUAL;
21 DBMS_OUTPUT。
put_line(TO_CHAR(C));
22 ELSE
23 SELECT TRUNC(I,2) -- EXECUT CHESHI('123。114');
123。
11
PL/SQL procedure successfully completed
SQL> EXECUT CHESHI('123。116');
123。
12
PL/SQL procedure successfully completed
SQL> EXECUT CHESHI('123。126');
123。
13
PL/SQL procedure successfully completed
SQL> EXECUT CHESHI('123。125');
123。
12
PL/SQL procedure successfully completed
当然还有更多方法,比如直接用sql语句的 case 等等。
全部