缺少关键字(ORA-00905)-错误SQL:ORA-00905
我有下面的声明,返回上述905错误。有什么想法吗缺少关键字(ORA-00905)-错误SQL:ORA-00905,sql,oracle,ora-00905,Sql,Oracle,Ora 00905,我有下面的声明,返回上述905错误。有什么想法吗 CREATE MATERIALIZED VIEW SYNT_CE CACHE USING INDEX REFRESH ON DEMAND FORCE USING DEFAULT ROLLBACK SEGMENT DISABLE QUERY REWRITE AS WITH SYNT_AV AS (SELECT CIRC_BV, CASE WHEN SUM(C_AVANCEMENT) > 1 THEN 'non transmis' WHEN S
CREATE MATERIALIZED VIEW SYNT_CE CACHE USING INDEX REFRESH ON DEMAND FORCE USING DEFAULT ROLLBACK SEGMENT DISABLE QUERY REWRITE
AS
WITH SYNT_AV AS (SELECT CIRC_BV, CASE WHEN SUM(C_AVANCEMENT) > 1 THEN 'non transmis' WHEN SUM(C_AVANCEMENT) = 1 THEN 't�l�phon�' ELSE 'confirm�' END AS C_AVANCEMENT
FROM (SELECT SYNT_BV.CIRC_BV, (CASE SYNT_BV.C_AVANCEMENT WHEN 'non transmis' THEN 2 WHEN 't�l�phon�' THEN 1 WHEN 'confirm�' THEN 0 END) AS C_AVANCEMENT
FROM SYNT_BV GROUP BY SYNT_BV.CIRC_BV, (CASE SYNT_BV.C_AVANCEMENT WHEN 'non transmis' THEN 2 WHEN 't�l�phon�' THEN 1 WHEN 'confirm�' THEN 0 END)) AV GROUP BY CIRC_BV)
SELECT TO_NUMBER(SYNT_BV.CIRC_BV) AS C_CE, SYNT_BV.CIRC_BV, SYNT_BV.CIRC_BV, SYNT_BV.CIRC_BV || case WHEN SYNT_BV.CIRC_BV = '01' then 'er Ardt' WHEN SYNT_BV.CIRC_BV <> '01' then 'ème Ardt' as L_CIRC_BV, SYNT_BV.NUMERO_TOUR, SYNT_BV.NUMERO_TOUR, SYNT_BV.DATE_TOUR, SYNT_BV.TYPE_ELECTION, SYNT_BV.LIBELLE_ELECTION,
SUM(SYNT_BV.NB_INSCRIT) AS NB_INSCRIT,
SUM(SYNT_BV.NB_VOTANT) AS NB_VOTANT,
SUM(SYNT_BV.NB_EMARGEMENT) AS NB_EMARGEMENT,
SUM(SYNT_BV.NB_PROCURATION) AS NB_PROCURATION,
SUM(SYNT_BV.NB_EXPRIME) AS NB_EXPRIME,
SUM(SYNT_BV.NB_VOTE_BLANC) AS NB_VOTE_BLANC,
SUM(SYNT_BV.NB_VOTE_NUL) AS NB_VOTE_NUL,
SUM(SYNT_BV.NB_VOTE_B_NUL) AS NB_VOTE_B_NUL,
SUM(SYNT_BV.NB_VOTE_B_NUL_ABS) AS NB_VOTE_B_NUL_ABS,
[...]
ORDER BY SYNT_BV.ARR_BV;
CREATE INDEX SYNT_AR_INDEX_C_CAINSEE ON SYNT_AR (C_CAINSEE ASC);
使用以下命令:
CREATE MATERIALIZED VIEW SYNT_CE CACHE USING INDEX REFRESH ON DEMAND FORCE USING DEFAULT ROLLBACK SEGMENT DISABLE QUERY REWRITE
AS
WITH SYNT_AV AS (SELECT CIRC_BV, CASE WHEN SUM(C_AVANCEMENT) > 1 THEN 'non transmis' WHEN SUM(C_AVANCEMENT) = 1 THEN 't�l�phon�' ELSE 'confirm�' END AS C_AVANCEMENT
FROM (SELECT SYNT_BV.CIRC_BV, (CASE SYNT_BV.C_AVANCEMENT WHEN 'non transmis' THEN 2 WHEN 't�l�phon�' THEN 1 WHEN 'confirm�' THEN 0 END) AS C_AVANCEMENT
FROM SYNT_BV GROUP BY SYNT_BV.CIRC_BV, (CASE SYNT_BV.C_AVANCEMENT WHEN 'non transmis' THEN 2 WHEN 't�l�phon�' THEN 1 WHEN 'confirm�' THEN 0 END)) AV GROUP BY CIRC_BV)
SELECT TO_NUMBER(SYNT_BV.CIRC_BV) AS C_CE, SYNT_BV.CIRC_BV, SYNT_BV.CIRC_BV, SYNT_BV.CIRC_BV || case WHEN SYNT_BV.CIRC_BV = '01' then 'er Ardt' WHEN SYNT_BV.CIRC_BV <> '01' then 'ème Ardt' END as L_CIRC_BV, SYNT_BV.NUMERO_TOUR, SYNT_BV.NUMERO_TOUR, SYNT_BV.DATE_TOUR, SYNT_BV.TYPE_ELECTION, SYNT_BV.LIBELLE_ELECTION,
SUM(SYNT_BV.NB_INSCRIT) AS NB_INSCRIT,
SUM(SYNT_BV.NB_VOTANT) AS NB_VOTANT,
SUM(SYNT_BV.NB_EMARGEMENT) AS NB_EMARGEMENT,
SUM(SYNT_BV.NB_PROCURATION) AS NB_PROCURATION,
SUM(SYNT_BV.NB_EXPRIME) AS NB_EXPRIME,
SUM(SYNT_BV.NB_VOTE_BLANC) AS NB_VOTE_BLANC,
SUM(SYNT_BV.NB_VOTE_NUL) AS NB_VOTE_NUL,
SUM(SYNT_BV.NB_VOTE_B_NUL) AS NB_VOTE_B_NUL,
SUM(SYNT_BV.NB_VOTE_B_NUL_ABS) AS NB_VOTE_B_NUL_ABS,
[...]
ORDER BY SYNT_BV.ARR_BV;
CREATE INDEX SYNT_AR_INDEX_C_CAINSEE ON SYNT_AR (C_CAINSEE ASC);
您缺少案例陈述结尾处的结束词。您似乎有一个select,没有from或group by。这使得解决这个问题有点困难。我建议简化、简化、简化,直到您隔离错误并修复它。当代码布局正确时,语法错误更容易被发现,并且在混合情况下。事实上,您的线条太长,我们需要使用滚动条,这使得我们很难发现您可能制作了哪些灯笼裤。可读性是代码应该具备的特性。