1

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 の両方からクエリを実行すると、適切な結果が返されます。

4

1 に答える 1

2

これは、テーブルに、使用している OLE DB プロバイダーでサポートされていないデータ型のフィールドが 1 つ以上含まれていることを意味します。問題のあるフィールドを特定するには、フィールドを 1 つずつクエリに追加し、それが機能するかどうかを確認します。問題のあるフィールドを見つけたら、これらを除くすべてのフィールドを Select 句にリストする必要があります。

また、Microsoft のプロバイダー ( provider=MSDAORA ) を使用している場合は、Oracle ネイティブ プロバイダー ( provider=OraOLEDB.Oracle ) に変更してみてください。

于 2013-08-08T06:00:55.360 に答える