Bonjour à tous !
A chaque fois que j'essaie d'utiliser un Row Value Constructor sous Oracle, je me fais jeter lamentablement sous divers prétextes foireux, du genre "ORA-00920: invalid relational operator" ou "ORA-01796: this operator cannot be used with lists".
Cette fois-ci, j'ai besoin d'en avoir vraiment le coeur net. J'ai donc torturé la doc Oracle jusqu'à ce qu'elle me crache les infos suivantes (http://download.oracle.com/docs/cd/A...s3.htm#1034735) :
- la syntaxe pour comparer deux RVC serait la suivante :
effectivement, la requête suivante fonctionne sur apex.oracle.com :
Code : Sélectionner tout - Visualiser dans une fenêtre à part (col1, col2) = ANY ((val1, val2))
- les seuls opérateurs autorisés seraient = et <> (ainsi que ses synonymes), ce qui limite largement l'intérêt de la chose...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select * from demo_customers where (cust_first_name, cust_last_name) = any (('Eugene', 'Bradley'))
A l'inverse, MySQL et SQL Server offrent une implémentation plus simple (pas besoin de ANY ni des doubles parenthèses) et surtout plus riche (possibilité d'utiliser <, <=, etc.) du RVC. Je ne vous cache pas ma déception
Je ne suis franchement pas un spécialiste Oracle. Quelle est votre expérience ? Est-ce que j'ai bien compris ? ou alors j'ai raté qqch ?
Partager