我要在存储过程中定义一个浮点类型的变量,怎么定义,可以用number吗,需要指定小数位数和数值长度吗?

解决方案 »

  1.   

    create or replace procedure test_number_proc(i_number number)
    as
      v_number number(18,4);
    begin
      v_number := 2*3.14*i_number;
      dbms_output.put_line(v_number);
    end;
    /SET SERVEROUTPUT ON;
    EXEC test_number_proc(8.5);
      

  2.   


    -- 可以不指定长度,但当你限定精确位数时,
    -- 最好指定长度!
    create or replace procedure test_number_proc(i_number number)
    as
      v_number number(18,4);
    begin
      v_number := 2*3.14*i_number;
      dbms_output.put_line(v_number);
    end;
    /SET SERVEROUTPUT ON;
    EXEC test_number_proc(8.5);