首先定义一个存储过程
这是一个可以随机生成一个四位验证码的过程
IDM为输入参数
DTM为输出参数
create or replace procedure C_CODE_BUILD(IDM in varchar2, DTM out long) is
begin
UPDATE USER_INFO
SET C_CODE = trunc(DBMS_RANDOM.value(1000,10000)) //随机生成一个四位数
WHERE ID = IDM;
COMMIT;
SELECT C_CODE INTO DTM
FROM USER_INFO
WHERE ID = IDM;
end C_CODE_BUILD;
在PB中调用
我只用在存储过程括号中加入传入参数就可以了,传出参数可不用添加
一定要注意的一点!
声明存储过程一定要加分号“ ;”, 不然会出现很大的差错,而且PB系统也不会报错,但是会导致你声明的存储过程跑不起来。
执行语句也要加分号!
最后使用fetch into 获取一下传出参数就好了
long ls_code
string pmid
DECLARE myp PROCEDURE FOR
C_CODE_BUILD(:pmid); //一定要加分号
EXECUTE myp;
IF sqlca.SQLCode <> 0 THEN
MessageBox("提示",sqlca.SQLErrText)
CLOSE myp;
ELSE
FETCH myp Into :ls_code;
END IF
CLOSE myp;