ORA-01790

Discussion of open issues, suggestions and bugs regarding Entity Framework support in ADO.NET Data providers
AndreyR
Devart Team
Posts: 2919
Joined: Mon 07 Jul 2008 13:16

Post by AndreyR » Tue 27 Jul 2010 14:28

Could you please send us (support * devart * com, subject "EF: Multiple Include") a small test project illustrating the issue?

mmartin
Posts: 2
Joined: Mon 26 Jul 2010 06:26

Post by mmartin » Fri 30 Jul 2010 06:36

I passed your request to our R-department, maybe they'll respond...

Our situation looks as follows:

Code: Select all

StringBuilder queryString = new StringBuilder(@"SELECT value x FROM DB.A as A join DB.B as B on (B.A.AID = A.AID) where B.Date = ANYELEMENT((select value max(B1.Date) from DB.B as B1 where B1.A.AId = A.AID)) and B.C.CId = 7");

				ObjectQuery qu = new ObjectQuery(queryString.ToString(), context);

				List result = qu
					.Include("D.E")
					.Include("F")
					.Include("G.H.I")
					.Include("G.H.J")

					.Execute(MergeOption.NoTracking).ToList();

				List result2= null;

				ObjectQuery qu2;
				qu2 = (ObjectQuery)(from code in context.Zs
											 select x1);
				
				reuslt2= qu2
					.Include("Y.W")
					.Include("V")
					.Include("U.T")
					.Execute(MergeOption.NoTracking).ToList();
Without "TypedNulls = true" the second query fails while the first request works fine.

With "TypedNulls = true" the first query fails while the second request works fine.

(I should also remark that the 'A' in the first query is a quite complex object, with a lot of references to other elements)...

AndreyR
Devart Team
Posts: 2919
Joined: Mon 07 Jul 2008 13:16

Post by AndreyR » Tue 03 Aug 2010 12:40

Looking forward to the test project.
You can send it to support * devart * com, subject "EF Typed Nulls".

mpweed
Posts: 2
Joined: Fri 18 Jun 2010 15:00
Location: Allentown, PA

ORA-01790

Post by mpweed » Wed 10 Nov 2010 22:59

We're experiencing this error too using Silverlight with WCF Data Services. So we have no server-side Entities partial class with which we can hook the OnContextCreated() method and set the Devart.Data.Oracle.Entity.OracleEntityProviderServices.TypedNulls = true. What are we to do to get around this problem?

mpweed
Posts: 2
Joined: Fri 18 Jun 2010 15:00
Location: Allentown, PA

ORA-01790

Post by mpweed » Wed 10 Nov 2010 23:34

Disregard my previous post. I was able to create a partial Entities class in our data access project containing our .edmx and implement the partial OnContextCreated() method to set Devart.Data.Oracle.Entity.OracleEntityProviderServices.TypedNulls = true. Things are working now.

AndreyR
Devart Team
Posts: 2919
Joined: Mon 07 Jul 2008 13:16

Post by AndreyR » Thu 12 May 2011 14:42

The problems with StringCastFormat, TypedNulls, and Charset mismatch are fixed in the latest Beta build.
We plan to release a new Release build in a week or so.
All previous workarounds are marked as deprecated.

ameboide
Posts: 3
Joined: Tue 07 Jun 2011 22:05

Post by ameboide » Tue 07 Jun 2011 22:17

I recently upgraded to the latest version (6.30) and got this error in a query that worked fine before (v5.something... 5.70?)

I looked at the SQL query and tracked down the problem to a field of type CLOB (nullable) that was being UNIONed with TO_CHAR(NULL). Changing that to TO_CLOB(NULL) fixed the query. Is it possible to fix this?

AndreyR
Devart Team
Posts: 2919
Joined: Mon 07 Jul 2008 13:16

Post by AndreyR » Wed 08 Jun 2011 07:57

Could you please regenerate the model?
There was a problem in the Unicode facet setting that was fixed in the latest build.
Please notify us if the error persists.

ameboide
Posts: 3
Joined: Tue 07 Jun 2011 22:05

Post by ameboide » Wed 08 Jun 2011 15:36

Regenerating the model fixed it (I thought I had already done that, seems like I didn't :oops: ), thank you :)

Alladin
Posts: 149
Joined: Mon 27 Nov 2006 16:18
Contact:

Post by Alladin » Wed 06 Jul 2011 16:01

Having the same problem with many-to-many relation preload.

Setting OracleEntityProviderServices.TypedNulls = true or false makes no difference.

Code: Select all

SELECT 
"UnionAll1".TYPE AS C1, 
"UnionAll1".ID AS C2, 
"UnionAll1".XID AS C3, 
"UnionAll1".TS AS C4, 
"UnionAll1".NAME AS C5, 
"UnionAll1".DESCRIPTION AS C6, 
"UnionAll1".ISSUER AS C7, 
"UnionAll1".FLAGS AS C8, 
"UnionAll1".TYPE1 AS C9, 
"UnionAll1".EXTID AS C10, 
"UnionAll1".TYPE2 AS C11, 
"UnionAll1".VALIDFROM AS C12, 
"UnionAll1".VALIDUNTIL AS C13, 
"UnionAll1".CREATED AS C14, 
"UnionAll1".DELETED AS C15, 
"UnionAll1".C2 AS C16, 
"UnionAll1".TYPE3 AS C17, 
"UnionAll1".ID1 AS C18, 
"UnionAll1".XID1 AS C19, 
"UnionAll1".TS1 AS C20, 
"UnionAll1".NAME1 AS C21, 
"UnionAll1".DESCRIPTION1 AS C22, 
"UnionAll1".ISSUER1 AS C23, 
"UnionAll1".FLAGS1 AS C24, 
"UnionAll1".TYPE4 AS C25, 
"UnionAll1".EXTID1 AS C26, 
"UnionAll1".TYPE5 AS C27, 
"UnionAll1".VALIDFROM1 AS C28, 
"UnionAll1".VALIDUNTIL1 AS C29, 
"UnionAll1".CREATED1 AS C30, 
"UnionAll1".DELETED1 AS C31, 
"UnionAll1".TYPE6 AS C32, 
"UnionAll1".ID2 AS C33, 
"UnionAll1".XID2 AS C34, 
"UnionAll1".TS2 AS C35, 
"UnionAll1".NAME2 AS C36, 
"UnionAll1".DESCRIPTION2 AS C37, 
"UnionAll1".ISSUER2 AS C38, 
"UnionAll1".FLAGS2 AS C39, 
"UnionAll1".TYPE7 AS C40, 
"UnionAll1".EXTID2 AS C41, 
"UnionAll1".TYPE8 AS C42, 
"UnionAll1".VALIDFROM2 AS C43, 
"UnionAll1".VALIDUNTIL2 AS C44, 
"UnionAll1".CREATED2 AS C45, 
"UnionAll1".DELETED2 AS C46, 
"UnionAll1".C1 AS C47, 
"UnionAll1".ID3 AS C48, 
"UnionAll1".XID3 AS C49, 
"UnionAll1".TS3 AS C50, 
"UnionAll1".NAME3 AS C51, 
"UnionAll1".DESCRIPTION3 AS C52, 
"UnionAll1".ISSUER3 AS C53, 
"UnionAll1".FLAGS3 AS C54, 
"UnionAll1".TYPE9 AS C55, 
"UnionAll1".EXTID3 AS C56, 
"UnionAll1".TYPE10 AS C57, 
"UnionAll1".VALIDFROM3 AS C58, 
"UnionAll1".VALIDUNTIL3 AS C59, 
"UnionAll1".CREATED3 AS C60, 
"UnionAll1".DELETED3 AS C61, 
"UnionAll1".C3 AS C62, 
"UnionAll1".C4 AS C63, 
"UnionAll1".C5 AS C64, 
"UnionAll1".C6 AS C65, 
"UnionAll1".C7 AS C66, 
"UnionAll1".C8 AS C67, 
"UnionAll1".C9 AS C68, 
"UnionAll1".C10 AS C69, 
"UnionAll1".C11 AS C70, 
"UnionAll1".C12 AS C71, 
"UnionAll1".C13 AS C72, 
"UnionAll1".C14 AS C73, 
"UnionAll1".C15 AS C74, 
"UnionAll1".C16 AS C75
FROM  (SELECT 
	CASE WHEN "Join1".TYPE IS NULL THEN TO_NUMBER(NULL) ELSE 1 END AS C1, 
	"Extent1".TYPE AS TYPE, 
	"Extent1".ID AS ID, 
	"Extent1".XID AS XID, 
	"Extent1".TS AS TS, 
	"Extent1".NAME AS NAME, 
	"Extent1".DESCRIPTION AS DESCRIPTION, 
	"Extent1".ISSUER AS ISSUER, 
	"Extent1".FLAGS AS FLAGS, 
	"Extent1".TYPE AS TYPE1, 
	"Extent1".EXTID AS EXTID, 
	"Extent1".TYPE AS TYPE2, 
	"Extent1".VALIDFROM AS VALIDFROM, 
	"Extent1".VALIDUNTIL AS VALIDUNTIL, 
	"Extent1".CREATED AS CREATED, 
	"Extent1".DELETED AS DELETED, 
	'Children,Parents' AS C2, 
	"Extent1".TYPE AS TYPE3, 
	"Extent1".ID AS ID1, 
	"Extent1".XID AS XID1, 
	"Extent1".TS AS TS1, 
	"Extent1".NAME AS NAME1, 
	"Extent1".DESCRIPTION AS DESCRIPTION1, 
	"Extent1".ISSUER AS ISSUER1, 
	"Extent1".FLAGS AS FLAGS1, 
	"Extent1".TYPE AS TYPE4, 
	"Extent1".EXTID AS EXTID1, 
	"Extent1".TYPE AS TYPE5, 
	"Extent1".VALIDFROM AS VALIDFROM1, 
	"Extent1".VALIDUNTIL AS VALIDUNTIL1, 
	"Extent1".CREATED AS CREATED1, 
	"Extent1".DELETED AS DELETED1, 
	"Extent1".TYPE AS TYPE6, 
	"Extent1".ID AS ID2, 
	"Extent1".XID AS XID2, 
	"Extent1".TS AS TS2, 
	"Extent1".NAME AS NAME2, 
	"Extent1".DESCRIPTION AS DESCRIPTION2, 
	"Extent1".ISSUER AS ISSUER2, 
	"Extent1".FLAGS AS FLAGS2, 
	"Extent1".TYPE AS TYPE7, 
	"Extent1".EXTID AS EXTID2, 
	"Extent1".TYPE AS TYPE8, 
	"Extent1".VALIDFROM AS VALIDFROM2, 
	"Extent1".VALIDUNTIL AS VALIDUNTIL2, 
	"Extent1".CREATED AS CREATED2, 
	"Extent1".DELETED AS DELETED2, 
	"Join1".ID AS ID3, 
	"Join1".XID AS XID3, 
	"Join1".TS AS TS3, 
	"Join1".NAME AS NAME3, 
	"Join1".DESCRIPTION AS DESCRIPTION3, 
	"Join1".ISSUER AS ISSUER3, 
	"Join1".FLAGS AS FLAGS3, 
	"Join1".TYPE AS TYPE9, 
	"Join1".EXTID AS EXTID3, 
	"Join1".TYPE AS TYPE10, 
	"Join1".VALIDFROM AS VALIDFROM3, 
	"Join1".VALIDUNTIL AS VALIDUNTIL3, 
	"Join1".CREATED AS CREATED3, 
	"Join1".DELETED AS DELETED3, 
	TO_CHAR(NULL) AS C3, 
	TO_CHAR(NULL) AS C4, 
	CAST(NULL AS TIMESTAMP(9)) AS C5, 
	TO_NCHAR(NULL) AS C6, 
	TO_NCLOB(NULL) AS C7, 
	TO_CHAR(NULL) AS C8, 
	TO_NCHAR(NULL) AS C9, 
	TO_NUMBER(NULL) AS C10, 
	TO_NCHAR(NULL) AS C11, 
	TO_NUMBER(NULL) AS C12, 
	CAST(NULL AS TIMESTAMP(9)) AS C13, 
	CAST(NULL AS TIMESTAMP(9)) AS C14, 
	CAST(NULL AS TIMESTAMP(9)) AS C15, 
	TO_NUMBER(NULL) AS C16
	FROM  INDEXES "Extent1"
	LEFT OUTER JOIN  (SELECT 
		"Extent2".PARENT AS PARENT, 
		"Extent2".CHILD AS CHILD, 
		"Extent3".ID AS ID, 
		"Extent3".XID AS XID, 
		"Extent3".TS AS TS, 
		"Extent3".NAME AS NAME, 
		"Extent3".ISSUER AS ISSUER, 
		"Extent3".FLAGS AS FLAGS, 
		"Extent3".TYPE AS TYPE, 
		"Extent3".EXTID AS EXTID, 
		"Extent3".DESCRIPTION AS DESCRIPTION, 
		"Extent3".VALIDFROM AS VALIDFROM, 
		"Extent3".VALIDUNTIL AS VALIDUNTIL, 
		"Extent3".CREATED AS CREATED, 
		"Extent3".DELETED AS DELETED
		FROM  INDEXES_TREE "Extent2"
		INNER JOIN INDEXES "Extent3" ON "Extent3".ID = "Extent2".CHILD ) "Join1" ON "Extent1".ID = "Join1".PARENT
UNION ALL
	SELECT 
	2 AS C1, 
	"Extent4".TYPE AS TYPE, 
	"Extent4".ID AS ID, 
	"Extent4".XID AS XID, 
	"Extent4".TS AS TS, 
	"Extent4".NAME AS NAME, 
	"Extent4".DESCRIPTION AS DESCRIPTION, 
	"Extent4".ISSUER AS ISSUER, 
	"Extent4".FLAGS AS FLAGS, 
	"Extent4".TYPE AS TYPE1, 
	"Extent4".EXTID AS EXTID, 
	"Extent4".TYPE AS TYPE2, 
	"Extent4".VALIDFROM AS VALIDFROM, 
	"Extent4".VALIDUNTIL AS VALIDUNTIL, 
	"Extent4".CREATED AS CREATED, 
	"Extent4".DELETED AS DELETED, 
	'Children,Parents' AS C2, 
	"Extent4".TYPE AS TYPE3, 
	"Extent4".ID AS ID1, 
	"Extent4".XID AS XID1, 
	"Extent4".TS AS TS1, 
	"Extent4".NAME AS NAME1, 
	"Extent4".DESCRIPTION AS DESCRIPTION1, 
	"Extent4".ISSUER AS ISSUER1, 
	"Extent4".FLAGS AS FLAGS1, 
	"Extent4".TYPE AS TYPE4, 
	"Extent4".EXTID AS EXTID1, 
	"Extent4".TYPE AS TYPE5, 
	"Extent4".VALIDFROM AS VALIDFROM1, 
	"Extent4".VALIDUNTIL AS VALIDUNTIL1, 
	"Extent4".CREATED AS CREATED1, 
	"Extent4".DELETED AS DELETED1, 
	"Extent4".TYPE AS TYPE6, 
	"Extent4".ID AS ID2, 
	"Extent4".XID AS XID2, 
	"Extent4".TS AS TS2, 
	"Extent4".NAME AS NAME2, 
	"Extent4".DESCRIPTION AS DESCRIPTION2, 
	"Extent4".ISSUER AS ISSUER2, 
	"Extent4".FLAGS AS FLAGS2, 
	"Extent4".TYPE AS TYPE7, 
	"Extent4".EXTID AS EXTID2, 
	"Extent4".TYPE AS TYPE8, 
	"Extent4".VALIDFROM AS VALIDFROM2, 
	"Extent4".VALIDUNTIL AS VALIDUNTIL2, 
	"Extent4".CREATED AS CREATED2, 
	"Extent4".DELETED AS DELETED2, 
	TO_CHAR(NULL) AS C3, 
	TO_CHAR(NULL) AS C4, 
	CAST(NULL AS TIMESTAMP(9)) AS C5, 
	TO_NCHAR(NULL) AS C6, 
	TO_NCLOB(NULL) AS C7, 
	TO_CHAR(NULL) AS C8, 
	TO_NCHAR(NULL) AS C9, 
	TO_NUMBER(NULL) AS C10, 
	TO_NCHAR(NULL) AS C11, 
	TO_NUMBER(NULL) AS C12, 
	CAST(NULL AS TIMESTAMP(9)) AS C13, 
	CAST(NULL AS TIMESTAMP(9)) AS C14, 
	CAST(NULL AS TIMESTAMP(9)) AS C15, 
	TO_NUMBER(NULL) AS C16, 
	"Join3".ID AS ID3, 
	"Join3".XID AS XID3, 
	"Join3".TS AS TS3, 
	"Join3".NAME AS NAME3, 
	"Join3".DESCRIPTION AS DESCRIPTION3, 
	"Join3".ISSUER AS ISSUER3, 
	"Join3".FLAGS AS FLAGS3, 
	"Join3".TYPE AS TYPE9, 
	"Join3".EXTID AS EXTID3, 
	"Join3".TYPE AS TYPE10, 
	"Join3".VALIDFROM AS VALIDFROM3, 
	"Join3".VALIDUNTIL AS VALIDUNTIL3, 
	"Join3".CREATED AS CREATED3, 
	"Join3".DELETED AS DELETED3
	FROM  INDEXES "Extent4"
	INNER JOIN  (SELECT 
		"Extent5".PARENT AS PARENT, 
		"Extent5".CHILD AS CHILD, 
		"Extent6".ID AS ID, 
		"Extent6".XID AS XID, 
		"Extent6".TS AS TS, 
		"Extent6".NAME AS NAME, 
		"Extent6".ISSUER AS ISSUER, 
		"Extent6".FLAGS AS FLAGS, 
		"Extent6".TYPE AS TYPE, 
		"Extent6".EXTID AS EXTID, 
		"Extent6".DESCRIPTION AS DESCRIPTION, 
		"Extent6".VALIDFROM AS VALIDFROM, 
		"Extent6".VALIDUNTIL AS VALIDUNTIL, 
		"Extent6".CREATED AS CREATED, 
		"Extent6".DELETED AS DELETED
		FROM  INDEXES_TREE "Extent5"
		INNER JOIN INDEXES "Extent6" ON "Extent6".ID = "Extent5".PARENT ) "Join3" ON "Extent4".ID = "Join3".CHILD) "UnionAll1"
ORDER BY "UnionAll1".ID2 ASC, "UnionAll1".C1 ASC
Removing nulls casts with TO_CHAR, TO_NCHAR, TO_NCLOB etc. solves the issue. Is there hidden switch to disable typecast?

AndreyR
Devart Team
Posts: 2919
Joined: Mon 07 Jul 2008 13:16

Post by AndreyR » Thu 07 Jul 2011 09:45

Alladin, could you please send us the model file and the query you are using to get this SQL?

Post Reply