用SHOW ERROR命令察看错误信息。

解决方案 »

  1.   

    ORA-00905: 没有关键字
    ORA-06512: "USERL.SF_S_SEQ_WL_ODR_NO_50", 行 9
    ORA-06512: 行 1
      

  2.   

    你没有写create or replace function functionname(...)吗?
    ...
      

  3.   

    create or replace function tttt
    (
            p_col               in  char,
            p_seq_no            out number
        )return number is
    sqlsen   varchar2(100);
    begin
       sqlsen := 'select SEQ_'||p_col||'.nextval into p_seq_no from dual';
       
       execute immediate sqlsen;   return 1;
     
    exception
        when no_data_found then
          return 0; end tttt;
    我的数据库8.1.7,编译通过。
      

  4.   

    create or replace function tttt
    (p_col  in  varchar2) 
    return number is
    sqlsen   varchar2(100);
    p_seq_no number; 
    begin
       sqlsen := 'select SEQ_'||p_col||'.nextval into p_seq_no from dual';
       execute immediate sqlsen;
       return p_seq_no;
    exception
        when no_data_found then
          return 0; 
    end tttt;
    /基本的语法都搞不清楚.
    函数不需要out参数.
      

  5.   

    create or replace function tttt
    (p_col  in  varchar2) 
    return number is
    sqlsen   varchar2(100);
    p_seq_no number; 
    begin
       sqlsen := 'select SEQ_'||p_col||'.nextval into p_seq_no from dual';
       execute immediate sqlsen;
       return p_seq_no;
    end tttt;
      

  6.   

    jlandzpa(ORA-00600) 你的观点是错的!
    函数是可以有OUT参数的!
    这个我已经可以证明了!
      

  7.   

    create or replace function tttt
    (
            p_col               in  char,
            p_seq_no            out number
        )return number is
    sqlsen   varchar2(100);
    begin
       sqlsen := 'select SEQ_'||p_col||'.nextval from dual';
       
       execute immediate sqlsen into p_seq_no;   return 1;
     
    exception
        when no_data_found then
          return 0; end tttt;执行过程
    declare
    c number;
    seq_no number;
    begin
      c:=tttt('tt',seq_no);
    end;
      

  8.   

    create or replace function tttt
    (p_col  in  varchar2) 
    return number is
    sqlsen   varchar2(100);
    p_seq_no number; 
    begin
       sqlsen := 'select SEQ_'||p_col||'.nextval into p_seq_no from dual';
       execute immediate sqlsen;
       return p_seq_no;
    exception
        when no_data_found then
          return 0; 
    end tttt;
    /