簡體   English   中英

Oracle在執行由實體框架6.0生成的查詢時引發ORA-00911無效字符錯誤

[英]Oracle throws ORA-00911 invalid character error while executing a query generated by entity framework 6.0

我在下面的由實體Framewrok 6.0生成的查詢中遇到問題。 當我刪除where子句查詢時,執行得很好。 但是我看不到where子句的問題。 你能幫我么?

{SELECT 
"Extent1"."ID" AS "ID", 
"Extent1"."STATECODE" AS "STATECODE", 
"Extent1"."FIRMAID" AS "FIRMAID", 
"Extent1"."ILID" AS "ILID", 
"Extent1"."ILCEID" AS "ILCEID", 
"Extent1"."PLANTURID" AS "PLANTURID", 
"Extent1"."ETUDTURID" AS "ETUDTURID", 
"Extent1"."ETUDAMACID" AS "ETUDAMACID", 
"Extent1"."DILIMID" AS "DILIMID", 
"Extent1"."ACIKLAMA" AS "ACIKLAMA", 
"Extent1"."BASVURUTARIHI" AS "BASVURUTARIHI", 
"Extent1"."ALAN" AS "ALAN", 
"Extent1"."OLCEK" AS "OLCEK", 
"Extent1"."CREATETIME" AS "CREATETIME", 
"Extent1"."UPDATETIME" AS "UPDATETIME", 
"Extent1"."CREATEUSERID" AS "CREATEUSERID", 
"Extent1"."UPDATEUSERID" AS "UPDATEUSERID", 
"Extent2"."ID" AS "ID1", 
"Extent2"."KOD" AS "KOD", 
"Extent2"."AD" AS "AD", 
"Extent2"."CREATETIME" AS "CREATETIME1", 
"Extent2"."UPDATETIME" AS "UPDATETIME1", 
"Extent2"."CREATEUSERID" AS "CREATEUSERID1", 
"Extent2"."UPDATEUSERID" AS "UPDATEUSERID1", 
"Extent3"."ID" AS "ID2", 
"Extent3"."KOD" AS "KOD1", 
"Extent3"."AD" AS "AD1", 
"Extent3"."PLANTURID" AS "PLANTURID1", 
"Extent3"."CREATETIME" AS "CREATETIME2", 
"Extent3"."UPDATETIME" AS "UPDATETIME2", 
"Extent3"."CREATEUSERID" AS "CREATEUSERID2", 
"Extent3"."UPDATEUSERID" AS "UPDATEUSERID2", 
"Extent4"."ID" AS "ID3", 
"Extent4"."VERGINUMARASI" AS "VERGINUMARASI", 
"Extent4"."EMAIL" AS "EMAIL", 
"Extent4"."FIRMAADI" AS "FIRMAADI", 
"Extent4"."BUROTESCILNUMARASI" AS "BUROTESCILNUMARASI", 
"Extent4"."TELEFON" AS "TELEFON", 
"Extent4"."ADRES" AS "ADRES", 
"Extent4"."ILID" AS "ILID1", 
"Extent4"."ILCEID" AS "ILCEID1", 
"Extent4"."MAHALLEID" AS "MAHALLEID", 
"Extent4"."VERGIDAIRESIID" AS "VERGIDAIRESIID", 
"Extent4"."USERID" AS "USERID", 
"Extent4"."NODEID" AS "NODEID", 
"Extent4"."CREATETIME" AS "CREATETIME3", 
"Extent4"."UPDATETIME" AS "UPDATETIME3", 
"Extent4"."CREATEUSERID" AS "CREATEUSERID3", 
"Extent4"."UPDATEUSERID" AS "UPDATEUSERID3", 
"Extent5"."FEATUREID" AS "FEATUREID", 
"Extent5"."ADI_NUMARASI" AS "ADI_NUMARASI", 
"Extent5"."UAVTKOD" AS "UAVTKOD", 
"Extent6"."FEATUREID" AS "FEATUREID1", 
"Extent6"."ADI_NUMARASI" AS "ADI_NUMARASI1", 
"Extent6"."UAVTKOD" AS "UAVTKOD1", 
"Extent6"."ILKOD" AS "ILKOD", 
"Extent7"."ID" AS "ID4", 
"Extent7"."ENLEM" AS "ENLEM", 
"Extent7"."BOYLAM" AS "BOYLAM", 
"Extent7"."DILIMI" AS "DILIMI", 
"Extent7"."MERIDYEN" AS "MERIDYEN", 
"Extent7"."ILADI" AS "ILADI", 
"Extent7"."ILID" AS "ILID2", 
"Extent8"."ID" AS "ID5", 
"Extent8"."KOD" AS "KOD2", 
"Extent8"."AD" AS "AD2", 
"Extent8"."CREATETIME" AS "CREATETIME4", 
"Extent8"."UPDATETIME" AS "UPDATETIME4", 
"Extent8"."CREATEUSERID" AS "CREATEUSERID4", 
"Extent8"."UPDATEUSERID" AS "UPDATEUSERID4"
FROM        "JEOLOJI"."PROJE" "Extent1"
INNER JOIN "JEOLOJI"."ETUDAMAC" "Extent2" ON "Extent1"."ETUDAMACID" = "Extent2"."ID"
INNER JOIN "JEOLOJI"."ETUDTUR" "Extent3" ON "Extent1"."ETUDTURID" = "Extent3"."ID"
INNER JOIN "JEOLOJI"."FIRMA" "Extent4" ON "Extent1"."FIRMAID" = "Extent4"."ID"
INNER JOIN "JEOLOJI"."IL" "Extent5" ON "Extent1"."ILID" = "Extent5"."FEATUREID"
LEFT OUTER JOIN "JEOLOJI"."ILCE" "Extent6" ON "Extent1"."ILCEID" = "Extent6"."FEATUREID"
INNER JOIN "JEOLOJI"."DILIM" "Extent7" ON "Extent1"."DILIMID" = "Extent7"."ID"
INNER JOIN "JEOLOJI"."PLANTUR" "Extent8" ON "Extent1"."PLANTURID" = "Extent8"."ID"
WHERE ((1 = (CASE WHEN (( NVL(INSTR(LOWER(CASE WHEN ("Extent1"."ACIKLAMA" IS NULL) THEN '' ELSE "Extent1"."ACIKLAMA" END), LOWER('Ma')), 0) ) = 1) THEN 1 WHEN (( NVL(INSTR(LOWER(CASE WHEN ("Extent1"."ACIKLAMA" IS NULL) THEN '' ELSE "Extent1"."ACIKLAMA" END), LOWER('Ma')), 0) ) <> 1) THEN 0 END)) AND (22 <> "Extent1"."FIRMAID"))}

我解決了問題。

我們在c#中使用StringLength屬性標記string類型,以防止Entity Framework在Oracle上將它們創建為NCLOB列。 然后,實體框架為帶有StringLenth屬性標記的c#屬性生成類型為nvarchar列。

在此查詢中where由於存在qoutes, where子句可與varchar2配合使用(正如我從我的Db專業朋友那里學到的。)因此,我更改了列的類型並對其進行了解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM