|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
|
Membre du Club
![]() Inscription : novembre 2003 Messages : 152 ![]() |
Bonjour à tous !
Étant relativement à cours d'idées et ayant cherché sur le net en vain, je me tourne vers vous pour trouver une solution à mon problème. J'utilise le client Oracle 8.1 et je précise que "j'attaque" ma base de données via un client C# .NET 1.1, que je développe moi-même. Toutes les clés primaires de ma base sont générées via la fonction sys_guid(). J'aimerais pouvoir, dans la même requête que l'INSERT, récupérer la valeur de la clé primaire ainsi générée. J'ai donc cherché et découvert le mot clé RETURNING, permettant de renvoyer la valeur d'un champ donné dans une variable. J'obtiens malheureusement l'erreur suivante : Citation:
J'espère à bientôt. Hobotalker |
|
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
Je viens de vérifier et la clause returning existe au moinj en 8.1.7 donc votre problème est ailleurs.
De toute façon il n’y pas de miracles, il faut chercher d’abord la valeur de la fonction sys_guid() et ensuite l’utiliser dans l’insert. |
|
|
10
|
|
|
#3 |
|
Membre du Club
![]() Inscription : novembre 2003 Messages : 152 ![]() |
Bonjour et merci de votre réponse.
Je suis relativement (voire franchement) nul en SQL et aimerais éviter de passer par du code serveur. De quelle manière pourrais-je donc stocker cette valeur avant de l'envoyer? Comment expliquez-vous que le RETURNING ne fonctionne pas? Encore une fois, merci de votre aide. |
|
|
00
|
|
|
#4 |
![]() ![]() |
Quelle idée farfelue, pourquoi faire simple quand on peut faire compliqué n'est-ce pas ?
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : novembre 2003 Messages : 152 ![]() |
|
|
|
00
|
|
|
#6 | |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 925 ![]() |
http://www.oracle.com/technetwork/da...1.html#1010_01
Citation:
|
|
|
10
|
|
|
#7 |
|
Membre du Club
![]() Inscription : novembre 2003 Messages : 152 ![]() |
Bonjour M. Schneider,
Très bien, le RETURNING ne fonctionne pas dans ma version d'Oracle (le premier intervenant semblait croire le contraire, il me semble). Comme je l'ai dit auparavant, je ne suis pas fixé sur cette "fonction"; je cherche, encore une fois, une solution à mon problème. J'en suis actuellement à faire un SELECT assez peu catholique (pour ne pas dire absolument dégueulasse) à la suite de l'INSERT pour essayer de récupérer la ligne nouvellement générée. Cette solution ne me convient pas, et j'aurais aimé savoir s'il était possible d'y remédier. A bientôt, peut-être. |
|
|
00
|
|
|
#8 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 925 ![]() |
Le RETURNING fonctionne dans 8i en sqlplus, mais pas avec les drivers odbc/jdbc.
Pour avoir le sys_guid, il faut donc faire un truc du style puis Bon, le mieux serait de mettre à jour tes drivers et ta base, 8i date de plus de 10 ans
|
|
10
|
Copyright © 2000-2012 - www.developpez.com