有沒有人在嘗試從Oracle查詢中調用外部C函數時看到此錯誤?我使用Oracle 10g,每次嘗試調用庫中的兩個函數之一時都會出現此錯誤。對其他函數的調用每次都會返回正常,儘管可用的函數都是獨立的,不會調用任何OCI *函數。ORA-28579:從外部過程代理回調期間出現網絡錯誤
這裏的存儲過程,用來調用失敗的C代碼:
CREATE OR REPLACE PROCEDURE index_procedure(text in clob, tokens in out nocopy clob, location_needed in boolean)
as language c
name "c_index_proc"
library lexer_lib
with context
parameters
(
context,
text,
tokens,
location_needed
);
任何幫助,將不勝感激。我在此錯誤消息中找到的所有信息都表明要採取的措施是:聯繫Oracle客戶支持。
編輯:我把它縮小到了我知道在我調用OCILobTrim(將它縮短爲0長度)之後在libclntsh中存在段錯誤的點。這是我一直用來調用這個過程的代碼。
declare text CLOB; tokens CLOB;
begin
dbms_lob.createtemporary(tokens, TRUE);
dbms_lob.append(tokens, 'token');
dbms_lob.createtemporary(text, TRUE);
dbms_lob.append(text, '<BODY>Test Document</BODY>');
index_procedure(text, tokens, FALSE);
dbms_output.put_line(tokens);
end;
/
此設置是否有問題可能導致OCILobTrim問題?
Dave,你有關於這個已知問題的鏈接嗎?我沒有對ODCITable接口做任何事情,但也許在那裏有相關的東西。 – 2009-01-12 13:52:18
甲骨文不久前重新修改了他們的支持網站,我沒有看到一種方法來獲取單個文檔的鏈接。我通過搜索錯誤代碼在metalink.oracle.com上找到它。它是bug#5370332,並在文檔#5370332.8中進行了介紹。希望有所幫助。 – 2009-01-12 15:15:50