存储过程里输出输入参数是number 的不能指定小数点位数吗,varchar的也不能指定长度吗?

解决方案 »

  1.   

    number(p,s) 如:number(8,2)定长用char
      

  2.   

    不需要指定,数据库会处理.
    在出参入参里面可以直接使用,如:
    CREATE OR REPLACE PROCEDURE p_test(icomcode IN VARCHAR2,
                                       osen     OUT NUMBER) AS
    BEGIN
      osen     := 12345.22;
    END;执行后结果为:12345.22;
    varchar2类型自不必说了,唯一要注意的就是各数据类型的值范围.
      

  3.   

    是的。你在create procedure时指定的参数不能带长度的。
    Datatypes cannot specify length, precision, or scale.
      

  4.   


    --我这边可以的哦
    SQL> create or replace procedure test_p (id number)
      2  as
      3  id_in number;
      4  begin
      5  id_in := 2;
      6  dbms_output.put_line(id);
      7  end;
      8  /Procedure createdSQL> set serveroutput on
    SQL> execute test_p(1.22);1.22PL/SQL procedure successfully completedSQL> 
      

  5.   

    是的。你在create procedure时指定的参数不能带长度的。