2017-09-18 6 views
0

Dans SQL Developer (v 4.1) lorsque j'essaie d'exécuter SQL Tuning Advisor sur une requête avec une ou plusieurs variables de liaison, si je laisse l'une d'entre elles nulle, le SQL Tuning Advisor n'affiche aucune information. Est-ce un bogue du développeur SQL, ou ai-je mal compris quelque chose à propos des valeurs nulles, de la liaison et du réglage?Les variables de liaison SQL Developer SQL Tuning Advisor peuvent-elles être nulles?

Voici un exemple simple:

select * from dual where :p = 1; 

Sélectionnez la requête et appuyez sur Ctrl + F12, et vous êtes invité à saisir la valeur de p. Laissez la case à cocher "NULL" cochée et cliquez sur "Appliquer":

Enter Binds for p

SQL Tuning Advisor semble quitter en cours d'exécution immédiatement et affiche aucun détail pour la requête:

SQL Tuning Advisor showing empty Details

Est-ce un bogue SQL Developer, ou ai-je mal compris quelque chose à propos des valeurs nulles, de la liaison et du réglage?

+0

Je ne peux pas reproduire l'erreur avec SQL Developer 17.2 et la base de données 12c. J'ai remarqué quelques bogues associés à l'Assistant SQL Tuning associé à des liaisons avec la base de données 10g (par exemple le bogue 6854919). –

+0

Merci @PatrickBacon. J'ai couru sur une copie de 17.2 et cela fonctionne correctement, donc le bug a évidemment été corrigé. – hmqcnoesy

Répondre

-1
select * from dual where nvl(:p,-1) = 1; 

toute null dans la clause WHERE fait toute NULL algèbre de Boole (FAUX)