怎样在sql语句中oracle调用存储过程

CREATEORREPLACEPROCEDURECALLCENTER_CHECK_CALLERID(MobileINVARCHAR2,idoutVARCHAR2)ASBE... CREATE OR REPLACE
PROCEDURE CALLCENTER_CHECK_CALLERID(Mobile IN VARCHAR2,id out VARCHAR2)
AS
BEGIN
SELECT "Id" INTO id FROM "User_Info" WHERE "Mobile" = Mobile;
END CALLCENTER_CHECK_CALLERID;
我是在Navicat上调用的
展开
 我来答
会勒他4
推荐于2017-09-18 · TA获得超过131个赞
知道答主
回答量:68
采纳率:0%
帮助的人:50.6万
展开全部

sql语句中只能执行函数,不能执行存储过程。比如

select 函数(参数) from dual

你说的是在Navicat工具里执行存储过程吗?

试试这个

declare
id varcahr2(100);
call CALLCENTER_CHECK_CALLERID(mobile,id);
end;
更多追问追答
追问
就是在Navicat上的查询执行
追答

你这个过程是有out参数的,所以需要用语句块扩起来。上面的写法有问题。应该是这样

没有out参数的,可以直接call

call CALLCENTER_CHECK_CALLERID(入参);

有out参数的的

declare
mobile varchar2(100);
id varcahr2(100);
begin
 mobile:='你的入参';
 CALLCENTER_CHECK_CALLERID(mobile,id);
end;

你试试看

奔驰M888
2009-04-16 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1846
采纳率:0%
帮助的人:2700万
展开全部
我试验过了,就是exec 存储过程名或者execute 存储过程名(参数),请你在仔细确认一下,你的存储过程名写没写对呀,或者你没有进入sqlplus中?

----
以上,希望对你能有帮助。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式