当前位置: 代码迷 >> Oracle开发 >> oracle存储过程中字符串表达式的判断和字符串连接的有关问题
  详细解决方案

oracle存储过程中字符串表达式的判断和字符串连接的有关问题

热度:93   发布时间:2016-04-24 06:32:11.0
oracle存储过程中字符串表达式的判断和字符串连接的问题
写了这样一个存储过程:
  PROCEDURE GetChildrenInfoFromLiuDong(sfzh in varchar2,gender in varchar2,Re_CURSOR OUT T_CURSOR)
       IS
           ssql varchar2(1000);
           V_CURSOR T_CURSOR;  //自定义的游标
       BEGIN
           if gender='男' then
             ssql:='select distinct b.name,b.pid,b.GENDER,b.DOB  from T_BASEDATA_LiuDongRK b where  b.FQ_GMSFHM = '||''''||sfzh||'''';
           else
             ssql:='select distinct b.name,b.pid,b.GENDER,b.DOB  from T_BASEDATA_LiuDongRK b where  b.MQ_GMSFHM = '||''''||sfzh||'''';  
           end if;
           OPEN V_CURSOR FOR
             ssql;
             Re_CURSOR := V_CURSOR;
       END;  
问题:
1、明明传的参数gender的值为'男',但测试时判断转到else下面的语句;
2、 '||''''||sfzh||''''这个得到的ssql字符串是''xxxxxx'',就是多了一个单引号,要怎么样得到一个单引号的字符串;
请帮我解决一下,谢谢!
------解决思路----------------------
1、你的if 和else两个语句不是一样的吗?
2、这样拼接没啥问题,拼接的动态语句中的两个引号,实际执行时是按一个引号去处理的,看了下你这么写应该没啥问题
  相关解决方案