做了一个程序,使用客户已有的数据库,使用OracleClient在连接时正常,在对数据库内的表进行操作时,提示Ora-02041错误.包括所有的查询操作,一时找不到原因,郁闷之极。昨天在对连接字符串时行研究时发现,其中有一项Omit Oracle Connection Name,是连接低版本(低于9i)时用的,开发工具内的说明是:
如果为True,则省略通过Oracle OCI设置连接名称属性的调用。如果为False(默认值),将设置连接名称属性。在分布式事务登记时需要该属性。如果使用9i之前的数据库,此连接字符串选项应设置为True,因为较早版本不支持使用OCI连接名称属性。
程序内的连接字符串为连接9i时的字符串:Data Source=server;Persist Security Info=True;User ID=user;Unicode=True,而客户所使用的数据库为8,因此就会出现错误信息了,只能怪自己没有仔细注意这些东西,浪费了这么长的时间。
修改后的连接串为:Data Source=server;Persist Security Info=True;User ID=user;Unicode=True;Omit Oracle Connection Name=True,呵呵,问题解决