author:skate
time:2009/11/3
ORA-06550: line 1, column 7:
PLS-00103: Encountered the symbol "" when expecting one of the following:
昨天一个新的项目要上线,可在链接数据库是总报下面的错误,这个项目是在oracle11g的环境下开发的
,线上生产系统的用的oracle10g系统,应用在链接oracle11g是正常,但在oracle10g就抱如下的错误,
根据错误提示是应用提交给oracle的sql(过程和函数)写法不符合oracle的标准,这个错误出现在同步两
库的数据时,单独链接oracle10g时,没有任何问题
我们的客户端机器安装了9i和11g的两个oracle客户端来访问数据库,oracle11g
我们的程序员在写程序时,把code写成如下的形式:
begin
insert into table...;
insert into table...;
insert into table...;
end
还有一个是写法是采用拼接语句的形式,但他在拼接语句加了”换行符“
总结错误的原因,在提交给我oracle的批处理sql时,要注意不要添加一些换行符等特殊字符,oracle10g可能不能正常解析语句
oracle11g可能做的解析兼容性更好了
但我们最后的解决方法是单个sql执行,而不采用批处理执行,结果通过。虽然这会影响性能,但这个小模块执行频率很低
详细错误代码:
Oracle.DataAccess.Client.OracleException ORA-06550: line 1, column 7:
PLS-00103: Encountered the symbol "" when expecting one of the following:
begin case declare exit for goto if loop mod null pragma
raise return select update while with <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
close current delete fetch lock insert open rollback
savepoint set sql execute commit forall merge pipe
The symbol "" was ignored.
ORA-06550: line 2, column 453:
PLS-00103: Encountered the symbol "" when expecting one of the following:
begin case declare end exception exit for goto if loop mod
null pragma raise return select update while with
<an identifier> <a double-quoted delimited-i
ORA-06550: line 3, column 453:
PLS-00103: Encountered the symbol "" when expecting one of the following:
-------------------------------------------------
相关知识学习:
关于oci的介绍
当应用程序开发人员需要面向 Oracle 数据库服务器的最强大的接口时,他们将调用 Oracle 调用接口 (OCI)。OCI 提供了
对所有 Oracle 数据库功能的最全面的访问。OCI API 中包含了最新的性能、可伸缩性和安全性特性。
使用 OCI 客户群非常庞大,包括:
开发复杂数据库应用程序的财富 500 强中的大客户。
调整 Oracle 数据库以适应它们的需求的 ISV
如果编写 Oracle 数据库应用程序,则很可能要依靠 OCI。依赖 OCI 的某些类型的应用程序包括:
执行 SQL 的 PL/SQL 应用程序
使用 OCCI 的 C++ 应用程序
使用基于 OCI 的 JDBC 驱动程序的 Java 应用程序
使用 ODBC 驱动程序的 C 应用程序
使用 OLEDB 驱动程序的 VB 应用程序
Pro*C 应用程序
分布式 SQL
Oracle 10g 中的 OCI 新特性包括:
即时客户端
IEEE 754 浮点数支持 (binary_float/binary_double)
无限大小的 LOB 支持
Instant Client 使 ISV 和客户能够快速安装和部署 Oracle 应用程序,而不会遇到任何麻烦。请访问 Instant Client 站点了解更多信息。
开发人员应当采用的 Oracle 9i 中的某些更重要的可伸缩性和性能特性包括:
连接池
会话池
语句高速缓存
可滚动游标
OCI 的主要优点包括:
最新 Oracle 数据库服务器特性中的即时可用性
企业级的性能和可伸缩性
强健的安全模型
在所有运行 Oracle 的平台上的可移植性
对于一般的中小企业来说,数据量也不是很大,要用oci也有些难度,直接采用oracle的客户端就可以
如何配置才能使客户端连到数据库:
要使一个客户端机器能连接oracle数据库,需要在客户端机器上安装oracle的客户端软件,唯一的例外
就是java连接数据库的时候,可以用jdbc thin模式,不用装oracle的客户端软件。假如你在机器上装了
oracle数据库,就不需要在单独在该机器上安装oracle客户端了,因为装oracle数据库的时候会自动安
装oracle客户端。
用过sql server数据库然后又用oracle的朋友可能会有这样的疑问:问什么我用sql server的时候不用装
sql server的客户端呢?原因很简单,sql server也是microsoft的,它在操作系统中集成了sql server客户端
---end---