指尖残雪 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 关于#flink#的问题:关于docker部署flink集成hadoop的yarn,请教个问题flink启动yarn-session.sh连不上hadoop
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题