刚接触ORACLE,,问个很菜鸟的问题,谢谢大家了create or replace procedure SPA Is
begin
 
DELETE  FROM NAME;INSERT INTO  NAME VALUE(A,B,C,D)
SELECT A,B,C,D FROM NAME2;end SPA;按F8提示编译成功。怎么能像SQL SERVER里一样执行出结果集啊
还有就是在SQL窗口中执行  EXEC SPA; 报错:SQL语句无效但是将语句直接拿出来再SQL窗口中执行又是成功的。。郁闷中。。

解决方案 »

  1.   

    1,PL SQL 语句块无法像SQL一样返回结果集。但是可以通过DBMS_OUTPUT包打印出来。
    2,如果需要执行存储过程,你需要在command window里面执行,或者放在PL/SQL 语句语句块里面
    3,楼主贴出来的代码是有问题的, PL SQL中的 select后面必须要有into连接,来接受返回值http://topic.csdn.net/u/20100113/15/24EF20C3-65B9-4B50-A0AA-D6A188B54BDA.html
    附上pl sql 教程,入门很简单,楼主先耐心学习下吧。
      

  2.   

    不好意思 没仔细看
    楼主这里的select是没有问题的
      

  3.   

    谢谢啊,我试了下,
    还是不太懂,
    我把
    DELETE FROM NAME;INSERT INTO NAME VALUE(A,B,C,D)
    SELECT A,B,C,D FROM NAME2;放在command window里面执行还是有问题, 执行EXEC SPA;也还是有问题
      

  4.   

    1、在命令窗口里面execute SPA();
    2、在SQL窗口里面就要写块:
    begin
      SPA;
    end;
      

  5.   

    create or replace procedure spa is
    begin
      delete from name;
      insert into name  select * from name2;
    end spa;
    应该是没有问题的
      

  6.   


    create or replace procedure SPA Is
    begin  DELETE FROM NAME;
      INSERT INTO NAME(A, B, C, D)    --去掉value
        SELECT A, B, C, D FROM NAME2;
      COMMIT; --忘了commit;
    end SPA;
      

  7.   

    语句是没有任何问题没有commit原因。
      

  8.   

    command窗口和SQL窗口有所不同的
      

  9.   

    你这是insert 语句你要什么结果集?
      

  10.   

    1、在命令窗口里面execute SPA();   ----这个还是没执行出来
    2、在SQL窗口里面就要写块:          ----按这种方法OK了,
    begin
      SPA;
    end; 谢谢大家啊!
      

  11.   

    如果封装在包时的,执行时还要加上包名,如:
    BEGIN
    PKG_ATT.SP_Attendance;
    END;