存储过程中动态拼接sql,拼接单引号问题

本文介绍了一个Oracle存储过程`mergerOrder`,该过程动态拼接SQL查询语句来处理传入的参数。当`v_ids`、`v_productCode`或`v_productCateCode`不为空时,会在查询条件中添加相应的过滤。在拼接字符串时,特别处理了单引号以避免SQL注入问题。存储过程最后打开游标执行SQL并打印结果。
摘要由CSDN通过智能技术生成


create or replace procedure mergerOrder(
      v_ids in varchar2,
      v_productCode in varchar2,
      v_productCateCode in varchar2) is
      type cur_type is ref cursor;
      cur_policy cur_type;

      rec_policy ecc_pln.order_detail2%rowtype;
      sqlStr varchar2(500);

begin
       sqlStr := 'select id ,order_number from ecc_pln.order_detail2 d where 1=1';
         if v_ids is not null then
           sqlStr := sqlStr || ' and d.id in( SELECT COLUMN_VALUE FROM TABLE(jomoo_oms.SPLIT('''||v_ids||''')))';
         end if;
         if v_productCode is not null then
           sqlStr := sqlStr || ' and d.material_code=

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值