关闭

都是分号惹的祸(ORA-00911: invalid character)

701人阅读 评论(0) 收藏 举报
分类:
今天在写SQL查询Oracle中的数据时遇到一个问题。在一般的SQL查询分析器中写好的SQL语句(运行一切正常),扔到用C++写的程序中就报错。错误代码如下:
ORA-00911: invalid character
检查了半天,实在是没找到任何SQL错误的原因,(本来怀疑是字符转码的问题,后来给排除了);最后,终于在网上查到了答案,原来“都是分号惹的祸”!
我一般写SQL的时候都喜欢在每个语句结尾加上";",我想这也是一般写SQL的程序员的习惯。因为很多SQL的查询分析其时都会将这个分号当成一个语句的结束。但是,其实在正式执行的时候,是不能将这个分号扔到Oracle的解析器中的,因为Oracle的语法解析器特别严格,就会报出以上的错误出来,解决方法也很简单,去掉分号就可以了。

以上的问题适用于任何用程序书写的Oracle数据查询,看起来有时候习惯也会害死人的。

注:
    我是用C++语言的OCI接口调用sql语句,sql语句末尾加了分号。
错误号: 911 
错误描述:ORA-00911: invalid character
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:231718次
    • 积分:1571
    • 等级:
    • 排名:千里之外
    • 原创:29篇
    • 转载:29篇
    • 译文:0篇
    • 评论:9条
    最新评论