惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

罗磊的独立博客
Martin Fowler
Martin Fowler
J
Java Code Geeks
The GitHub Blog
The GitHub Blog
C
Check Point Blog
H
Help Net Security
Google DeepMind News
Google DeepMind News
人人都是产品经理
人人都是产品经理
博客园 - 聂微东
P
Proofpoint News Feed
V
Visual Studio Blog
Stack Overflow Blog
Stack Overflow Blog
雷峰网
雷峰网
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Vercel News
Vercel News
S
SegmentFault 最新的问题
L
LangChain Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
The Cloudflare Blog
Hugging Face - Blog
Hugging Face - Blog
有赞技术团队
有赞技术团队
博客园_首页
小众软件
小众软件
aimingoo的专栏
aimingoo的专栏

博客园 - codingsilence

更新部分字段 NHibernate 降低Winform 内存占用 installshiled 创建iis应用程序池和站点 FARPOINT 常见用法 比较Double型数据时的注意事项 WinForm中获取鼠标当前位置 查看SQL Server日志 WinForm winform动态生成菜单 WinForm 从XML中动态加载菜单的示例 “轻松加愉快”地实现并使用IComparer接口 WinForm 选择器 C#程序实现动态调用DLL的研究 WCF 的 WebGet 方式 WCF WebGet WebInvoke WCF Jquery 调用 开源选型关注点 在64位Windows的IIS上开启32位程序支持(转) Oracle grant用户授权 ODP.NET开发和部署的相关问题 Client使用c#和odp.net连接server oracle
都是分号惹的祸(ORA-00911: invalid character)
codingsilence · 2011-08-11 · via 博客园 - codingsilence

 今天在写SQL查询Oracle中的数据时遇到一个问题。在一般的SQL查询分析器中写好的SQL语句(运行一切正常),扔到用C#写的程序中就报错。错误代码如下:

System.Data.OleDb.OleDbException:One or more errors occurred during processing of command.
ORA-00911: invalid character at...

检查了半天,实在是没找到任何SQL错误的原因,(本来怀疑是字符转码的问题,后来给排除了);最后,终于在网上查到了答案,原来“都是分号惹的祸”!

我一般写SQL的时候都喜欢在每个语句结尾加上":",我想这也是一般写SQL的程序员的习惯。因为很多SQL的查询分析其时都会将这个分号当成一个语句的结束。但是,其实在正式执行的时候,是不能将这个分号扔到Oracle的解析器中的,因为Oracle的语法解析器特别严格,就会报出以上的错误出来,解决方法也很简单,去掉分号就可以了。

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

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