为什么Oracle存储过程建成功了,执行存储过程却报错

存储过程如下:create or replace procedure edpsc2.exe7(V_col in number, V_play out varchar2) ISbegin case v_col when 1 then v_play := 'a'; when 2 then 'b'; else 'c'; end case; dbms_output.put_line(v_play);end;执行存储过程语句:declare play varchar2(50);begin edpsc2.exe7(2, play); dbms_output.put_line(play);end;如图是报错具体内容

你的存储过程应该是编译报错,虽然创建了但是编译有错误。
改了下你的程序:
create or replace procedure edpsc2exe7(V_col in number,
V_play out varchar2)
IS
begin
case V_col
when 1 then
V_play := 'a';
when 2 then
V_play := 'b';
else
V_play := 'c';
end case;
dbms_output.put_line(V_play);
end ;
温馨提示:内容为网友见解,仅供参考
无其他回答

为什么Oracle存储过程建成功了,执行存储过程却报错
你的存储过程应该是编译报错,虽然创建了但是编译有错误。改了下你的程序:create or replace procedure edpsc2exe7(V_col in number,V_play out varchar2)IS begin case V_col when 1 then V_play := 'a';when 2 then V_play := 'b';else V_play := 'c';end case;dbms_output.p...

为什么存储过程语法正确,但执行报错,说是没有参数
过程或函数 'test_proc' 需要参数 '@test1',但未提供该参数。如果你 exec test_proc 1 消息 201,级别 16,状态 4,过程 test_proc,第 0 行 过程或函数 'test_proc' 需要参数 '@test2',但未提供该参数。因为我这个存储过程定义了两个参数 所以你调用的时候必须写两个参数 比如:exec test...

执行存储过程报错,表或视图不存在,但是把出错的那句插入语句拷出来单独...
检查一下执行过程和语句时,登录的用户是否是同一个,有可能不是同一个用户,执行过程的用户没有这张表或视图,也没有访问其他用户的权限。

写了个存储过程,编译的时候通过了,执行的时候报错 提示execute immediat...
create or replace procedure pro_t is cursor c is select table_name from user_all_tables where table_name in (select table_name from user_tab_columns where column_name = 'POSITION_ID');tablename varchar2(100);strinsert varchar2(1000);begin open c;loop fetch c into tablename...

oracle的存储过程执行过程中报错:ORA-01555:
回滚段太小了,一些数据的前镜像已经被覆盖,但是现在又要获取该镜像,找不到时就抱着错。oracle 建议 可适当调整 undo_retention 值 我记得好像是,回滚段太小了,一些数据的前镜像已经被覆盖,但是现在又要获取该镜像,找不到时就抱着错

已经建立存储过程 却报错找不到存储过程
你的存储过程名是killspid,执行就要用exec killspid,该是在begin set @temp='kill '+rtrim(@spid)exec(@temp)这里是exec killxx,当然找不到咯,执行的存储过程名不能乱改。我没仔细看,你是不是想用@spid作为存储过程的参数?那就改成begin set @temp='killspid '+rtrim(@spid)exec(@temp)...

oracle存储过程提示编译完成但存在错误,如何查看错误
1、首先打开PL\/SQL Developer软件,新建sql窗口。2、打开修改oracle存储过程,该存储过程有一个输入参数(pid)跟一个输出参数(name),即通过用户id查询用户名称并将名称返回。3、调试存储过程,找到刚刚修改的存储过程右击并点击【test】选项。4、在打开的窗口内修改id值并点击左上角的倒三角形图标开始...

ORACLE 存储过程执行报错
存储过程里面不能直接执行ddl语句,比如创建表,删除表等,如果要使用,建议使用动态sql 例如:v_sql :='create table ...'然后 execute immediate v_sql;再加上 commit;这样就行了

oracle定时执行存储过程时报错
Begin Sys.Dbms_Job.Isubmit(Job => 10,What => 'insertSysDate;',Next_Date => Sysdate,Interval => 'sysdate+1\/1440');Commit;End;--JOB号10 是自己指定的,也可以指定其他不存在的随便一个不超过1000的数字。

存储过程 执行失败
我只写过ORACLE的标准过程.关键字和你这个有些不大一样.所以只能大概给你参谋一下.从结构上看,定义语句过后的执行体,应当由"BEGIN"和"end;"包含;在过程的最后应当显示的返回RETURN你的COUNT(*)的结果.不然,很可能就是返回-1了,也可能或许是其它随机数.一般的做法,再定义一个返回的参数(两个输入,...

相似回答