6
votes

Erreur sur Oracle lors de l'utilisation de Dblink

J'utilise jboss5.1.x, ejb3.0, jpa3.

J'essaie de faire "Sélectionner" la requête à partir de la vue connectée via dblink strong> à une autre base de données. p>

La base de données source est oracle 9 forte>, la dabatase de destination est oracle 8 forte>. p>

Je reçois cette erreur: p>

    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


0 commentaires

4 Réponses :


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

5 commentaires

Dites-moi Bob et "MyNewPasswd1" se référer à la base de données source ou à la destination? même question sur "JimSpass23", 'db01' Cardientals? Merci.


Les mots de passe et les noms d'utilisateur des deux utilisateurs se réfèrent à la base de données distante .i.e. Pas la base de données sur laquelle vous créez le lien mais la base de données que vous accédez via le lien.


Êtes-vous capable de vous connecter directement aux deux utilisateurs de la base de données distante? Si vous n'avez pas été en mesure de vous connecter, les autres erreurs sont assez susceptibles d'être à cause de cela que vous ne pouvez vraiment rien faire. Soit le lien ne fonctionne pas (avez-vous une entrée TNS pour la base de données correspondant au lien par exemple) ou il existe une question d'autorisations de quelque nature que ce soit (mot de passe incorrect, compte verrouillé, ne permettant pas de connecter ou d'utiliser l'utilisateur manquant).


Je suis désolé si je n'avais pas mentionné, mais Dblink ordinaire travaillait bien entre eux. Ce problème ne se produit que lorsque j'essaie de "créer une base de données partagée"


OK, alors il est probablement l'authentifié par l'utilisateur qui cause la question (ou que vous pouvez en fait être capable de vous connecter à l'environnement de production). Vous devriez vérifier que vous pouvez connecter dans SQL * Plus et utiliser le lien avec une simple sélection.



0
votes

Je rencontrais le même problème ici avec un Oracle 11g (ORA-24777). J'ai effectué une jointure entre une seule table (dans mon schéma) et une vue (créée par un lien de base de données). J'ai exécuté le tout sur une source de données JBoss en mode XA.

Pour que cela fonctionne bien, je devais Modifier le mode de ma vue Dblink . Dans ce cas, est très important d'avoir un précis authentifié par la clause pour éviter d'obtenir "ORA-01012: non enregistré" sur.


0 commentaires

0
votes

Veuillez vous assurer que le lien DB que vous utilisez est public et partagé, si le lien DB n'est pas public et partagé, il lancera une exception ORA-24777: l'utilisation d'une base de données non migrable non autorisée. Mais si vous essayez d'exécuter la même requête directement sur dB sans une transaction Java ou XA, cela fonctionnera bien.


0 commentaires

1
votes

Nous avons le même problème avec Weblogic et la solution consiste à utiliser le pilote XA Oracle JDBC.


0 commentaires