|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : juillet 2010 Messages : 8 ![]() |
Bonjour,
Je vous expose tout d'abord la base de données: Elle est composée de plusieurs "schémas", une public (principal) et plusieurs autres qui peuvent variées. Tous les schémas sont structurées de la même manière ainsi il y a les mêmes tables dans le schéma "public" et le schéma "x". Bien-sûr les clés primaires ne sont jamais les mêmes... Le problème : j'aimerais créer une fonction qui insérera les données du schéma x vers le schéma public (principal) J'ai essayé de créer une fonction, mais bien-sûr, débutant comme je suis, je ne sais même pas si je m'y prend bien. Code sql :
Cette fonction se crée sans problème mais à l’exécution, "lenomduschema" n'est pas considérée comme une variable mais comme un schéma qui s'appel "lenomduschema". Merci beaucoup de pouvoir m'aider. KiAhS |
||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : octobre 2008 Messages : 1 507 ![]() |
C'est du SQL dynamique, c.a.d qu'il faut considérer la requête SQL comme une chaine de caractères qu'on construit et la lancer avec la fonction EXECUTE de plpgsql.
Par ailleurs il ne faut pas déclarer la fonction en RETURNS varchar si elle ne retourne rien, mais plutôt en RETURNS void |
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : juillet 2010 Messages : 8 ![]() |
Merci pour ta réponse, mais je ne comprend pas comment considérer la requête SQL comme une chaîne de caractères.
J'ai essayé ça mais sans succès Code sql :
Je n'arrive pas à Comprendre comment ça marche, Si quelqu'un pourrai m'éclairer... Merci |
||
|
|
00
|
|
|
#4 | ||
|
Invité de passage
![]() Inscription : juillet 2010 Messages : 8 ![]() |
Ca y est, merci de ton aide...
voila le code : Code sql :
Sympa, pour la réponse rapide ... ++ |
||
|
|
00
|
|
|
#5 |
![]() ![]() Inscription : octobre 2008 Messages : 1 507 ![]() |
Juste une remarque: il est préférable de manière générale de faire quote_ident(nomduschema) au lieu de simplement nomduschema. Sinon la requête partira en erreur si le nom de schéma contient des caractères non alphanumériques ou accentués.
C'est vrai aussi pour les noms de colonnes ou les noms de table. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com