IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Outils PostgreSQL Discussion :

migration d'une fonction ecrit en pgadmin3 vers un serveur linux en ligne de command


Sujet :

Outils PostgreSQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 3
    Points
    3
    Par défaut migration d'une fonction ecrit en pgadmin3 vers un serveur linux en ligne de command
    bonjour,

    j'ai dévolopé sur windows un site en php et une basse de donné en postgresql
    maintenant je l'install sur un serveur dédie j'ai du un peu adapté la création des table mais j'ai trouvé facilement mais j'ai également fait 2 fonction et la pas moyen de les crée
    j'ai déja essai de refaire tout la base import export sans succés
    alors j'ai recréé les tables mais les 2 fonctionne ne passe pas
    voici les fonction fonction quand j'utilise pgadmin sous windows


    CREATE OR REPLACE FUNCTION add_client(email text, passe text, date_i bigint, mail_pass text)
    RETURNS text AS
    $BODY$
    DECLARE
    C_email cursor for select mail from client where mail=email ;
    s_email text;

    C_serial cursor for SELECT last_value FROM client_id_seq ;
    s_serial text;

    begin
    open C_email;

    FETCH C_email into s_email;
    IF NOT FOUND THEN
    insert into client (mail,pass,statue,date_inscription,code_modif_pass) values (email,passe,'A',date_i,mail_pass);

    open C_serial;

    FETCH C_serial into s_serial;
    return s_serial;
    END IF;

    return "f";

    end
    $BODY$
    LANGUAGE 'plpgsql' VOLATILE
    COST 100;
    ALTER FUNCTION add_client(text, text, bigint, text) OWNER TO postgre;

    pouvez-vous m'aidé a l'adpter pour qu'elle rentre en ligne de command svp?

    merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 934
    Points : 4 347
    Points
    4 347
    Par défaut
    Citation Envoyé par dannw Voir le message
    bonjour,

    j'ai dévolopé sur windows un site en php et une basse de donné en postgresql
    maintenant je l'install sur un serveur dédie j'ai du un peu adapté la création des table mais j'ai trouvé facilement mais j'ai également fait 2 fonction et la pas moyen de les crée
    j'ai déja essai de refaire tout la base import export sans succés
    alors j'ai recréé les tables mais les 2 fonctionne ne passe pas
    voici les fonction fonction quand j'utilise pgadmin sous windows


    CREATE OR REPLACE FUNCTION add_client(email text, passe text, date_i bigint, mail_pass text)
    RETURNS text AS
    $BODY$
    DECLARE
    C_email cursor for select mail from client where mail=email ;
    s_email text;

    C_serial cursor for SELECT last_value FROM client_id_seq ;
    s_serial text;

    begin
    open C_email;

    FETCH C_email into s_email;
    IF NOT FOUND THEN
    insert into client (mail,pass,statue,date_inscription,code_modif_pass) values (email,passe,'A',date_i,mail_pass);

    open C_serial;

    FETCH C_serial into s_serial;
    return s_serial;
    END IF;

    return "f";

    end
    $BODY$
    LANGUAGE 'plpgsql' VOLATILE
    COST 100;
    ALTER FUNCTION add_client(text, text, bigint, text) OWNER TO postgre;

    pouvez-vous m'aidé a l'adpter pour qu'elle rentre en ligne de command svp?

    merci d'avance
    vous mettez votre SQL dans un fichier et vous l'exécuter via psql…

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    psql -h localhost -U postgres -p 5432 DB_NAME
    \. PATH_TO_FILE.sql
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    psql -h localhost -U postgres -p 5432 DB_NAME < PATH_TO_FILE.sql
    (dans le shell vous allez avoir des ennuis avec les $ …
    il faudrait tout mettre entre single quotes mais alors il faut escaper les single quotes du code SQL… => plus simple de mettre le SQL dans un fichier… ça reste lisible…)

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 3
    Points
    3
    Par défaut merci mais ca marche pas
    tout d'abord un grand merci pour votre réponse
    apres avoir essayer plusieur combinaison pour la command que vous m'avez donné j'ai reussi avec la command suivante

    sh-3.1$psql -U postgres db < /root/db/fclient.sql

    ERREUR: syntax error sur ou près de « text » at character 45
    ERREUR: syntax error sur ou près de « s_email » at character 1
    ERREUR: syntax error sur ou près de « C_serial » at character 1
    ERREUR: syntax error sur ou près de « s_serial » at character 1
    ERREUR: syntax error sur ou près de « open » at character 7
    ERREUR: syntax error sur ou près de « into » at character 17
    ERREUR: syntax error sur ou près de « IF » at character 5
    ERREUR: syntax error sur ou près de « open » at character 3
    ERREUR: syntax error sur ou près de « into » at character 19
    ERREUR: syntax error sur ou près de « return » at character 6
    ERREUR: syntax error sur ou près de « IF » at character 9
    ERREUR: syntax error sur ou près de « return » at character 1
    ERREUR: syntax error sur ou près de « $ » at character 5
    ERREUR: syntax error sur ou près de « OWNER » at character 53

    j'ai mis dans le fichier fclient.sql ceci:

    CREATE OR REPLACE FUNCTION add_client(email text, passe text, date_i bigint, mail_pass text)
    RETURNS text AS
    $BODY$

    DECLARE
    C_email cursor for select mail from client where mail=email ;
    s_email text;

    C_serial cursor for SELECT last_value FROM client_id_seq ;
    s_serial text;

    begin
    open C_email;

    FETCH C_email into s_email;
    IF NOT FOUND THEN
    insert into client (mail,pass,statue,date_inscription,code_modif_pass) values (email,passe,'A',date_i,mail_pass);

    open C_serial;

    FETCH C_serial into s_serial;
    return s_serial;
    END IF;

    return "f";

    end
    $BODY$
    LANGUAGE 'plpgsql' VOLATILE
    COST 100;
    ALTER FUNCTION add_client(text, text, bigint, text) OWNER TO postgre;


    visiblement il n'aime pas le type text voila qui est deseperent
    mais je vs continuer a chercher un grand merci pour votre aide

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 3
    Points
    3
    Par défaut migration windows vers debian
    j'ai installer pgadmin sous windows et j'accède sur mon serveuren mode graphique les erreur sont les meme que dans la ligne de command

    avez vous une iddé ?

  5. #5
    Inactif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 245
    Points : 262
    Points
    262
    Par défaut
    Bonjour (Hi)
    enlevez les lignes vides
    (remove all blank lines in your file)
    remplacez le caractère _ par une autre lettre plus courante dans votre fonction
    (replace all symbol _ with an conventional letter in your function)
    Cordialement (Best regards)

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 934
    Points : 4 347
    Points
    4 347
    Par défaut
    Citation Envoyé par dannw Voir le message
    j'ai installer pgadmin sous windows et j'accède sur mon serveuren mode graphique les erreur sont les meme que dans la ligne de command

    avez vous une iddé ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CREATE OR REPLACE FUNCTION add_client(email text, passe text, date_i bigint, mail_pass text)
     
    ->
     
    CREATE OR REPLACE FUNCTION add_client(text, text, bigint, text)

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    bonjour,

    d'abort merci pour votre aide

    j'ai essayée vos solution sans succés

    d'apres pas mal de tuto il faut installé plpgsql

    normalemet je dois executer c'est 3 script
    il y a en 1 qui ne passe pas

    CREATE FUNCTION plpgsql_call_handler() RETURNS language_handler AS
    '$libdir/plpgsql' LANGUAGE C;
    Ensuite on déclare une fonction de validation

    CREATE FUNCTION plpgsql_validator(oid) RETURNS void AS
    '$libdir/plpgsql' LANGUAGE C;
    Enfin on dit que les deux précédentes fonctions seront utilisables dans les fonctions et triggers via le langage "plpgsql"

    CREATE TRUSTED PROCEDURAL LANGUAGE plpgsql
    HANDLER plpgsql_call_handler
    VALIDATOR plpgsql_validator;


    celle ci ne passe pas
    CREATE FUNCTION plpgsql_validator(oid) RETURNS void AS
    '$libdir/plpgsql' LANGUAGE C;


    ERREUR: Impossible de trouver la fonction "plpgsql_validator" dans le fichier "/usr/lib/postgresql/7.4/lib/plpgsql.so"

    ********** Error **********

    ERREUR: Impossible de trouver la fonction "plpgsql_validator" dans le fichier "/usr/lib/postgresql/7.4/lib/plpgsql.so"
    SQL state: 42883

    je vs cherchez dans cette voix
    je pense que je peux mettre a jour plpgsql.so
    à bientot

  8. #8
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 934
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 934
    Points : 4 347
    Points
    4 347
    Par défaut
    Citation Envoyé par dannw Voir le message
    ********** Error **********

    ERREUR: Impossible de trouver la fonction "plpgsql_validator" dans le fichier "/usr/lib/postgresql/7.4/lib/plpgsql.so"
    SQL state: 42883

    je vs cherchez dans cette voix
    je pense que je peux mettre a jour plpgsql.so
    à bientot
    plpgsql_validator : en 7.4 ?

    c'est pas une fonction de la 8.x ?

  9. #9
    Inactif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 245
    Points : 262
    Points
    262
    Par défaut
    Regardez sur la station Linux
    le fichier /etc/ld.so.conf
    il y a peut être les vestiges d'un ancienne installation ??
    (trace old postgresql install result is wrote instruction wrong path lib)
    tapez au shell ldconfig
    ????

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 3
    Points
    3
    Par défaut tout cela ne fonctionne pas maleureusement
    d'abort merci pour votre aide,

    j'ai retaper les fonction en php et ca fonctionne ainsi
    je construit le site pour le moment si se site commence a bien fonctionné j'aviserai pour le rendre plus performant

    encore merci a tous

    william

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Migration d'une DLL Delphi 32 bits vers 64 bits
    Par pwaesely dans le forum Langage
    Réponses: 1
    Dernier message: 20/03/2009, 13h50
  2. Réponses: 0
    Dernier message: 09/01/2008, 19h58
  3. lier une fonction ecrite en c++ avec une page.NET
    Par tetedeturcq dans le forum ASP.NET
    Réponses: 2
    Dernier message: 19/02/2007, 19h04
  4. [9207] Migration d'une base de 9207 32bits vers 64bits
    Par Cyborg289 dans le forum Oracle
    Réponses: 3
    Dernier message: 27/10/2006, 19h33
  5. migration d'une base de données access vers oracle
    Par narjisovish dans le forum Migration
    Réponses: 2
    Dernier message: 08/09/2005, 11h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo