저는 Oracle 데이터베이스를 사용하여 RoR 프로젝트를 개발 중입니다. 최근에 다른 데이터베이스에 DBLink를 추가했는데 이것은 SQL에서 완벽하게 작동합니다. 이 자동으로 사용 쿼리가 작동하지 않습니다 물론ActiveRecord가 dblink에서 테이블에 액세스하는 방법 (올바르게)?
NativeException: java.sql.SQLException: ORA-02084: database name is missing a component
: select * from (SELECT "S985"."S985_947_MODELS_VW"@"R985_A947"."WORLD".* FROM "S985"."S985_947_MODELS_VW"@"R985_A947"."WORLD" ) where rownum <= 14
: 나는 다음과 같은 코드 내 클래스에 테이블을 추가 할 ...
class ServerModel < ActiveRecord::Base
set_table_name "[email protected]_A947.WORLD"
set_primary_key "model_barcode"
acts_as_reportable
acts_as_entity
end
... 나는이 오류가 발생합니다. "S985"."S985_947_MODELS_VW"@"R985_A947"."WORLD".*
을 선택하지 말고 단지 "S985"."S985_947_MODELS_VW".*
을 dblink (@ R985_947.WORLD)의 이름을 복제하지 않고 선택해야합니다.
set_table_name
방법 또는 다른 ActiveRecord
방법으로 가능합니까?
대답은 간단 해 보이지만 해결 방법을 찾을 수 없습니다. 아무도이 문제를 도와 줄 수 있습니까?
감사합니다.
감사 ... 귀하의 솔루션은 원활하게 작동합니다. – Daan
하나만 더 문제가 있습니다 : 내 default_scope에 잘못된 쿼리 문자열 오류 % '이 있습니다. 내 방법은 다음과 같습니다 : default_scope : conditions => [[ "FULLNAME like '/ IT 인프라/하드웨어/서버/물리적/\ %'또는 FULLNAME like '/ IT INFRASTRUCTURE/HARDWARE/OTHER/\ %'"] 와일드 카드로 %. – Daan
named_scope의 장면 뒤에서 생성되는 실제 쿼리 문자열을 볼 수 있습니까? 아니면 심지어 그 지점까지 도달하기 전에 오류가 있습니까? –