Bonjour,

J'ai quelques soucis lorsque j'essaie d'utiliser une séquence d'une base distante pour charger des données via sqlldr dans une base locale.

Situation

J'ai ma base B_LOCAL en local, avec mon user U_LOCAL.
La séquence est sur l'instance B_DIST dans le schéma U_DIST.
Le dblink est sur B_LOCAL et pointe vers B_DIST et s'appelle B_DIST_DBLINK.
La B_DIST contient une séquence S_DIST que je veux utiliser pour alimenter mes tables sur B_LOCAL.

Le fichier de contrôle ressemble à ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
LOAD DATA
...
APPEND
INTO TABLE T_LOCAL
...
(
...
ID "S_DIST.nextval@B_DIST_DBLINK"
...
)

Résultats


seuls quelques enregistrements sont chargés sur ma base locale. Les autres sont rejetés aléatoirement avec le type de message suivant :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Record 13: Rejected - Error on table ACC1, column ID.
ORA-00600: internal error code, arguments: [qersqrfc-1], [Invalid Handle], [], [], [], [], [], []
 
Record 15: Rejected - Error on table ACC1, column ID.
ORA-00600: internal error code, arguments: [qersqrfc-1], [Invalid Handle], [], [], [], [], [], []
 
Record 17: Rejected - Error on table ACC1, column ID.
ORA-00600: internal error code, arguments: [qersqrfc-1], [Invalid Handle], [], [], [], [], [], []


la variante avec un synonyme sur la séquence donne exactement les mêmes résultats, et l'utilisation d'une séquence locale donne un résultat ok.
Le dblink est par ailleurs tout à fait fonctionnel, et permet de requêter la séquence sans souci via un bête select.

J'ai donc la certitude que le problème vient de l'utilisation conjointe de sqlldr et d'un dblink.

Avez-vous des infos sur ce problème ? des solutions de contournement ?
Merci d'avance pour votre aide.