本帖最后由 xierui4056 于 2011-05-27 09:24:30 编辑

解决方案 »

  1.   

    你上面写的直接可以执行,因为你写的是代码块
    如果你写的是function的话
    用select function(1) from dual;或者exec function_name(参数)可以执行
    如果是procedure的话,必须是exec procedure_name(parameter)这样执行我上面所说的都是在sqlplus下执行,或者客户端
      

  2.   

    这个是立即执行的吧,按F8就已经执行了,可以在输出tab页看输出结果
      

  3.   


    --你这只是一个匿名块,它的生存期只是执行期间,执行过后就不可以调用。
    --你可以建立一个过程:
    create or replace procedure pro_num
    declare
           num_new int ;
    begin
         num_new := 123;  
         dbms_output.put_line('num1:' || num_new);    
    end;
    end pro_num;
    set serveroutput on;
    exec pro_num;
      

  4.   


    SQL> create or replace procedure pro_num
      2  as
      3    num_new int;
      4  begin
      5       num_new :=123;
      6       dbms_output.put_line('num_new:'||num_new);
      7  end pro_num;
      8  /
     
    Procedure created
     
    SQL> set serveroutput on;
    SQL> exec pro_num;
     
    num_new:123
     
    PL/SQL procedure successfully completed
      

  5.   

    有pl/sql的话,直接新建一个命令窗口,将上面代码粘贴,并在最后加个“/”,然后回车就行。注意这以前需要执行"set serverout on"命令。