Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查询交互式报告失败,突出显示行css条件_Css_Oracle_Oracle Apex - Fatal编程技术网

查询交互式报告失败,突出显示行css条件

查询交互式报告失败,突出显示行css条件,css,oracle,oracle-apex,Css,Oracle,Oracle Apex,我使用下面的查询根据列值突出显示状态列。 它失败,在else块中出错: ORA-20999:无法解析SQL查询 ORA-06550:第12行第15列:ORA-00923:未在预期位置找到FROM关键字 哪里出了问题?似乎案例(选择状态)会导致问题,因为 它以逗号结尾,后面什么都没有 您将整个案例构造命名为“PT\u IT\u ISSUES”。“STATUS”,这是一个列名;您应该使用别名,例如简单地使用状态 大概是这样的: SELECT "P_IT_ISSUES"."ISSUE_SUMMAR

我使用下面的查询根据列值突出显示状态列。 它失败,在else块中出错: ORA-20999:无法解析SQL查询 ORA-06550:第12行第15列:ORA-00923:未在预期位置找到FROM关键字


哪里出了问题?

似乎
案例(选择状态)会导致问题,因为

  • 它以逗号结尾,后面什么都没有
  • 您将整个案例构造命名为
    “PT\u IT\u ISSUES”。“STATUS”
    ,这是一个列名;您应该使用别名,例如简单地使用
    状态
大概是这样的:

SELECT "P_IT_ISSUES"."ISSUE_SUMMARY" AS "ISSUE_SUMMARY",
       "P_IT_PEOPLE"."PERSON_NAME" AS "IDENTIFIED_BY",
       "P_IT_ISSUES"."IDENTIFIED_DATE" AS "IDENTIFIED_DATE",
       "P_IT_DEPARTMENTS"."DEPT_NAME" AS "DEPT_NAME",
       DECODE ("P_IT_PEOPLE_1"."PERSON_NAME",
               NULL, 'Unassigned',
               "P_IT_PEOPLE_1"."PERSON_NAME")
          AS "ASSIGNED_TO",
       CASE
          WHEN "P_IT_ISSUES"."STATUS" = 'Open'
          THEN
                '<aaab style= "    color: green; " >'
             || TO_CHAR ("P_IT_ISSUES"."STATUS", '999,999,999,999,999')
             || '</aaab>'
          WHEN "P_IT_ISSUES"."STATUS" = 'On-Hold'
          THEN
                '<aaab style= "    color: red; " >'
             || TO_CHAR ("P_IT_ISSUES"."STATUS", '999,999,999,999,999')
             || '</aaab>'
          ELSE
                '<aaab style= "    color: red; " >'
             || TO_CHAR ("P_IT_ISSUES"."STATUS", '999,999,999,999,999')
             || '</aaab>'
       END AS status                                                   -> this!
  FROM "P_IT_PEOPLE" "P_IT_PEOPLE_1",
       "P_IT_DEPARTMENTS" "P_IT_DEPARTMENTS",
       "P_IT_PEOPLE" "P_IT_PEOPLE",
       "P_IT_ISSUES" "P_IT_ISSUES"
 WHERE     "P_IT_ISSUES"."IDENTIFIED_BY_PERSON_ID" =
              "P_IT_PEOPLE"."PERSON_ID"
       AND "P_IT_ISSUES"."ASSIGNED_TO_PERSON_ID" =
              "P_IT_PEOPLE_1"."PERSON_ID"(+)
       AND "P_IT_ISSUES"."RELATED_DEPT_ID" = "P_IT_DEPARTMENTS"."DEPT_ID"
SELECT i.issue_summary,
       b.person_name AS identified_by,
       i.identified_date,
       d.dept_name,
       DECODE (a.person_name, NULL, 'Unassigned', a.person_name)
          AS assigned_to,
       CASE
          WHEN i.status = 'Open'
          THEN
                '<aaab style= "    color: green; " >'
             || TO_CHAR (i.status, '999,999,999,999,999')
             || '</aaab>'
          WHEN i.status = 'On-Hold'
          THEN
                '<aaab style= "    color: red; " >'
             || TO_CHAR (i.status, '999,999,999,999,999')
             || '</aaab>'
          ELSE
                '<aaab style= "    color: red; " >'
             || TO_CHAR (i.status, '999,999,999,999,999')
             || '</aaab>'
       END
          AS status
  FROM p_it_issues i
       JOIN p_it_departments d ON i.related_dept_id = d.dept_id
       JOIN p_i_people b ON i.identified_by_person_id = b.person_id
       LEFT JOIN p_it_people a ON a.person_id = i.assigned_to_person_id;
选择“发布问题”,“发布摘要”作为“发布摘要”,
“P_IT_PEOPLE”.“人名”为“识别人”,
“P_IT_ISSUES”。“已确定日期”为“已确定日期”,
“P_IT_部门”。“部门名称”作为“部门名称”,
解码(“P_IT_PEOPLE_1”。“人名”,
NULL,'未分配',
“P_IT_PEOPLE_1”“人名”)
作为“分配给”,
案例
当“P_IT_发布”时,“状态”=“打开”
然后
''
||TO_CHAR(“P_IT_ISSUES”,“STATUS”,“999999999999”)
|| ''
当“P_IT_ISSUES”时,“STATUS”=“On Hold”
然后
''
||TO_CHAR(“P_IT_ISSUES”,“STATUS”,“999999999999”)
|| ''
其他的
''
||TO_CHAR(“P_IT_ISSUES”,“STATUS”,“999999999999”)
|| ''
结束状态->此!
从“P_IT_PEOPLE”“P_IT_PEOPLE_1”,
“P_IT_部门”“P_IT_部门”,
“P_IT_PEOPLE”“P_IT_PEOPLE”,
“P_IT_问题”“P_IT_问题”
其中“P_IT_ISSUES”。“由人员识别”=
“P_IT_PEOPLE”“PERSON_ID”
和“P_IT_ISSUES”。“分配给个人ID”=
“P_IT_PEOPLE_1”“PERSON_ID”(+)
和“P_IT_问题”。“相关部门ID”=“P_IT_部门”。“部门ID”

然而,我将进一步重写该代码并

  • 引用表和列时省略双引号
  • 使用适当的(更简单的)表别名
  • 删除不必要的列别名
  • 重写FROM子句并显式联接表
大概是这样的:

SELECT "P_IT_ISSUES"."ISSUE_SUMMARY" AS "ISSUE_SUMMARY",
       "P_IT_PEOPLE"."PERSON_NAME" AS "IDENTIFIED_BY",
       "P_IT_ISSUES"."IDENTIFIED_DATE" AS "IDENTIFIED_DATE",
       "P_IT_DEPARTMENTS"."DEPT_NAME" AS "DEPT_NAME",
       DECODE ("P_IT_PEOPLE_1"."PERSON_NAME",
               NULL, 'Unassigned',
               "P_IT_PEOPLE_1"."PERSON_NAME")
          AS "ASSIGNED_TO",
       CASE
          WHEN "P_IT_ISSUES"."STATUS" = 'Open'
          THEN
                '<aaab style= "    color: green; " >'
             || TO_CHAR ("P_IT_ISSUES"."STATUS", '999,999,999,999,999')
             || '</aaab>'
          WHEN "P_IT_ISSUES"."STATUS" = 'On-Hold'
          THEN
                '<aaab style= "    color: red; " >'
             || TO_CHAR ("P_IT_ISSUES"."STATUS", '999,999,999,999,999')
             || '</aaab>'
          ELSE
                '<aaab style= "    color: red; " >'
             || TO_CHAR ("P_IT_ISSUES"."STATUS", '999,999,999,999,999')
             || '</aaab>'
       END AS status                                                   -> this!
  FROM "P_IT_PEOPLE" "P_IT_PEOPLE_1",
       "P_IT_DEPARTMENTS" "P_IT_DEPARTMENTS",
       "P_IT_PEOPLE" "P_IT_PEOPLE",
       "P_IT_ISSUES" "P_IT_ISSUES"
 WHERE     "P_IT_ISSUES"."IDENTIFIED_BY_PERSON_ID" =
              "P_IT_PEOPLE"."PERSON_ID"
       AND "P_IT_ISSUES"."ASSIGNED_TO_PERSON_ID" =
              "P_IT_PEOPLE_1"."PERSON_ID"(+)
       AND "P_IT_ISSUES"."RELATED_DEPT_ID" = "P_IT_DEPARTMENTS"."DEPT_ID"
SELECT i.issue_summary,
       b.person_name AS identified_by,
       i.identified_date,
       d.dept_name,
       DECODE (a.person_name, NULL, 'Unassigned', a.person_name)
          AS assigned_to,
       CASE
          WHEN i.status = 'Open'
          THEN
                '<aaab style= "    color: green; " >'
             || TO_CHAR (i.status, '999,999,999,999,999')
             || '</aaab>'
          WHEN i.status = 'On-Hold'
          THEN
                '<aaab style= "    color: red; " >'
             || TO_CHAR (i.status, '999,999,999,999,999')
             || '</aaab>'
          ELSE
                '<aaab style= "    color: red; " >'
             || TO_CHAR (i.status, '999,999,999,999,999')
             || '</aaab>'
       END
          AS status
  FROM p_it_issues i
       JOIN p_it_departments d ON i.related_dept_id = d.dept_id
       JOIN p_i_people b ON i.identified_by_person_id = b.person_id
       LEFT JOIN p_it_people a ON a.person_id = i.assigned_to_person_id;
选择i.issue\u摘要,
b、 由以下人员确定的人员姓名:,
i、 确定日期,
d、 部门名称,
解码(a.person\u name,NULL,'Unassigned',a.person\u name)
被分配给,
案例
当i.status='Open'
然后
''
||TO_CHAR(即状态“999999999999”)
|| ''
当i.status='暂停'
然后
''
||TO_CHAR(即状态“999999999999”)
|| ''
其他的
''
||TO_CHAR(即状态“999999999999”)
|| ''
终止
作为身份
来自p_it_issues i
在i.related\u dept\u id=d.dept\u id上加入p\u it\u部门d
加入p_i_people b ON i.identified_by_person_id=b.person_id
在a.person\u id=i.assigned\u to\u person\u id上左键加入p\u it\u people a;

这难道不是更简单、更容易阅读和维护吗?

似乎
案例(选择状态)会导致问题,因为

  • 它以逗号结尾,后面什么都没有
  • 您将整个案例构造命名为
    “PT\u IT\u ISSUES”。“STATUS”
    ,这是一个列名;您应该使用别名,例如简单地使用
    状态
大概是这样的:

SELECT "P_IT_ISSUES"."ISSUE_SUMMARY" AS "ISSUE_SUMMARY",
       "P_IT_PEOPLE"."PERSON_NAME" AS "IDENTIFIED_BY",
       "P_IT_ISSUES"."IDENTIFIED_DATE" AS "IDENTIFIED_DATE",
       "P_IT_DEPARTMENTS"."DEPT_NAME" AS "DEPT_NAME",
       DECODE ("P_IT_PEOPLE_1"."PERSON_NAME",
               NULL, 'Unassigned',
               "P_IT_PEOPLE_1"."PERSON_NAME")
          AS "ASSIGNED_TO",
       CASE
          WHEN "P_IT_ISSUES"."STATUS" = 'Open'
          THEN
                '<aaab style= "    color: green; " >'
             || TO_CHAR ("P_IT_ISSUES"."STATUS", '999,999,999,999,999')
             || '</aaab>'
          WHEN "P_IT_ISSUES"."STATUS" = 'On-Hold'
          THEN
                '<aaab style= "    color: red; " >'
             || TO_CHAR ("P_IT_ISSUES"."STATUS", '999,999,999,999,999')
             || '</aaab>'
          ELSE
                '<aaab style= "    color: red; " >'
             || TO_CHAR ("P_IT_ISSUES"."STATUS", '999,999,999,999,999')
             || '</aaab>'
       END AS status                                                   -> this!
  FROM "P_IT_PEOPLE" "P_IT_PEOPLE_1",
       "P_IT_DEPARTMENTS" "P_IT_DEPARTMENTS",
       "P_IT_PEOPLE" "P_IT_PEOPLE",
       "P_IT_ISSUES" "P_IT_ISSUES"
 WHERE     "P_IT_ISSUES"."IDENTIFIED_BY_PERSON_ID" =
              "P_IT_PEOPLE"."PERSON_ID"
       AND "P_IT_ISSUES"."ASSIGNED_TO_PERSON_ID" =
              "P_IT_PEOPLE_1"."PERSON_ID"(+)
       AND "P_IT_ISSUES"."RELATED_DEPT_ID" = "P_IT_DEPARTMENTS"."DEPT_ID"
SELECT i.issue_summary,
       b.person_name AS identified_by,
       i.identified_date,
       d.dept_name,
       DECODE (a.person_name, NULL, 'Unassigned', a.person_name)
          AS assigned_to,
       CASE
          WHEN i.status = 'Open'
          THEN
                '<aaab style= "    color: green; " >'
             || TO_CHAR (i.status, '999,999,999,999,999')
             || '</aaab>'
          WHEN i.status = 'On-Hold'
          THEN
                '<aaab style= "    color: red; " >'
             || TO_CHAR (i.status, '999,999,999,999,999')
             || '</aaab>'
          ELSE
                '<aaab style= "    color: red; " >'
             || TO_CHAR (i.status, '999,999,999,999,999')
             || '</aaab>'
       END
          AS status
  FROM p_it_issues i
       JOIN p_it_departments d ON i.related_dept_id = d.dept_id
       JOIN p_i_people b ON i.identified_by_person_id = b.person_id
       LEFT JOIN p_it_people a ON a.person_id = i.assigned_to_person_id;
选择“发布问题”,“发布摘要”作为“发布摘要”,
“P_IT_PEOPLE”.“人名”为“识别人”,
“P_IT_ISSUES”。“已确定日期”为“已确定日期”,
“P_IT_部门”。“部门名称”作为“部门名称”,
解码(“P_IT_PEOPLE_1”。“人名”,
NULL,'未分配',
“P_IT_PEOPLE_1”“人名”)
作为“分配给”,
案例
当“P_IT_发布”时,“状态”=“打开”
然后
''
||TO_CHAR(“P_IT_ISSUES”,“STATUS”,“999999999999”)
|| ''
当“P_IT_ISSUES”时,“STATUS”=“On Hold”
然后
''
||TO_CHAR(“P_IT_ISSUES”,“STATUS”,“999999999999”)
|| ''
其他的
''
||TO_CHAR(“P_IT_ISSUES”,“STATUS”,“999999999999”)
|| ''
结束状态->此!
从“P_IT_PEOPLE”“P_IT_PEOPLE_1”,
“P_IT_部门”“P_IT_部门”,
“P_IT_PEOPLE”“P_IT_PEOPLE”,
“P_IT_问题”“P_IT_问题”
其中“P_IT_ISSUES”。“由人员识别”=
“P_IT_PEOPLE”“PERSON_ID”
和“P_IT_ISSUES”。“分配给个人ID”=
“P_IT_PEOPLE_1”“PERSON_ID”(+)
和“P_IT_问题”。“相关部门ID”=“P_IT_部门”。“部门ID”

然而,我将进一步重写该代码并

  • 引用表和列时省略双引号
  • 使用适当的(更简单的)表别名
  • 删除不必要的列别名
  • 重写FROM子句并显式联接表
大概是这样的:

SELECT "P_IT_ISSUES"."ISSUE_SUMMARY" AS "ISSUE_SUMMARY",
       "P_IT_PEOPLE"."PERSON_NAME" AS "IDENTIFIED_BY",
       "P_IT_ISSUES"."IDENTIFIED_DATE" AS "IDENTIFIED_DATE",
       "P_IT_DEPARTMENTS"."DEPT_NAME" AS "DEPT_NAME",
       DECODE ("P_IT_PEOPLE_1"."PERSON_NAME",
               NULL, 'Unassigned',
               "P_IT_PEOPLE_1"."PERSON_NAME")
          AS "ASSIGNED_TO",
       CASE
          WHEN "P_IT_ISSUES"."STATUS" = 'Open'
          THEN
                '<aaab style= "    color: green; " >'
             || TO_CHAR ("P_IT_ISSUES"."STATUS", '999,999,999,999,999')
             || '</aaab>'
          WHEN "P_IT_ISSUES"."STATUS" = 'On-Hold'
          THEN
                '<aaab style= "    color: red; " >'
             || TO_CHAR ("P_IT_ISSUES"."STATUS", '999,999,999,999,999')
             || '</aaab>'
          ELSE
                '<aaab style= "    color: red; " >'
             || TO_CHAR ("P_IT_ISSUES"."STATUS", '999,999,999,999,999')
             || '</aaab>'
       END AS status                                                   -> this!
  FROM "P_IT_PEOPLE" "P_IT_PEOPLE_1",
       "P_IT_DEPARTMENTS" "P_IT_DEPARTMENTS",
       "P_IT_PEOPLE" "P_IT_PEOPLE",
       "P_IT_ISSUES" "P_IT_ISSUES"
 WHERE     "P_IT_ISSUES"."IDENTIFIED_BY_PERSON_ID" =
              "P_IT_PEOPLE"."PERSON_ID"
       AND "P_IT_ISSUES"."ASSIGNED_TO_PERSON_ID" =
              "P_IT_PEOPLE_1"."PERSON_ID"(+)
       AND "P_IT_ISSUES"."RELATED_DEPT_ID" = "P_IT_DEPARTMENTS"."DEPT_ID"
SELECT i.issue_summary,
       b.person_name AS identified_by,
       i.identified_date,
       d.dept_name,
       DECODE (a.person_name, NULL, 'Unassigned', a.person_name)
          AS assigned_to,
       CASE
          WHEN i.status = 'Open'
          THEN
                '<aaab style= "    color: green; " >'
             || TO_CHAR (i.status, '999,999,999,999,999')
             || '</aaab>'
          WHEN i.status = 'On-Hold'
          THEN
                '<aaab style= "    color: red; " >'
             || TO_CHAR (i.status, '999,999,999,999,999')
             || '</aaab>'
          ELSE
                '<aaab style= "    color: red; " >'
             || TO_CHAR (i.status, '999,999,999,999,999')
             || '</aaab>'
       END
          AS status
  FROM p_it_issues i
       JOIN p_it_departments d ON i.related_dept_id = d.dept_id
       JOIN p_i_people b ON i.identified_by_person_id = b.person_id
       LEFT JOIN p_it_people a ON a.person_id = i.assigned_to_person_id;
选择i.issue\u摘要,
b、 由以下人员确定的人员姓名:,
i、 确定日期,
d、 部门名称,
解码(a.person\u name,NULL,'Unassigned',a.person\u name)
被分配给,
案例
当i.status='Open'
然后
''
||TO_CHAR(即状态“999999999999”)
|| ''
当i.status='暂停'
然后
''
||TO_CHAR(即状态“999999999999”)
|| ''
其他的
''
||到_CHAR(即状态,