簡體   English   中英

使用DBLINK時Oracle出錯

[英]Error on Oracle while using DBLINK

我使用的是jboss5.1.x,EJB3.0,JPA3。

我試圖從視圖中“選擇”查詢,該視圖通過dblink連接到另一個數據庫。

源數據庫是Oracle 9 ,目標dabatase是Oracle 8

我收到此錯誤:

15:27:06,625 WARN [JDBCExceptionReporter] SQL Error: 24777, SQLState: 99999

15:27:06,625 ERROR [JDBCExceptionReporter] ORA-24777: use of non-migratable database link not allowed

在我明白在使用XA時無法使用dblink之后,我找到了解決此錯誤的方法。 所以我設法解決了通過更改dblink腳本來創建共享數據庫鏈接 ,如下所示:

 CREATE SHARED DATABASE LINK CONNECT TO IDENTIFIED BY AUTHENTICATED BY IDENTIFIED BY USING 

在這個測試環境中一切正常。

現在我已將我的應用程序移動到生產環境,其中源數據庫是Oracle 11,而目標仍然是Oracle 8

我這次使用的技巧沒有工作,我找不到解決方案。 這是我得到的新例外:

    Caused by: org.hibernate.exception.GenericJDBCException: could not execute query
    at ....Caused by: java.sql.SQLException: ORA-01012: not logged on
    ORA-02063: preceding line from TO_VANTIVE

謝謝你的幫助,

射線,

ORA-01012: not logged on

似乎建議您沒有正確配置新鏈接,因為數據庫現在是11g,可能有區分大小寫的密碼,這是首先要檢查的。

如果遠程模式具有區分大小寫的密碼,請在CREATE LINK中輸入密碼。 從而

CREATE SHARED DATABASE LINK
CONNECT TO bob IDENTIFIED  BY "MyNewPasswd1"
AUTHENTICATED BY jim IDENTIFIED BY "JimsPass23" USING 'DB01';

我們在Weblogic上遇到了同樣的問題,解決方案是使用非XA oracle JDBC驅動程序。

請確保您使用的數據庫鏈接是公共和共享,如果數據庫鏈接不是公共和共享,它將拋出異常ORA-24777:不允許使用不可遷移的數據庫鏈接。 但是,如果您嘗試直接在DB上運行相同的查詢而不使用任何Java或XA事務,它將正常工作。

我在使用Oracle 11g(ORA-24777)遇到了同樣的問題。 我在單個表(在我的模式中)和一個視圖(由數據庫鏈接創建)之間執行了連接。 我已經在XA模式下執行了整個JBoss數據源。

為了使它運行良好,我不得不改變我的dblink視圖的模式 在這種情況下,擁有一個精確的AUTHENTICATED BY子句以避免得到“ORA-01012:not logged”是非常重要的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM