首页 > 解决方案 > SQL 语句中缺少字符 ORA-00911

问题描述

我正在尝试将报告编写为 JDBC 上的表格。该报告将接受,但当我尝试运行它时,我不断收到 oracle-00911 错误,指出缺少字符。我假设我错过了某处的报价,但我在任何地方都找不到错误。有没有人在这段代码的任何地方看到丢失的字符?

谢谢您的帮助!

        (SELECT
            '<b>Trouble Events</b>',
            NVL(NULLIF(TO_CHAR((SELECT COUNT(EventID) FROM kub_nms.electric_jobs WHERE
                BeginDateTime BETWEEN TO_DATE('<{[begin_date]}> <{[begin_time]}>', 'MM/DD/YYYY HH24:MI') 
                AND TO_DATE('<{[end_date]}> <{[end_time]}>', 'MM/DD/YYYY HH24:MI') AND Completed = 'N' 
                AND FirstAssignedDateTime IS NULL AND FirstArrivedDateTime IS NULL
                AND Analysis = 'Non-Outage'), 'fm9,999,990'), '0'), ' ') Pending,
            NVL(NULLIF(TO_CHAR((SELECT COUNT(EventID) FROM kub_nms.electric_jobs WHERE
                BeginDateTime BETWEEN TO_DATE('<{[begin_date]}> <{[begin_time]}>', 'MM/DD/YYYY HH24:MI') 
                AND TO_DATE('<{[end_date]}> <{[end_time]}>', 'MM/DD/YYYY HH24:MI') AND Completed = 'N' 
                AND FirstAssignedDateTime IS NOT NULL
        AND Status not in ('Crew Enroute', 'Crew Onsite')
                AND Analysis = 'Non-Outage'), 'fm9,999,990'), '0'), ' ') Assigned,
            NVL(NULLIF(TO_CHAR((SELECT COUNT(EventID) FROM kub_nms.electric_jobs WHERE
                BeginDateTime BETWEEN TO_DATE('<{[begin_date]}> <{[begin_time]}>', 'MM/DD/YYYY HH24:MI') 
                AND TO_DATE('<{[end_date]}> <{[end_time]}>', 'MM/DD/YYYY HH24:MI') AND Completed = 'N' 
                AND (FirstAssignedDateTime IS NOT NULL OR FirstArrivedDateTime IS NOT NULL)
        AND Status in ('Crew Enroute', 'Crew Onsite')
                AND Analysis = 'Non-Outage'), 'fm9,999,990'), '0'), ' ') Working,
            NVL(NULLIF(TO_CHAR((SELECT COUNT(EventID) FROM kub_nms.electric_jobs WHERE
                BeginDateTime BETWEEN TO_DATE('<{[begin_date]}> <{[begin_time]}>', 'MM/DD/YYYY HH24:MI') 
                AND TO_DATE('<{[end_date]}> <{[end_time]}>', 'MM/DD/YYYY HH24:MI')
                AND Completed = 'Y' AND Active = 'N'
        AND Status <> 'Cancelled'
        AND Completioncode like '%COMP%'
                AND Analysis = 'Non-Outage), 'fm9,999,990'), '0'), ' ') Closed,
            '<b>' || NVL(NULLIF(TO_CHAR((SELECT COUNT(EventID) FROM kub_nms.electric_jobs WHERE
                BeginDateTime BETWEEN TO_DATE('<{[begin_date]}> <{[begin_time]}>', 'MM/DD/YYYY HH24:MI') 
                AND TO_DATE('<{[end_date]}> <{[end_time]}>', 'MM/DD/YYYY HH24:MI')
        AND Status <> 'Cancelled'
                AND Analysis = 'Non-Outage'), 'fm9,999,990'), '0'), ' ') || '</b>' Total
        FROM
            dual)
            
        UNION ALL
        
        (SELECT
            '<b>Outage Events (< 50 Customers)</b>',
            NVL(NULLIF(TO_CHAR((SELECT COUNT(EventID) FROM kub_nms.ieee_jobs WHERE
                BeginDateTime BETWEEN TO_DATE('<{[begin_date]}> <{[begin_time]}>', 'MM/DD/YYYY HH24:MI') 
                AND TO_DATE('<{[end_date]}> <{[end_time]}>', 'MM/DD/YYYY HH24:MI')
                AND Completed = 'N' AND CustomersOut < 50 
                AND FirstAssignedDateTime IS NULL AND FirstArrivedDateTime IS NULL), 'fm9,999,990'), '0'), ' ') Pending,
            NVL(NULLIF(TO_CHAR((SELECT COUNT(EventID) FROM kub_nms.ieee_jobs WHERE
                BeginDateTime BETWEEN TO_DATE('<{[begin_date]}> <{[begin_time]}>', 'MM/DD/YYYY HH24:MI') 
                AND TO_DATE('<{[end_date]}> <{[end_time]}>', 'MM/DD/YYYY HH24:MI')
                AND Completed = 'N' AND CustomersOut < 50 
                AND FirstAssignedDateTime IS NOT NULL
        AND Status not in ('Crew Enroute', 'Crew Onsite')), 'fm9,999,990'), '0'), ' ') Assigned,
            NVL(NULLIF(TO_CHAR((SELECT COUNT(EventID) FROM kub_nms.ieee_jobs WHERE
                BeginDateTime BETWEEN TO_DATE('<{[begin_date]}> <{[begin_time]}>', 'MM/DD/YYYY HH24:MI') 
                AND TO_DATE('<{[end_date]}> <{[end_time]}>', 'MM/DD/YYYY HH24:MI')
                AND Completed = 'N' AND CustomersOut < 50 
                AND (FirstAssignedDateTime IS NOT NULL OR FirstArrivedDateTime IS NOT NULL)
        AND Status in ('Crew Enroute', 'Crew Onsite')), 'fm9,999,990'), '0'), ' ') Working,
            NVL(NULLIF(TO_CHAR((SELECT COUNT(EventID) FROM kub_nms.ieee_jobs WHERE
                BeginDateTime BETWEEN TO_DATE('<{[begin_date]}> <{[begin_time]}>', 'MM/DD/YYYY HH24:MI') 
                AND TO_DATE('<{[end_date]}> <{[end_time]}>', 'MM/DD/YYYY HH24:MI')
                AND Active = 'N' AND Completed = 'Y' AND CustomersOut < 50 
                AND Status <> 'Cancelled' 
        AND Completioncode like '%COMP%'), 'fm9,999,990'), '0'), ' ') Closed,
            '<b>' || NVL(NULLIF(TO_CHAR((SELECT COUNT(EventID) FROM kub_nms.ieee_jobs WHERE
                BeginDateTime BETWEEN TO_DATE('<{[begin_date]}> <{[begin_time]}>', 'MM/DD/YYYY HH24:MI') 
                AND TO_DATE('<{[end_date]}> <{[end_time]}>', 'MM/DD/YYYY HH24:MI')
                AND Status <> 'Cancelled'), 'fm9,999,990'), '0'), ' ') || '</b>' Total
        FROM
            dual)
            
        UNION ALL
        
        (SELECT
            '<b>Outage Events (50+ Customers)</b>',
            NVL(NULLIF(TO_CHAR((SELECT COUNT(EventID) FROM kub_nms.ieee_jobs WHERE
                BeginDateTime BETWEEN TO_DATE('<{[begin_date]}> <{[begin_time]}>', 'MM/DD/YYYY HH24:MI') 
                AND TO_DATE('<{[end_date]}> <{[end_time]}>', 'MM/DD/YYYY HH24:MI')
                AND Completed = 'N' AND CustomersOut >= 50 
                AND FirstAssignedDateTime IS NULL AND FirstArrivedDateTime IS NULL), 'fm9,999,990'), '0'), ' ') Pending,
            NVL(NULLIF(TO_CHAR((SELECT COUNT(EventID) FROM kub_nms.ieee_jobs WHERE
                BeginDateTime BETWEEN TO_DATE('<{[begin_date]}> <{[begin_time]}>', 'MM/DD/YYYY HH24:MI') 
                AND TO_DATE('<{[end_date]}> <{[end_time]}>', 'MM/DD/YYYY HH24:MI')
                AND Completed = 'N' AND CustomersOut >= 50 
                AND FirstAssignedDateTime IS NOT NULL
        AND Status not in ('Crew Enroute', 'Crew Onsite')), 'fm9,999,990'), '0'), ' ') Assigned,
            NVL(NULLIF(TO_CHAR((SELECT COUNT(EventID) FROM kub_nms.ieee_jobs WHERE
                BeginDateTime BETWEEN TO_DATE('<{[begin_date]}> <{[begin_time]}>', 'MM/DD/YYYY HH24:MI') 
                AND TO_DATE('<{[end_date]}> <{[end_time]}>', 'MM/DD/YYYY HH24:MI')
                AND Completed = 'N' AND CustomersOut >= 50 
                AND (FirstAssignedDateTime IS NOT NULL OR FirstArrivedDateTime IS NOT NULL)
        AND Status in ('Crew Enroute', 'Crew Onsite')), 'fm9,999,990'), '0'), ' ') Working,
            NVL(NULLIF(TO_CHAR((SELECT COUNT(EventID) FROM kub_nms.ieee_jobs WHERE
                BeginDateTime BETWEEN TO_DATE('<{[begin_date]}> <{[begin_time]}>', 'MM/DD/YYYY HH24:MI') 
                AND TO_DATE('<{[end_date]}> <{[end_time]}>', 'MM/DD/YYYY HH24:MI')
                AND Active = 'N' AND Completed = 'Y' AND CustomersOut >= 50 
        AND Status <> 'Cancelled' AND Completioncode like '%COMP%'), 'fm9,999,990'), '0'), ' ') Closed,
            '<b>' || NVL(NULLIF(TO_CHAR((SELECT COUNT(EventID) FROM kub_nms.ieee_jobs WHERE
                BeginDateTime BETWEEN TO_DATE('<{[begin_date]}> <{[begin_time]}>', 'MM/DD/YYYY HH24:MI') 
                AND TO_DATE('<{[end_date]}> <{[end_time]}>', 'MM/DD/YYYY HH24:MI')
                AND CustomersOut >= 50 
                AND Status <> 'Cancelled'), 'fm9,999,990'), '0'), ' ') || '</b>' Total
        FROM
            dual)

标签: sqljdbc

解决方案


最佳实践 - 复制您的查询SQL Developer(具有语法突出显示)并观察。

您会立即在第 26 行第 46 列看到一个问题

            AND Analysis = ' non - outage),

应该

            AND Analysis = ' non - outage'),

推荐阅读