ORA-06550/PLS-00103

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---

你可能感兴趣的:(oracle,sql,数据库,server,oracle11g,oracle10g,数据库服务器)