首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

oracle存储过程失误

2013-03-26 
oracle存储过程出错CREATE OR REPLACE PROCEDURE DeleteFolder(delId IN INT, IDS OUT INT)ASBEGINselect

oracle存储过程出错
CREATE OR REPLACE PROCEDURE DeleteFolder(delId IN INT, IDS OUT INT)  AS
BEGIN
   select count(*) into IDS from DOCTREE where PARENTID=delId;
   IF IDS==0 THEN
   delete from DOCTREE d where d.ID=delId;
   END IF
END DeleteFolder;

在oracle sql developer中编译
提示:
“Warning: 执行完毕, 但带有警告”
oracle的存储过程不是太熟
望指教! 1 楼 andyandyandy 2007-03-29   手头没环境,运行不了
看是没看出什么毛病
建议用pl/sql developer工具跟踪一下 2 楼 andyxu 2007-03-29    
  有两个错误.
  1.IF IDS==0 THEN
    存储过程中等于应该为"="
  2.END IF
    没有";"结束符 3 楼 xuxl79 2007-03-29   改成如下代码,在sqlplus中,提示
CREATE OR REPLACE PROCEDURE DeleteFolder(delId IN INT, IDS OUT INT)  AS
BEGIN
   select count(*) into IDS from DOCTREE where PARENTID=delId;
   IF IDS=0 THEN
   delete from DOCTRE d where d.ID=delId;
   END IF;
END DeleteFolder;
提示“警告: 创建的过程带有编译错误。”
而且试过了,把IF语句去掉 ,就ok了
   IF IDS=0 THEN
   delete from DOCTRE d where d.ID=delId;
   END IF;

我觉得挺简单的阿,不知道哪里不对了 4 楼 xuxl79 2007-03-29   知道哪里出错了!
下面是正确的
CREATE OR REPLACE PROCEDURE DeleteFolder(delId IN INT, IDS OUT INT) 
AS BEGIN
 
   select count(*) into IDS from DOCTREE where PARENTID=delId;
   IF IDS=0 THEN
   BEGIN
delete from DOCTREE where RID=delId;
   END;
   END IF;
END DeleteFolder;

我不该用“ID”作字段名(把ID换成了RID)
我的异常网推荐解决方案:oracle存储过程,http://www.myexception.cn/oracle-develop/177537.html

热点排行