2011-07-12 21 views
0

我是一個noob;在沒有Ruby/RoR知識的情況下交出這個項目,或者訪問創建它的原始人員。Ruby ActiveRecord ::基本查詢添加反引號;需要刪除

不管怎樣,我的ActiveRecord :: Base的實施將反引號到 發送到Oracle的查詢字符串給我一個無效字符錯誤。我不知道該如何刪除它們。

代碼:

class QCTestCycle < ActiveRecord::Base 
    set_primary_key "TC_TESTCYCL_ID" 
end 

QCTestCycle.establish_connection(@qc_db[@environment_name]) 
QCTestCycle.set_table_name "#{@application.qc_table_name}.TESTCYCL" 

unique_tests = QCTestCycle.select("tc_testcycl_id").where(:tc_cycle_id 
=> @application.qc_cycle_id).group("tc_testcycl_id").all 

錯誤:

ActiveRecord::StatementInvalid: OCIError: ORA-00911: invalid character: SELECT tc_testcycl_id FROM `ONLINE_OLS3_DB`.`TESTCYCL` WHERE `ONLINE_OLS3_DB`.`TESTCYCL`.`tc_cycle_id` = 463 GROUP BY tc_testcycl_id

上去除反引號任何幫助將不勝感激。

+0

你在任何地方指定一個oracle適配器嗎?很難分辨究竟傳遞給'#establish_connection'的是什麼。 – Brian

+0

啊,是的,我知道我會在帖子中忘記一些東西。從yml文件:適配器:oracle_enhanced(也用戶,密碼和數據庫,但我應該保持私人...)。 – ScottJShea

+0

因此,從這個評論看來,你似乎在使用Rails ......你爲什麼使用'#establish_connection'?你是否連接到不同於'database.yml'中定義的數據庫? – Brian

回答

1

Brian關於#establish_connection的問題讓我意識到這裏的問題是我的腳本正在爲Oracle數據庫發佈mySQL語法。所以答案是改變司機......現在我需要學習如何做到這一點。非常感謝Brian。

+0

很高興你明白了。這正是我所走向的方向(即,沒有使用正確的適配器連接到您正在連接的數據庫類型)。對不起,我沒有早點回復你。 – Brian

+0

你可以將':adapter =>'oci''(或其他)傳遞給'#establish_connection'。鏈接到API文檔:http://api.rubyonrails.org/classes/ActiveRecord/Base.html#method-c-establish_connection – Brian

+0

不是一個問題,你的幫助都是一樣的,我當然不會在這裏。感謝您的幫助! – ScottJShea