将 zend 与 oracle 一起使用 ORA-00911: 无效字符
using zend with oracle ORA-00911: invalid character
ORA-00911: invalid character SELECT "SCORES"."SUBSCRIBERID" AS
"subscriberId", SUM(SCORES.SCORE) AS "SCORE", "SUBSCRIBERS"."SUBSCRIBERID",
"SUBSCRIBERS"."FIRSTNAME", "SUBSCRIBERS"."LASTNAME",
"SUBSCRIBERS"."MOBILE" FROM "SCORES" INNER JOIN "SUBSCRIBERS" ON
"SUBSCRIBERS"."SUBSCRIBERID"="SCORES"."SUBSCRIBERID" WHERE ("SCORES"."POLLINGID"=2) AND ("SUBSCRIBERS"."SUBSCRIBERID"
not in (SELECT "POLLING_TRIALAUDIENCE_SUBSCRIB"."SUBSCRIBERID" FROM "POLLING_TRIALAUDIENCE_SUBSCRIB" WHERE
("POLLING_TRIALAUDIENCE_SUBSCRIB"."POLLINGID"=2))) AND
("SUBSCRIBERS"."SUBSCRIBERID" not in (SELECT
"GROUP_SUBSCRIBERS"."SUBSCRIBERID" FROM "POLLING_TRIALAUDIENCE_GROUPS" INNER
JOIN "GROUP_SUBSCRIBERS" ON
"POLLING_TRIALAUDIENCE_GROUPS"."GROUPID"="GROUP_SUBSCRIBERS"."GROUPID" WHERE
("POLLINGID"=2))) GROUP BY "SUBSCRIBERS"."SUBSCRIBERID" HAVING (SCORE *in (
select * from(SELECT distinct sum("SCORES"."SCORE") TopScore FROM
`"SCORES"` WHERE "SCORES"."POLLINGID"=2 group by "SCORES"."SUBSCRIBERID"
order by TopScore desc limit 100) as t)) ORDER BY "SCORE" DESC
请帮帮我!!!!!
假设 HAVING (SCORE *in (
中的星号不存在,因为那会生成 "ORA-00936: missing expression",您发布的第一个问题是 "SCORES"
周围的反引号。当然,您也可能在创建问题时引入了这些,但它们会生成 "ORA-00911: invalid character if they are present".
你还有其他问题; Oracle 不支持 limit
,您不能将 AS
用作 table 别名(as t
在限制之后),您在 select 列出你的 group-by 子句中没有的东西,...一旦这些问题得到解决,可能还有其他事情。
ORA-00911: invalid character SELECT "SCORES"."SUBSCRIBERID" AS
"subscriberId", SUM(SCORES.SCORE) AS "SCORE", "SUBSCRIBERS"."SUBSCRIBERID",
"SUBSCRIBERS"."FIRSTNAME", "SUBSCRIBERS"."LASTNAME",
"SUBSCRIBERS"."MOBILE" FROM "SCORES" INNER JOIN "SUBSCRIBERS" ON
"SUBSCRIBERS"."SUBSCRIBERID"="SCORES"."SUBSCRIBERID" WHERE ("SCORES"."POLLINGID"=2) AND ("SUBSCRIBERS"."SUBSCRIBERID"
not in (SELECT "POLLING_TRIALAUDIENCE_SUBSCRIB"."SUBSCRIBERID" FROM "POLLING_TRIALAUDIENCE_SUBSCRIB" WHERE
("POLLING_TRIALAUDIENCE_SUBSCRIB"."POLLINGID"=2))) AND
("SUBSCRIBERS"."SUBSCRIBERID" not in (SELECT
"GROUP_SUBSCRIBERS"."SUBSCRIBERID" FROM "POLLING_TRIALAUDIENCE_GROUPS" INNER
JOIN "GROUP_SUBSCRIBERS" ON
"POLLING_TRIALAUDIENCE_GROUPS"."GROUPID"="GROUP_SUBSCRIBERS"."GROUPID" WHERE
("POLLINGID"=2))) GROUP BY "SUBSCRIBERS"."SUBSCRIBERID" HAVING (SCORE *in (
select * from(SELECT distinct sum("SCORES"."SCORE") TopScore FROM
`"SCORES"` WHERE "SCORES"."POLLINGID"=2 group by "SCORES"."SUBSCRIBERID"
order by TopScore desc limit 100) as t)) ORDER BY "SCORE" DESC
请帮帮我!!!!!
假设 HAVING (SCORE *in (
中的星号不存在,因为那会生成 "ORA-00936: missing expression",您发布的第一个问题是 "SCORES"
周围的反引号。当然,您也可能在创建问题时引入了这些,但它们会生成 "ORA-00911: invalid character if they are present".
你还有其他问题; Oracle 不支持 limit
,您不能将 AS
用作 table 别名(as t
在限制之后),您在 select 列出你的 group-by 子句中没有的东西,...一旦这些问题得到解决,可能还有其他事情。