create or replace procedure  Pro_ad
is 
begin
select sysdate from dual;
end;执行出现如下错误:
[Error] PLS-00428 (80: 1): PLS-00428: an INTO clause is expected in this SELECT statementDBMS为Toad for Oracle,帮忙看看什么问题?

解决方案 »

  1.   

    create or replace procedure Pro_ad is
    d_result date ;
    begin
      select sysdate into d_result from dual;
    end;
      

  2.   


    create or replace  procedure sp_t
    is
    begin
        select * from user_tables;
    end; 
    这个不是一样的意思,错在哪里?
      

  3.   

    oracle 程序体中,select 语句的结果必须要声明一个变量或者游标来保存结果。这一点和  SQL Server 不太一样
      

  4.   

    哦,这个样子的啊,就是说,查询的结果是个集合,必须要配合游标的,对吗?
    MSSql,好好的,非要换Oracle,新手,很郁闷啊,看了语法,可没有这个说明
      

  5.   

    CREATE OR REPLACE PROCEDURE pst
    IS
      TYPE cur_type IS REF CURSOR;
      cur_info   cur_type;
    BEGIN
      IF cur_info%ISOPEN THEN
        CLOSE cur_info;
      END IF;
      OPEN cur_info FOR SELECT * FROM tab;
    END;
      

  6.   

    要指明读取的数据放在哪里,可以是游标,也可以是具体类型的变量。SQL> create or replace procedure Pro_ad
      2  is
      3         t date;
      4  begin
      5  select sysdate into t from dual;
      6  end;
      7  /
     
    Procedure created
     
    SQL> 
      

  7.   

    CREATE OR REPLACE PROCEDURE sp_get_student
    IS
       CURSOR cur_student
       IS
          SELECT name, no FROM student;   c_name   student.name%TYPE;
         c_no     student.no%TYPE;--   c_name   VARCHAR2 (20);
    --   c_no     NUMBER;
    BEGIN
       OPEN cur_student;   LOOP
          FETCH cur_student
          INTO c_name, c_no;      EXIT WHEN cur_student%NOTFOUND;      IF cur_student%FOUND
          THEN
             DBMS_OUTPUT.put_line (c_name || '-->' || c_no);
          END IF;
       END LOOP;   CLOSE cur_student;
    END;
    /EXEC sp_get_student;语法通过,
    代码有问题吗,为什么执行了,没有任何效果