function 直接调用一个存储过程,  不需要传递参数,也无返回值,怎么写?
初学,多谢!

解决方案 »

  1.   


    --一個簡單的沒有參數,也沒有返回值的存儲過程
    create or replace procedure proc1 is
    begin
      dbms_output.put_line('Hello world');
    end;--一個簡單的函數
    create or replace function func1 return number is
      retval number;
    begin
      proc1;
      retval := 100;
      return retval;
    end;--測試的匿名過程
    declare
      n number;
    begin
      n := func1;
      dbms_output.put_line(n);
    end;DBMS output:
    ---------------------------
    Hello world
    100
      

  2.   

    函数与存储过程的调用方式:调用存储过程必须以语句方式
    begin
        proc;--整个是一个语句
    end;函数的调用方式为表达式
    begin
        i := func();--func();--func()为一个表达式
    end;