当选择包含*时,使用ADO到Oracle服务器的查询失败未指定错误

Query using ADO to Oracle Server fails Unspecified error when select contains *

本文关键字:服务器 Oracle 查询 失败 错误 未指定 ADO 包含 选择 使用      更新时间:2023-09-26

使用TestComplete的javascript引擎创建到远程Oracle 11.2.0.3服务器的TADOConnection。查询是一个简单的选择,包含一些基本的where子句:

Select * FROM MyUser.MyTable WHERE MyName = 'NAME' AND MyId like '1111%'

当执行命令时,它失败并遇到异常,并显示"Unspecified Error"的有用消息

奇怪的是:其他几个选择、删除、插入。。。使用所有相同的连接逻辑可以很好地工作。如果我将*改为列名,同样的查询也能工作:

Select MyCol1, MyCol2, MyCol3 FROM MyUser.MyTable WHERE MyName = 'NAME' AND MyId like '1111%'

虽然这是一种变通方法,但表中有大量的列,我希望*能按预期工作。知道是什么原因导致查询失败吗?

此外,从sqlcmd和sqldeveloper运行查询都会正常运行并返回正确的结果。

这意味着表包含一个或多个数据类型为您使用的OLE DB访问接口不支持的字段。要查明哪些字段有问题,可以逐个向查询中添加字段,并检查其是否有效。一旦发现有问题的字段,就必须在Select子句中列出除这些字段之外的所有字段。

此外,如果您使用的是Microsoft提供程序(provider=MSDAORA),请尝试将其更改为Oracle本机提供程序(provider=OraOLEDB.Oracle)。