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

PostgreSQL Discussion :

PB proc stock avec like variable %


Sujet :

PostgreSQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 36
    Points : 28
    Points
    28
    Par défaut PB proc stock avec like variable %
    Bonjour,

    j'ai créé une proc stock toute simple :
    CREATE OR REPLACE FUNCTION list(varchar) RETURNS org AS '
    select * from org where code like $1;
    '
    LANGUAGE 'sql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;

    jusque là out va bien. sauf que je ne veux pas qu'il me renvoie uniquement ma condition $1 mais j'aimerais qu'il me renvoie tous les enregistrement dont code commence par $1.

    j'ai essayé $1+%, $1%, $1+'%' et d'autres trucs que je me rappelle plus.

    quelqu'un aurait-il une idée ?!!

    Merci

    PS : est-il possible de ne récupérer que certaine colonne et non pas *. quand je fais un select col1,col2 etc...
    j'ai un message d'erreur qui me dit qu'il y a une erreur à ou près de select.

  2. #2
    Membre émérite
    Avatar de hpalpha
    Inscrit en
    Mars 2002
    Messages
    769
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 769
    Points : 2 545
    Points
    2 545
    Par défaut
    Bonjour,
    la concatenation se fait avec l'operateur double pipe :

    $1||'%'


    Il est tout a fait possible de ne pas spécifier * mais ton returns doit changer.
    Delphi 2009 - ZeosLib - DevExpress - TMS - PgDAC
    PostgreSQL 8.4 sous Debian
    Sites : http://postgresql.developpez.com http://dgriessinger.developpez.com

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 36
    Points : 28
    Points
    28
    Par défaut
    merci,

    qu'est que je peux mettre en returns comme mes 2 colonnes sont des varchar j'avais essayé varchar varchar mais bon...ça marche pas.

  4. #4
    Membre émérite
    Avatar de hpalpha
    Inscrit en
    Mars 2002
    Messages
    769
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 769
    Points : 2 545
    Points
    2 545
    Par défaut
    essaye de creer un type genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE TYPE deuxvarchar AS
    ( col1 varchar, col2 varchar);
    ensuite tu defini ta fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE OR REPLACE FUNCTION list(varchar) RETURNS deuxvarchar AS '
    select col1,col2 from org where code like $1;
    '
    LANGUAGE 'sql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
    Delphi 2009 - ZeosLib - DevExpress - TMS - PgDAC
    PostgreSQL 8.4 sous Debian
    Sites : http://postgresql.developpez.com http://dgriessinger.developpez.com

Discussions similaires

  1. Réponses: 0
    Dernier message: 01/02/2008, 17h52
  2. Réponses: 1
    Dernier message: 09/11/2007, 09h37
  3. [T-SQL]Envoyer en paramètre de proc stock Sybase une variable date shell
    Par Doctor Z dans le forum Adaptive Server Enterprise
    Réponses: 5
    Dernier message: 30/10/2007, 16h18
  4. Procédure stockée avec une variable "OUT"
    Par Cpas2latarte dans le forum SQL
    Réponses: 5
    Dernier message: 13/03/2007, 10h22
  5. SQL2K/ procédures stockées avec Like
    Par zalalus dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 05/07/2006, 15h53

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