Accueil > ASE, SGBDR > [Sybase] Des fonctions qui manquent…

[Sybase] Des fonctions qui manquent…

Aujourd’hui, j’ai eu deux problèmes avec Sybase.  J’aurais eu besoin de fonctions existantes chez Oracle. VDM.

Oups, pardon, c’est pas ça…

Bref, vous l’aurez compris, je travaille sur ASE, actuellement, et j’aurais bien aimé trouver certaines fonctions utiles.
Pour obtenir la version de ASE :

select @@version

Chez moi, ça retourne :

Adaptive Server Enterprise/15.0.3/EBF 16736 ESD#2/P/Sun_svr4/OS 5.8/ase1503/2707/64-bit/FBO/Sun Jul 26 10:29:50 2009

La première chose que je devais faire…vérifier un input utilisateur.
En fait, l’utilisateur importe des données via un CSV, mais en travaillant (mal) avec Excel, un identifiant du type 0000123 se retrouve tronquer en 123. Donc, il faut ajouter les 0 qui vont bien pour avoir 7 caractères.
Sur Oracle, j’aurais utilisé LPAD. Sur ASE…y a pas.
Du coup, j’en arrive à avoir ceci :


SELECT @Var = replicate('0', 7 - char_length(@Var)) || @Var

C’est quand même nettement moins intuitif…

La deuxième chose, c’est une conversion de date.
Dans le même import, j’ai une date au format YYYYMMDD (20120124 pour aujourd’hui) que je dois intégrer dans un champ DATE, au format 24/01/2012.
En Oracle, j’aurais joué avec le TO_DATE. Sur ASE…y a pas.
Du coup, j’en arrive à avoir ceci :

SELECT CONVERT(VARCHAR,CONVERT(DATETIME,'20120124'),103)

C’est quand même nettement moins intuitif…

Bon, après, chacun ses préférences, son passif pour chacune des SGBDR… Y a sans aucun doute de gros avantages à avoir un ASE plutôt qu’un Oracle. Mais perso…pas encore vu…dommage ^^

MAJ 31/01/2012
Un autre truc un peu embêtant dans ASE : il est interdit d’utiliser la fonction getdate() dans une fonction (pourquoi ???)
Bref, un truc pas forcément élégant mais efficace, comme solution de contournement : une vue…

CREATE VIEW vu_currentdate
AS
SELECT getdate() AS current_date

PS : je mettrais ce billet à jour  au cas où je trouve d’autres choses !🙂

Catégories :ASE, SGBDR
  1. Aucun commentaire pour l’instant.
  1. No trackbacks yet.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :