ORA-00932 NCLOB Contains

Discussion of open issues, suggestions and bugs regarding ADO.NET provider for Oracle
Post Reply
paparestastefano
Posts: 3
Joined: Thu 05 Nov 2020 09:32

ORA-00932 NCLOB Contains

Post by paparestastefano » Thu 05 Nov 2020 09:43

Hi, i use this query in Linq (EF core 3.1.9 - Devart 9.13.1127)
.. from x in Ctx.Dispositions
where IdPezze.Contains(x.MAT_IDCDX) &&
IdGiudizioDaElaborare.Contains(x.TGI_ID.Value) &&
x.MAT_DISCOD == null &&
x.TODISPOSE
select x.MAT_IDCDX).ToList();

execute this sql statement

SELECT "V".MAT_IDCDX
FROM V_WEB_DISPOSITION "V"
WHERE (("V".MAT_IDCDX IN (TO_NCLOB('REI2220653'))
AND "V".TGI_ID IN (1, 4))
AND "V".MAT_DISCOD IS NULL)
AND ("V".TODISPOSE = 1)

MAT_IDCDX is a VARCAHR2(10) field

This sql script generate errors ORA-000932, any ideas for resolve this problem ? (or temp. workaround)

Regards
Stefano

paparestastefano
Posts: 3
Joined: Thu 05 Nov 2020 09:32

Re: ORA-00932 NCLOB Contains

Post by paparestastefano » Thu 05 Nov 2020 11:04

For now i add this [Column("MAT_IDCDX", TypeName = "nvarchar2")] in class definition, and work fine.

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

Re: ORA-00932 NCLOB Contains

Post by Shalex » Fri 06 Nov 2020 09:31

paparestastefano wrote: Thu 05 Nov 2020 11:04 For now i add this [Column("MAT_IDCDX", TypeName = "nvarchar2")] in class definition, and work fine.
That is correct.

There are more options:
1. NVARCHAR will be used if you set max length for string properties explicitly either via .HasMaxLength(1000) or via [MaxLength(1000)].
2. You can set up your application to use NVARCHAR instead of CLOB by default via config.CodeFirstOptions.UseNonLobStrings=true.

paparestastefano
Posts: 3
Joined: Thu 05 Nov 2020 09:32

Re: ORA-00932 NCLOB Contains

Post by paparestastefano » Thu 19 Nov 2020 08:46

Thanks Shalex for this hints
Stefano

Post Reply