是不是oracle创建的函数的返回的类型有限制?我用varchar2(2000),不行,总是出现错误
number类型可以,了解这方面情况的大侠介绍一下,谢谢了!SQL> create  or replace function testphenix return varchar2(2000)
  2  is
  3     v_str varchar2(2000):='phenix';
  4  begin
  5     dbms_output.put_line(v_str);
  6     return v_str;
  7  end;
  8  /警告: 创建的函数带有编译错误。SQL> show errors;
FUNCTION TESTPHENIX 出现错误:LINE/COL ERROR
-------- -----------------------------------------------------------------
1/36     PLS-00103: 出现符号 "("在需要下列之一时:
         . @ % ; is authid as cluster
         order using external character deterministic parallel_enable
         pipelined aggregate

解决方案 »

  1.   

    oracle的函数类型是不是不能通用(创建表的时候,创建存储过程的时候,函数的参数类型,返回的类型),大家介绍一下,不同的地方是不是规范不一样???
      

  2.   

    把返回的类型从varchar2(2000)改为varchar2就没有问题了。
      

  3.   

    create  or replace function testphenix return varchar2
      is
       v_str varchar2(2000):='phenix';
       begin
         dbms_output.put_line(v_str);
          return v_str;
       end;
    应该可以了!
      

  4.   

    知道了,返回的类型不能在varchar2后边添加()