ROWNUM error on Version 9.6.554

Discussion of open issues, suggestions and bugs regarding ADO.NET provider for Oracle
Post Reply
Simonare
Posts: 5
Joined: Thu 18 Jan 2018 18:15

ROWNUM error on Version 9.6.554

Post by Simonare » Wed 18 Jul 2018 11:41

After upgrading .Net Core 2.1, I found out that folowing code

Code: Select all

IQueryable<T> source, ;
var items = await source.Skip((pageIndex - indexFrom) * pageSize)
                .Take(pageSize).ToListAsync(cancellationToken).ConfigureAwait(false);
generated wrong

Erraneous query
SELECT ...SELECTORS
FROM (
SELECT ...SELETORS,
"ROWNUM"() AS "ROWNUM"
FROM TBL "x"
...JOIN OPERATIONS
WHERE "x".ACCOW_REFNO = :p__customerNumber_0
) "t"
WHERE ("t"."ROWNUM" > :p__p_7) AND ("t"."ROWNUM" <= (:p__p_7 + :p__p_8));
EDIT: Another example query:
SELECT ...SELECTORS
FROM SCHEMA.TBL "e"
WHERE ("e".CB_REFNO = :p__get_Item_0) AND ("ROWNUM"() <= 1)

alifidanli
Posts: 1
Joined: Thu 19 Jul 2018 11:33

Re: ROWNUM error on Version 9.6.554

Post by alifidanli » Thu 19 Jul 2018 11:36

ROW_NUMBER() AS "ROWNUM" this part is incorrectly created ...
usage is :
ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY employee_id)

below code generates the sql:
var riskGroupMRepository = _uow.GetRepository<RiscgroupM>();
var result = await riskGroupMRepository.GetQueryable().Include(x => x.RiscgroupDs)
.Where(x => x.RiscgroupDs.Any(d => d.RgdCustRefno == customerNumber && d.RgdMNo == x.RgmNo))
.ToPagedListAsync(pageIndex, pageSize, 0, cancellationToken);

Shalex
Site Admin
Posts: 9543
Joined: Thu 14 Aug 2008 12:44

Re: ROWNUM error on Version 9.6.554

Post by Shalex » Fri 20 Jul 2018 08:09

The bug should be fixed in the new public build: https://www.nuget.org/packages/Devart.D ... re/9.6.558.

Post Reply