我已被授予對Oracle數據庫的讀取訪問權限以獲取我自己的數據庫的數據。 DBA給了我一個存儲過程,他保證我是我所需要的,但是我一直無法從Ruby運行它。如何在Ruby中運行Oracle存儲過程
我安裝了ruby-oci8 gem和oracle即時客戶端。
以下是我迄今爲止所管理的內容。
require 'oci8'
conn = OCI8.new('user','pass','//remoteora1:1521/xxxx')
=> #<OCI8::RWHRUBY>
cursor = conn.parse("call REPOSITORY.GET_PMI_ADT('722833', 'W', null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null)")
=> #<OCI8::Cursor:0x56f4d50>
而這就是我卡住的地方。我有這個OCI8 :: Cursor對象,但我不知道該如何處理它。它應該返回一大堆結果(空值在查詢中),但我什麼也沒有得到。運行帶有和沒有參數的cursor.exec(我不知道我需要什麼參數)給我錯誤。
cursor.exec給
OCIError: ORA-06553: PLS-:
ORA-06553: PLS-:
ORA-06553: PLS-:
ORA-06553: PLS-306: wrong number or typ
ORA-06553: PLS-306: wrong number or type of arguments in call to 'GET_PMI_ADT'
ORA-06553: PLS-306: wrong number or type of arguments in call to 'GET_PMI_ADT'
ORA-06553: PLS-306: wrong number or type of arguments in call to 'GET_PMI_ADT'
ORA-06553: PLS-306: wrong number or type of arguments in call to 'GET_PMI_ADT'
ORA-06553: PLS-306: wrong number or type of arguments in call to 'GET_PMI_ADT'
ORA-06553: PLS-306: wrong number or type of arguments in call to 'GET_PMI_ADT'
ORA-06553: PLS-306: wrong number or type of arguments in call to 'GET_PMI_ADT'
等等
cursor.fetch給
OCIError: ORA-24338: statement handle not executed
沒有人有任何的想法嗎?我完全沉浸在我的頭腦中。
此處爲所有仍在觀看的人提供更新。如果我將存儲過程更改爲
BEGIN REPOSITORY.GET_PMI_ADT('722833', 'W', null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null); END;
我現在得到錯誤;
OCIERROR: ORA-06550: line 1, column 45:
PLS-00363: expression ' NULL' cannot be used as an assignment target
這是否確認存儲過程不正確?有什麼明顯的做法來糾正它?
對不起,我應該包括這一點。在上面添加。 – brad 2012-07-23 08:05:34
您是否嘗試過在Oracle中執行確切的代碼行?似乎您試圖調用的存儲過程存在問題。 – Strelok 2012-07-23 08:11:45
我沒有訪問Oracle數據庫的權限,我向DBA保證他的存儲過程不可能有任何問題.....但我有我的懷疑。 – brad 2012-07-23 08:14:14