我用plsql创建的存储过程为啥是无效的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我用plsql创建的存储过程为啥是无效的?相关的知识,希望对你有一定的参考价值。

我用plsql为oracle创建了一个存储过程 而且创建成功了
CREATE OR REPLACE PROCEDURE test
is
begin
select * from ccdust.class;
end;
我用
exec test; 调用这个存储过程却显示无效sql语句 然后我在左边导航栏里存储过程中找到test点右键选择测试 结果弹出 test is invalid

这是怎么回事

你在编写完存储过程后,有没有打“\”这是代表预编译这个存储过程,然后你在打
exec test试试
参考技术A 过程里的语句有问题、
是不是表有问题?
还是你当前的用户没有调用过程的权限本回答被提问者和网友采纳
参考技术B 你用java调用执行吧,我也是遇到这个问题,jaa调用可以,plsql就不行

Oracle存储过程执行报错:无效的sql语句。 在plsql中: execute proc_test_exit_when;

create or replace procedure proc_test_exit_when is
i number;
begin
i:=0;
LOOP
Exit When(i>5);
Dbms_Output.put_line(i);
i:=i+1;
END LOOP;
end proc_test_exit_when;

在pl sql 中要用command window(命令窗口)来执行这个存储过程,不能在sql window中直接执行的追问

没有返回结果啊

追答

在编辑器中输入:

set serveroutpu on;
execute proc_test_exit_when;
/

输入完/后按执行键
这是是显示dbms_output的输出的

参考技术A begin
proc_test_exit_when;
end;

这样可以执行吗追问

一样没有结果返回.我想要的是这种效果

参考技术B 在创建后面不能有is

以上是关于我用plsql创建的存储过程为啥是无效的?的主要内容,如果未能解决你的问题,请参考以下文章

Oracle存储过程执行报错:无效的sql语句。 在plsql中: execute proc_test_exit_when;

Plsql developer 工具创建存储过程,必须要在package 文件下创建存储声明 pa

为啥调用存储过程不返回任何东西?

关于plsql!!!

在PLSQL中,存储过程的输出参数最大支持多大

『ORACLE』 PLSQL创建存储过程(11g)