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,帮忙看看什么问题?
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;
要指明读取的数据放在哪里,可以是游标,也可以是具体类型的变量。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>
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;语法通过, 代码有问题吗,为什么执行了,没有任何效果
d_result date ;
begin
select sysdate into d_result from dual;
end;
create or replace procedure sp_t
is
begin
select * from user_tables;
end;
这个不是一样的意思,错在哪里?
MSSql,好好的,非要换Oracle,新手,很郁闷啊,看了语法,可没有这个说明
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;
2 is
3 t date;
4 begin
5 select sysdate into t from dual;
6 end;
7 /
Procedure created
SQL>
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;语法通过,
代码有问题吗,为什么执行了,没有任何效果