2011-05-01 2 views
0

으로 전달할 수 없습니다. Entity Framework를 통해 linq에 문자열 값을 전달할 때 "ORA-00932: inconsistent datatypes: expected - got NCLOB"이 나타납니다.은 제목에서 알 수 있듯이 EF를 통해 매개 변수를 Oracle Database

VS 2010, ODAC 2011에서 EF 지원을 사용하고 있습니다.

값 자체 (변수가 없지만 직접 ""을 사용)를 전달하려고 시도했지만 제대로 작동했지만 내 변수를 테스트 한 결과 올바른 값을 제공합니다. 나는 그것이 어딘가에 버그이며 문자열 값이 오라클에 잘못 도달했다고 생각합니다. 누구든지이 문제에 직면 했습니까? 어떤 작업 arround? 사전에

덕분에

public ObservableCollection<String> getCarModels(string carName) 
{ 
    carContext = new Entities(); 
    carModelNamesList = new ObservableCollection<string>(); 
    var result = from d in carContext.CARs 
       where d.NAME == carName 
       select d; 
    foreach (CAR d in result) 
    { 
     string f = d.MODEL; 
     carModelNamesList.Add(f); 
    } 
    return carModelNamesList;   
} 
+1

리터럴에서 작동하지만 변수가 아닌 경우 인코딩 문제가 발생했을 가능성이 있습니까? 오라클 테이블의 정의는 무엇입니까? –

+0

예, varchar2, 아랍어 값이 저장되어 있습니까 ??? 이것이 문제가 될까요? – Musaab

답변

2

들,이 이벤트가 다른 이벤트를 사용했다 테스트의 내 방식, 발생 때 변수가 null의 경우, 내 나쁜 죄송합니다, 그래서 변수가 올바른 값 때를 데 실제 테스트 이벤트가 발생하고 실제 이벤트가 발생했을 때 null이 있으면이 테스트가 도움이되기를 바랍니다.

2

내 Where 절에서 String.Empty 값과 비교하여 varchar2를 검사 할 때 동일한 오류가 발생했습니다. 이로 인해 나에게 무슨 일이 일어나고 있는지 많은 시간을 낭비하게되었습니다. 나는 오라클이 매우 까다 롭기 때문에 당신이 어떤 상태에 있는지 조심해야한다.

+0

이것을 알아 내려고 애 쓰면서, WHERE 절에'String.Empty'가 문제였습니다. 감사. – Kurubaran

0

우리 팀도이 동일한 오류가 발생했으며 데이터베이스에서 Entity Model을 새로 고침하여 해결되었습니다. 컬럼을 nullable로 만들도록 디자이너를 수정했지만, EF 엔진을 "혼란스럽게"만들었으므로 가장 효율적인 방법은 아닌 것 같습니다. 데이터베이스에서 새로 고친 후 디자이너 코드에서 null 입력 가능 열을 보려는 방식으로 코드를 작성했습니다.

물론 우리는 EF 커튼 뒤에서 실제로 무엇이 일어나고 있는지, 그리고 왜 이것이 올라가는지 전혀 알지 못합니다. 버그 같아. 디자이너의 열 속성을 직접 조정할 수없는 이유는 무엇입니까?

관련 문제