我正在尝试创建一个列出表的所有内容的过程,但 oracle 告诉我该过程存在编译错误。我在 SQL plus 上运行。有任何想法吗?
CREATE OR REPLACE procedure payrollproc
BEGIN
SELECT * FROM payroll;
END;
CREATE OR REPLACE procedure payrollproc as
BEGIN
for c_rec in ( SELECT * FROM payroll)
Loop
dbms_output.put_line(c_rec.col1 || ' ' || c_rec.col2 || ' ' || ......);
End loop;
END;
/
但是,我建议只运行 select 语句,存储过程对于这样一个基本功能来说工作量太大了。
错误消息中的答案是正确的:您在 BEGIN 之前缺少关键字。如果你在 BEGIN 之前加上 IS,它将编译。有关更多详细信息,请参见此处。此外,您将需要一个光标来查看详细信息。祝你好运。