2013-10-02 62 views
1

我們有一套針對使用OracleXE在CI服務器上運行的Oracle數據庫的自動化測試。一些測試使用像AQ $ _JMS_TEXT_MESSAGE類型,以便:無法在OracleXE 11g中啓用JMS類型 - 必須聲明組件'CONSTRUCT'

msg SYS.AQ$_JMS_TEXT_MESSAGE; 
BEGIN 
    msg := SYS.AQ$_JMS_TEXT_MESSAGE.construct; 
    msg.set_text(pMessage); 

在我們使用OracleXE 10g中的過去,但我想升級到XE11克到這個數據庫運行在正常的Oracle服務器相匹配。不幸的是,我似乎無法在OracleXE 11g中啓用這些類型。我收到以下錯誤,試圖用它來編譯這些軟件包:

1797/5 PL/SQL: Statement ignored 
1797/37 PLS-00302: component 'CONSTRUCT' must be declared 
1798/5 PL/SQL: Statement ignored 
1798/9 PLS-00302: component 'SET_TEXT' must be declared 
1799/5 PL/SQL: Statement ignored 

OracleXE沒有這些類型在默認情況下在10g中安裝兩種,我們通過執行這個腳本在安裝找到補救:

RDBMS\ADMIN\prvtaqal.plb 

儘管在OracleXE 11g中運行後仍然無法解析類型。我也搜索其他文件的內容與JMS相同的位置,並發現這兩個:

RDBMS\ADMIN\dbmsaqad.sql 
RDBMS\ADMIN\prvtaqji.plb 

安裝那些還沒有效果。

是否有人能夠在OracleXE 11g中使用AQ $ _JMS_TEXT_MESSAGE類型並知道如何解決此問題?還是有能力在XE10g中解決它們現在插入的漏洞?

回答

0

我找到了解決這個問題的方法。我從舊的OracleXE 10g安裝中複製了prvtaqal.plb腳本,並在OracleXE 11g實例中運行該腳本。類型可用,一切都很好。

+0

Hello ioscode,這仍然是讓JMS在Oracle 11g XE中工作的最佳方法嗎? –

+0

據我所知,我從未考慮過它。 – ioscode