Oracle存储过程传参数问题

在存储过程当中传参数的时候可以使用



IF SDATE IS NOT NULL OR EDATE IS NOT NULL THEN
V_SQL := V_SQL || ' AND K.LJFRQ BETWEEN ''' || SDATE ||''' AND ''' || EDATE || '''';
END IF;


但是太多的引号让人头疼。可以使用如下的例子当中的传参方法解决这个问题


PROCEDURE QUERY_PAYFEE_REPEAL(V_YWLSH IN VARCHAR2,V_YHBH IN VARCHAR2,V_BIZ_TYPE IN NUMBER,V_SDATE IN VARCHAR2,V_EDATE IN VARCHAR2,VPAGES IN NUMBER,
VPAGEE IN NUMBER,
VRS OUT PAY_CURSOR) IS
V_SQL VARCHAR2(20000) := 'SELECT * FROM (SELECT A.*,ROWNUM RN FROM ( ';
BEGIN
IF V_BIZ_TYPE =1 THEN
V_SQL:=V_SQL|| 'SELECT FXZT,AGENT_ID,JFRQ,TERM_ID,YWLSH,YHMC,OPER_TYPE,YHBH,SJJE,OPTOR_ID FROM T_PAYFEE_POWER T WHERE (YWLSH=:V_YWLSH OR :V_YWLSH IS NULL) AND (YHBH=:V_YHBH OR :V_YHBH IS NULL) AND JFRQ BETWEEN :V_SDATE AND :V_EDATE AND RESULT_CODE= 0 AND FXZT <>0 ';
END IF;
V_SQL:=V_SQL||') A WHERE ROWNUM <:VPAGEE ) WHERE RN >=:VPAGES ';
DBMS_OUTPUT.PUT_LINE(V_SQL);
OPEN VRS FOR V_SQL USING V_YWLSH,V_YWLSH,V_YHBH,V_YHBH,V_SDATE,V_EDATE,VPAGEE,VPAGES;
END QUERY_PAYFEE_REPEAL;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值