以下过程:
Create or replace procedure proc_yes2
(
  OutType varchar(10)  --此处必须把(10)去掉才可以编译)
Is
  str varchar;     --此处又必须写为varchar(10)Begin
  str := 'aaa';
End proc_yes2;请问这是什么原因?

解决方案 »

  1.   

    varchar 表示数据类型
    varchar(10) 表示定义字符串长度为10
      

  2.   

    我想问的是为什么参数使用varchar(10), 变量使用varchar 出错的原因。
      

  3.   

    Create or replace procedure proc_yes2
    (
      OutType varchar(10)  --此处必须把(10)去掉才可以编译)  这个写的是数据类型
    Is
      str varchar;     
       --此处又必须写为varchar(10)Begin
      str := 'aaa';
    End proc_yes2; Datatypes cannot specify length, precision, or scale. For example, VARCHAR2(10) is not valid, but VARCHAR2 is valid. Oracle Database derives the length, precision, and scale of an argument from the environment from which the procedure is called.