指尖残雪 2017-12-11 08:16 采纳率: 0%
浏览 2803
已结题

oracle查询字段在where中无效

当我使用如下语句的时候没有任何问题,可以查询出2条数据

 SELECT 
       dd_isShare,
       'aaa' ledger_id,
       'FK01' coa_type_code

  from v_cem_voucher_detail 
 where md_id = 'BI2017120700072938'
   and (instr('@(N)', '@(' || dd_isShare || ')') > 0 AND
       instr('@(SY2017090700059015)', '@(' || dd_invoiceType || ')') = 0)

但是当我使用如下语句:

SELECT 
       --dd_isShare,
       'aaa' ledger_id,
       'FK01' coa_type_code

  from v_cem_voucher_detail 
 where md_id = 'BI2017120700072938'
   and (instr('@(N)', '@(' || dd_isShare || ')') > 0 AND
       instr('@(SY2017090700059015)', '@(' || dd_invoiceType || ')') = 0) 

把dd_isShare和dd_invoiceType中2个字段在select注释掉,就查询不到任何数据,v_cem_voucher_detail 是一个视图,而且该情况在生产上出现,测试服务器上没有问题,个人觉得很奇怪,已经排除是语句或者视图的问题,剩下的不知道还有什么情况?

其中dd_isShare 是一个子查询的转换(decode((select count(1) from t_aaa_es es where d.no = es.connno and d.mainid = es.mainid and d.corpid = d.corpid),0,'N','Y')) dd_isShare,

求解答

  • 写回答

6条回答

  • Jalen备忘录 2017-12-11 08:39
    关注

    我也没遇到过,可以尝试参考一下以下:
    原因:
    1. 判断生产数据是否存在?
    2. 改成多行注释/* comment */试试;
    3. 去掉这两个注释掉的字段,再查看试试;
    排查一下

    评论

报告相同问题?

悬赏问题

  • ¥15 高价求中通快递查询接口
  • ¥15 解决一个加好友限制问题 或者有好的方案
  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?