oracle Plsql SQL窗口执行存储过程出错00900 1C

创建存储过程语句:
create procedure MailingListCount(
ListCount OUT INTERGER
)
IS
v_row INTERGER;
BEGIN
select count(*) INTO v_rows
FROM Customers
WHERE NOT cust_eamil IS NULL;
ListCont :=v_rows;
END;
执行存储过程语句:
var ReturnValue NUMBER
EXEC MailingListCount(:ReturnValue);
SELECT ReturnValue;
执行环境:PL/SQL SQL窗口
报错信息:
ora-00900:invalid sql statement
图片说明
ora-00923:FROM keword not found where expected
图片说明

2个回答

WHERE NOT cust_eamil IS NULL; 这句语法错误!应该是WHERE cust_eamil IS NOT NULL;

chuijinbao
吹进宝 非常感谢朋友能回复我的问题,我正在看《SQL必知必会》这本书,这个是书中第19章关于存储过程的例子。where not cust_email is null是书中的原话,我特意找了下英文原版,也是这样。所以我怀疑是不是这两种写法都是可以。
2 年多之前 回复

有两处理错误:1.WHERE NOT cust_eamil IS NULL,正确的写法:where cust_email is not null;

                    2.调用的时候有错误:
                                            declare
                                                 ReturnValue number;
                                            begin
                                               ReturnValue :=1;
                                                MailingListCount(ReturnValue);
                                            end;
chuijinbao
吹进宝 非常感谢朋友能回复我的问题,我正在看《SQL必知必会》这本书,这个是书中第19章关于存储过程的例子。where not cust_email is null是书中的原话,我特意找了下英文原版,也是这样。所以我怀疑是不是这两种写法都是可以。
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问