Oracle 如何给存储过程赋值
我现在定义了一个存储过程,有一个参数,是varchar(20)类型的,我在调用的时候,能不能这样给它赋值:issuccess('123456789');...
我现在定义了一个存储过程,有一个参数,是varchar(20)类型的,我在调用的时候,能不能这样给它赋值:issuccess('123456789');
展开
3个回答
展开全部
如果存储过程的名字是issuccess
可以这样定义入参 issuccess(PRM_I in varchar2).
调用的时候就可以:
issuccess('123456789');
作为传入的值来处理。
如果需要把存储过程中处理的结果返回出来,那么可以定以OUT 参数:
issuccess(PRM_I in varchar2,PRM_O OUT VARCHAR).
调用之前准备一个变量
VS_OUT varchar2(20);
调用时:
issuccess('123456789',VS_OUT).
过程里面修改PRM_O的值,过程执行完成后可以通过VS_OUT捕获。
可以这样定义入参 issuccess(PRM_I in varchar2).
调用的时候就可以:
issuccess('123456789');
作为传入的值来处理。
如果需要把存储过程中处理的结果返回出来,那么可以定以OUT 参数:
issuccess(PRM_I in varchar2,PRM_O OUT VARCHAR).
调用之前准备一个变量
VS_OUT varchar2(20);
调用时:
issuccess('123456789',VS_OUT).
过程里面修改PRM_O的值,过程执行完成后可以通过VS_OUT捕获。
展开全部
应该是定义一个函数,存储过程是不需要输入输出的,函数可以带输入,必须输输出。
CREATE OR REPLACE FUNCTION issuccess (In_char IN VARCHAR2)
RETURN VARCHAR2
IS
tmpVar NUMBER;
BEGIN
tmpVar :=0;
.......................
RETURN TO_CHAR(tmpVar);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
WHEN OTHERS
THEN
-- Consider logging the error and then re-raise
RAISE;
END issuccess ;
/
中间过程自己填。
可以赋值使用:V_SCC :=issuccess('123456789');
也可以:select issuccess('123456789') from dual;
CREATE OR REPLACE FUNCTION issuccess (In_char IN VARCHAR2)
RETURN VARCHAR2
IS
tmpVar NUMBER;
BEGIN
tmpVar :=0;
.......................
RETURN TO_CHAR(tmpVar);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
WHEN OTHERS
THEN
-- Consider logging the error and then re-raise
RAISE;
END issuccess ;
/
中间过程自己填。
可以赋值使用:V_SCC :=issuccess('123456789');
也可以:select issuccess('123456789') from dual;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
赋值最简单:issuccess = ‘123456789‘;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询