+ -
当前位置:首页 → 问答吧 → 你们有没有遇到过这样的问题?缺失右括号的

你们有没有遇到过这样的问题?缺失右括号的

时间:2011-09-08

来源:互联网

00907的错误。。重点是。。。应用端生成报表时报这个错误,将报表的SQL提出来在PL/SQL上跑就不报错。。。

经过查了半天。。发现某些SQL的个别字段会导致应用端报这个错误,比如下面2个SQL中标红的字段改成1或其他简单的写法就没问题:

SQL1:

SELECT
  a.first_result first_result,
  nmosdb.to_name(a.region_id) alm1,
  sum(total_alarm_num) alm2,
  sum(CASE WHEN a.ORG_SEVERITY=1 THEN a.total_alarm_num ELSE 0 END) alm3,
  sum(CASE WHEN a.ORG_SEVERITY=2 THEN a.total_alarm_num ELSE 0 END) alm4,
  sum(CASE WHEN a.ORG_SEVERITY=3 THEN a.total_alarm_num ELSE 0 END) alm5,
  SUM(CASE WHEN b.ACTIVE_STATUS =1 and b.ORG_SEVERITY in (1,2,3) THEN 1 ELSE 0 END) alm6,
  SUM(CASE WHEN b.ACTIVE_STATUS =1 and b.ORG_SEVERITY =1 THEN 1 ELSE 0 END) alm7,
  SUM(CASE WHEN b.ACTIVE_STATUS =1 and b.ORG_SEVERITY =2 THEN 1 ELSE 0 END) alm8,
  SUM(CASE WHEN b.ACTIVE_STATUS =1 and b.ORG_SEVERITY =3 THEN 1 ELSE 0 END) alm9,  
  count(DISTINCT a.int_id) alm10,
  ROUND(SFB_DIVFLOAT_1(sum(total_alarm_num),count(DISTINCT a.int_id),0,0),2) alm11,
  sum(alarm_num_special) alm12,
  sum(CASE WHEN a.ALARM_RESOURCE_STATUS >= 1500 AND a.ALARM_RESOURCE_STATUS < 1600 THEN a.total_alarm_num ELSE 0 END) alm13,
  A.FIRST_RESULT T1,
  10003 D1 ,
  A.REGION_ID D2
FROM
  。。。


SQL2:
  SELECT
  row_number() over(order by sum(total_alarm_num) desc) num,  a.first_result first_result,
  a.STANDARD_ALARM_ID alm1,
  a.ALARM_TITLE_TEXT alm2,
  sum(a.total_alarm_num) alm3
FROM
  。。。

作者: 风铃中の鬼   发布时间: 2011-09-08

我无法定位错误原因。。。大概感觉但凡字段复杂一点就会出错。。。

作者: 风铃中の鬼   发布时间: 2011-09-08

应用端生成报表时报这个错误,将报表的SQL提出来在PL/SQL上跑就不报错。。。

和你的驱动有关系?

作者: dingjun123   发布时间: 2011-09-08



QUOTE:原帖由 dingjun123 于 2011-9-8 10:43 发表
应用端生成报表时报这个错误,将报表的SQL提出来在PL/SQL上跑就不报错。。。

和你的驱动有关系?

理论上时这样。。。公司自己研发的一套报表引擎。。但是在我自己的测试服务器上跑就没问题。。移到现场那边就给搞出这么个问题来。。我认为是WEB端得问题。。。。想问问谁在编写类似代码的时候遇到过。。

作者: 风铃中の鬼   发布时间: 2011-09-08

测试的数据库版本是否和现场的一致?

作者: dingjun123   发布时间: 2011-09-08

热门下载

更多