我正在努力从 oracle 11g 数据库中读取 VARRAY 元素。我正在使用 CPP occi DLL。我可以读取任何其他类型,并更新 VARRAY 类型,但是当我尝试选择 VARRAY 值时,我在 occi dll 中得到一个“访问冲突”异常:(
这是一个简化的场景:
CREATE TYPE ALIST AS VARRAY(50) OF NUMBER(8)
create table ATABLE (a nmumber(8), b mylist)
insert into mytable values(1, alist(1,2,3))
当我做
oc::Statement* stmt = m_cConnection->createStatement("SELECT b FROM ATABLE");
stmt->executeQuery();
没关系,但是当我尝试以相同的方式访问 VARRAY
oc::Statement* stmt = m_cConnection->createStatement("SELECT a FROM ATABLE");
stmt->executeQuery();
我明白了
OracleTester.exe 中 0x0094a46d 处的第一次机会异常:0xC0000005:访问冲突读取位置 0x0000000000000120。
知道我做错了什么吗?也许我需要使用不同的 API 来获取 VARRAY 数据?或者做一些准备工作?
任何提示将不胜感激...