select function_name(...) from dual;
execute pro_name;

解决方案 »

  1.   

    nicholaz,请看
    执行以下语句报错:
    EXEC INSERT_MAILING_LIST_FUN('TEST', 'TEST', 'Y')错误如下:
    BEGIN INSERT_MAILING_LIST_FUN('TEST', 'TEST', 'Y'); END;      *
    ERROR 位于第 1 行:
    ORA-06550: line 1, column 7:
    PLS-00221: 'INSERT_MAILING_LIST_FUN' is not a procedure or is undefined
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored'INSERT_MAILING_LIST_FUN'是已定义好的的函数 ,是不是函数
    不能这样写?
      

  2.   

    jiezhi,请看
    执行以下语句报错:
    SELECT INSERT_MAILING_LIST_FUN('TEST', 'TEST', 'Y') FROM DUAL;错误如下:
    SELECT INSERT_MAILING_LIST_FUN('TEST', 'TEST', 'Y') FROM DUAL
           *
    ERROR 位于第 1 行:
    ORA-14551: cannot perform a DML operation inside a query
    ORA-06512: at "BDAYCLUB.INSERT_MAILING_LIST_FUN", line 10'INSERT_MAILING_LIST_FUN'是已定义好的的函数
      

  3.   

    函数这样写:
    select INSERT_MAILING_LIST_FUN('TEST', 'TEST', 'Y') from dual;
      

  4.   

    你的函数中有诸如insert, delete, update之类的SQL语句,这些语句最好写在procedure中,而非函数中。
      

  5.   

    beckhambobo
    还是不行
    select INSERT_MAILING_LIST_FUN('TEST', 'TEST', 'Y') from dual;
    还是报错
    select INSERT_MAILING_LIST_FUN('TEST', 'TEST', 'Y') from dual
           *
    ERROR 位于第 1 行:
    ORA-14551: cannot perform a DML operation inside a query
    ORA-06512: at "BDAYCLUB.INSERT_MAILING_LIST_FUN", line 10
      

  6.   

    bzszp
    函数应该没有错,我在.net中一直调用它保存了数据
      

  7.   

    可以吧INSERT_MAILING_LIST_FUN的代码贴出来吗?
      

  8.   

    Lastdrop
    函数应该没有错,我在.net页面中调用了它,成功执行
    我现在只是想在SQLPlus Worksheet中使用它,但是我不知道怎么用
    告诉我好吗?
      

  9.   

    bzszp 请看:(应该是没错的,.net页面中调用好多次了)
    --------------------------------------------------- (
     v_name in varchar2, v_query in varchar2, v_template_flag in char
    )
    return number
    as
    v_mailing_id number;begin insert into mailing_list(mailing_list_id, name, query, create_date, template_flag)
     values(mailing_list_seq.nextval, v_name, v_query, sysdate, v_template_flag);
     
     commit;
     
     select mailing_list_seq.currval into v_mailing_id from dual;
     
     return v_mailing_id;
     
    end;
      

  10.   

    declare 
      aa varchar2(2000);
    begin
    aa := INSERT_MAILING_LIST_FUN('TEST', 'TEST', 'Y');
    end;你执行上面的,aa按你的类型定义!