2010-11-22 2 views
1

현재 SubSonic3 ORM (ActiveRecords 모드)을 Oracle (ODP.NET) 데이터 공급자 및 T4 템플릿을 사용하여 Oracle 10g (버전 10.2.0.3.0) DB에 액세스합니다.SubSonic3 ActiveRecord에 대한 이상한 쿼리 생성을위한 SubSonic3 T4 템플릿 (대괄호 문제)

나를 위해 다양한 코드를 작성하기 위해 템플릿을 얻는 약간의 사소한 결함을 처리 한 후에는 컴파일하고 실행하기 위해 모든 것을 얻을 수있었습니다. 그러나 생성 된 쿼리에 문제가 있습니다.

추적/코드를 통해 스테핑, 내가 생성되는 무슨 SQL 쿼리를 살펴했다이 발견 :

SELECT [t0].[SOME_COLUMN], [t1].[ANOTHER_COLUMN] 
FROM [USER].[SOME_TABLE] AS t0 
CROSS JOIN [USER].[ANOTHER_TABLE] AS t1 
WHERE ([t0].[ID] = [t1].[ID]) 

그리고 내 코드가 누락 된 표현 "의 오라클의 메시지와 함께 예외를 던지고 : ORA -00936 "입니다. 그래서 나는 명령 줄에서이 쿼리를 직접 실행하려고 시도했는데 같은 메시지를 사용하여 오류가 발생했습니다.

그런 다음 모든 대괄호 (나에게 맞는 모양이 아님)와 "AS"(둘째 줄과 세 번째 줄) 참조가 모두 삭제되었으며 쿼리가 제대로 실행되었습니다.

누군가가 왜 내게 서브 소닉이 이것을하고 있는지 설명 할 수 있습니까? 또는 더 나은 방법, 이것을 고치는 방법?

감사합니다.

편집 : 나는 (오라클 전문가가 아니기 때문에) 질문해야합니다. 대괄호는 정상/합법입니까? "AS"연산자는 어떻습니까?

답변

0

일부 파기를 한 후에 Oracle (및 DB2) 지원을 위해 SubSonic의 트렁크에서이 두 데이터베이스를 더 잘 지원하는 포크가 있음을 발견했습니다. 이 링크를 따라 가십시오 : https://github.com/rally25rs/SubSonic-3.0

이 소스 코드는 실제 거래 인 것 같습니다.

+1

와우, 죄송합니다.이 답변에 늦었습니다.하지만 저는 이전 게시물에 대해 소닉으로 태그를 달고 이것을 보았습니다. 이미 알고 있듯이, 내 GitHub 저장소 (위에서 링크 된 저장소)는 Oracle ODP.NET 지원의 '베타'버전을 얻는 올바른 위치입니다. 이것은 결국 3.1.0.0 버전의 메인 서브 소닉 코드로 옮겨 질 것이지만, 그 릴리스가 언제 일어날 지에 대해서는 알지 못합니다. 나는 이것을 미래에 걸쳐 우연히 만나는 사람들을 위해이 코멘트를 남겨 두어야한다고 생각했다. – CodingWithSpike

+0

@ rally25rs : 다른 Subaru 열광 자에게서 howdy! –