查询交互式报告失败,突出显示行css条件
我使用下面的查询根据列值突出显示状态列。 它失败,在else块中出错: ORA-20999:无法解析SQL查询 ORA-06550:第12行第15列:ORA-00923:未在预期位置找到FROM关键字查询交互式报告失败,突出显示行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
哪里出了问题?似乎
案例(选择状态)会导致问题,因为
- 它以逗号结尾,后面什么都没有
- 您将整个案例构造命名为
“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(即状态,