我刚刚尝试了以下查询:
SELECT EXAM_NUMBER, DATE_EXAM, DATE_UNIV
FROM UNIVERSITY.C_CALENDAR cc2
WHERE EXAM_NUMBER = 'L'
AND LAST_FILE = 'OK'
AND MATTER = 'MATH'
AND STATE_CODE NOT IN ('FC')
AND TO_CHAR(DATE_EXAM, 'YYYY-MM-DD') = TO_CHAR(SYSDATE - 2, 'YYYY-MM-DD')
AND TO_CHAR(DATE_UNIV, 'YYYY-MM-DD HH24:MI:SS') < TO_CHAR(SYSDATE - 5, 'YYYY-MM-DD HH24:MI:SS')
ORDER BY DATE_EXAM DESC
我总是出错
ORA-00911:无效字符
能帮我一下吗?
2条答案
按热度按时间ou6hu8tu1#
您的查询看起来很好。您可能在源代码中有一个不可见的字符(但当我从您的问题复制粘贴时,甚至在查看标记时,它都没有显示)。
过滤时不需要使用
TO_CHAR
(因为它将阻止Oracle使用列上的索引):fiddle
a5g8bdjr2#
从sql developer使用时看起来还可以。
如何使用此命令?根据我的经验,如果使用“立即执行”或连接到oracle db的某些其他软件运行此命令时有多余的分号,则会出现此错误。例如,从python程序运行时,oracle返回的命令末尾有分号:
cx_Oracle。数据库错误:ORA-00911:无效字符没有分号就可以了。