Wow, this almost took my breath away. Almost. Sadly it did not solve my problem. I downloaded and installed 7.1.3.1381 and the problem continues. My tech guy put together this script to demonstrate the problem:
-------------
create or replace function test_fc
return varchar2 as
v_dummy varchar2(30);
begin
select table_name into v_dummy from all_tables;
return v_dummy;
end;
/
select test_fc from dual;
-------------
The "select ... into..." statement returns too many rows, so the function should fail and the select from dual should return an error message. It does so for a 10g client install, but not for a 9i client. Here is some environment info for 10g where the error is returned correctly:
-------------
DLLs
D:\oracle\product\10.2.0\db_1\bin\oci.dll
Using
Home: OraDb10g_home1
DLL: D:\oracle\product\10.2.0\db_1\bin\oci.dll
OCI: version 9.2
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0
-------------
And here is the same info for the 9i client where the error is not returned and the response is "0 rows selected in 0.344 seconds"
-------------
DLLs
C:\Oracle\Ora92\bin\oci.dll
Using
Home: OraHome92
DLL: C:\Oracle\Ora92\bin\oci.dll
OCI: version 9.2
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0
-------------
I consider this to be an extremely dangerous bug because the invalid response (0 rows returned) looks so reasonable.
Please help ASAP. Thanks!