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

MS SQL Server Discussion :

Fonction utilisateur qui renvoie la date du jour


Sujet :

MS SQL Server

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 109
    Points : 68
    Points
    68
    Par défaut Fonction utilisateur qui renvoie la date du jour
    J'aimerai normalisé le nom de la fonction de tous les SGBD qui renvoie la date du jour. J'ai essayé pour cela de définir une fonction utilisateur dans SQL Serveur mais le code suivant ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CREATE FUNCTION bodate()
    RETURNS date AS  
    BEGIN 
    return getDate()
    END
    On ne peut pas utiliser les fonctions du SGBD directement dans une fonction utilisateur?
    Le message d'erreur est "erreur 443 : utilisation incorrecte de getDate à l'intérieur d'une fonction".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    CREATE function user.fnc_getDate() 
    returns date
    as 
    BEGIN 
    declare  @h date
     
    set @h=getDate()
     
    return @h 
    END
    Ne fonctionne pas non plus... merci d'avance pour toute aide...

  2. #2
    Nouveau membre du Club
    Inscrit en
    Mars 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 29
    Points : 25
    Points
    25
    Par défaut
    Sql server interdit l'utilisation de fonctions non deterministes au sein de fonctions utilisateurs. On ne peut donc pas utiliser getdate dans une fonction utilisateur. Pour contourner le problème il suffit de passer par une vue.

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 109
    Points : 68
    Points
    68
    Par défaut
    merci BaronSamdi pour ta réponse... qu'est ce que tu appelles une "vue" ?

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mars 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 29
    Points : 25
    Points
    25
    Par défaut
    Concernant les vues y a de la doc un peu partout. C'est quelque chose d'assez "classique" en base de données. Recherche CREATE VIEW et tu trouvera ton bonheur.

  5. #5
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    create view vDate 
    as 
    select getdate() DTE
    Puis dans la fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE function user.fnc_getDate() 
    returns date 
    as 
    BEGIN 
    declare  @h date 
     
    select @h=DTE from vDate
     
    return @h 
    END
    Ceci dit, je ne vois pas l'utilité de la chose !!!
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 109
    Points : 68
    Points
    68
    Par défaut
    Merci pour votre aide!! C'est sur que comme ca, ca n'a pas trop de sens, mais je n'avais pas le choix!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/12/2012, 21h25
  2. TDateTimePicker qui affiche la date du jour
    Par bullrot dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/11/2007, 16h25
  3. pb fonction plpgsql qui renvoi SETOF record
    Par bossLINDROS dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 14/06/2007, 14h41
  4. fonction javascript qui rassemble une date
    Par Dizystorm dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/12/2004, 10h03

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