0

我创建了DELPHI数据库应用程序,它将使用DBX TSQLConnection组件连接到Oracle 数据库(19c 版本)。我收到访问冲突错误,当我调用oracle listagg 函数时(SQLQuery1.open --in 这一行)。

当我调试时,我在下面的目标文件中得到了错误,

文件名:Data.DBXDynalink.pas

功能 :函数TDBXDynalinkReader.DerivedNext:布尔值;

错误行 :DBXResult := FMethodTable.FDBXReader_Next(FReaderHandle);

实际错误:模块“dbxora.dll”中地址 04FD6CC2 的访问冲突。读取地址 00000004

下面是我的代码,

...SQLQuery1 initialization....

SQLQuery1.CommandText := Trim(memoSQLText.Lines.Text); // Assigning query
SQLQuery1.Open; // Exactly on this line i'm getting error
if SQLQuery1.RecordCount > 0 then

....Do something here....

注意:相同的查询在低于 Oracle 版本 19C (19.3) 的其他版本中执行

用于应用程序开发的 IDE 版本:DELPHI XE3(我也检查过 DELPHI 10.1 Berlin)

数据库版本:Oracle 19C (19.3)

重现步骤 :

// 1.Execute below queries in order to create testing data ,

create table myuserlist(myuser varchar2(10));

Insert into myuserlist(myuser) values('karthik');
Insert into myuserlist(myuser) values('aarush');
Insert into myuserlist(myuser) values('yuvan');

// 2.Try to open the below mentioned query using TSQLConnection and TSQLQuery 

select listagg(a.myuser, ', ') within group (order by a.myuser) as myusernames from myuserlist a

示例项目位于 GitHub, https://github.com/yuvankarthik/DELPHI-DemoOracleConnect.git

帮我解决这个问题。

4

0 回答 0