Lors de l'exécution d'une requête hiérarchique sur une vue qui utilise la clause CONNECT BY... START WITH, l'erreur suivante se produit :
Dans SQL*Plus :
ORA-03113: end-of-file on communication channel
Dans l'Alert log :
ORA-07445: exception encountered: core dump [qknLazOpn()+4] [SIGSEGV] [Address not mapped to object] [0x000000000] [] []
Cette erreur est un Bug documenté chez Oracle (bug #5234379)
Voici un cas test pour reproduire le problème:
CREATE TABLE FOO (ID NUMBER, PARENT_ID NUMBER);
CREATE VIEW BAR (ID, PARENT_ID) AS
SELECT ID, PARENT_ID
FROM FOO
WHERE EXISTS (
SELECT 'x' FROM DUAL
UNION ALL
SELECT 'x' FROM DUAL);
SELECT ID, PARENT_ID
FROM BAR
CONNECT BY PARENT_ID = PRIOR ID
START WITH PARENT_ID = 0;
Ce bug n'est pas corrigé avec le Patchset 10.2.0.3.0. Par contre, il existe une alternative (workaround) :
Alter system set "_optimizer_connect_by_cost_based" = false scope=both;
Bienvenue sur mon blog ! Ce blog me sert principalement d'aide mémoire sur des commandes, des tâches journalières, des problèmes rencontrées, des trucs, des astuces, etc. De jours en jours, je l'alimente avec des sujets que je traite. En créant des articles, je m'offre la chance de pouvoir retrouver facilement ces informations et par le fait même, ça me permet de les partager avec vous.
Aucun message portant le libellé _optimizer_connect_by_cost_based. Afficher tous les messages
Aucun message portant le libellé _optimizer_connect_by_cost_based. Afficher tous les messages
vendredi 13 février 2009
S'abonner à :
Messages (Atom)