Sybase - La FAQConsultez toutes les FAQ
Nombre d'auteurs : 1, nombre de questions : 77, dernière mise à jour : 8 février 2009 Ajouter une question
Question / réponses à tout ce que vous avez toujours voulu savoir sur Sybase ASE et ses dérivés sans jamais oser le demander
- Comment crypter une chaîne de caractère en T-SQL ?
- Comment vérifier qu'une valeur entrée est une date valide ?
- Comment vérifier si la valeur entrée est numérique ?
- Comment connaître le nom de la base de données en cours ?
- Comment récuperer la date système dans une fonction utilisateur ?
- Comment retrouver le libellé d'un message d'erreur par rapport à son n° ?
- Comment débugger une procédure stockée ?
- Comment savoir si un ordre SQL s'est bien déroulé ?
- Comment remettre à zéro la valeur d'un compteur autoincrémenté ?
- Comment connaître la valeur récente inserée dans un champs auto-incrémenté ?
- Comment insérer une valeur implicite dans un champs auto-incrémenté ?
- Comment manipuler le type DATE ?
- Comment lancer un programme externe, une ligne de commande via SQL ?
- Comment comparer une chaîne encryptée à un paramètre
- Peut-on créer des UDF (fonction utilisateur) sous ASE ?
Utiliser la fonction encrypt()
Code SQL : | Sélectionner tout |
1 2 3 4 | DECLARE @datestring varchar(8) SET @datestring = '12/21/98' SELECT case when convert(datetime, @datestring) then 'date correcte' else 'Date invalide' end Test_Date |
Code SQL : | Sélectionner tout |
1 2 3 4 | SELECT case when convert(real, @datestring) then 'nombre valide' else 'Nombre invalide' end Test_Nbre FROM authors GO |
Code SQL : | Sélectionner tout |
1 2 | SELECT DB_NAME() |
ASE interdit l'utilisation de la fonction getdate() dans une fonction utilisateur.
Pour contourner cette difficulté,nous créons une vue qui renvoie la date courante
Code SQL : | Sélectionner tout |
1 2 3 4 | CREATE VIEW V_DateHeure_Courante AS SELECT getdate() AS DateHeure_Courante |
Code SQL : | Sélectionner tout |
1 2 3 | SELECT DateHeure_Courante FROM V_DateHeure_Courante |
Code SQL : | Sélectionner tout |
1 2 3 4 5 | SELECT description FROM master..sysmessages WHERE langid=@@langid AND error= VotreNoDErreur |
L'offre par défaut de Sybase est assez faible en ce sens. Utilisez SQLExpert ou SQLBrowser
En interrogeant la variable globale @@error, directement après l'appel de la requête : 0=succès, sinon no d'erreur
Vous pouvez supprimer la colonne puis la recréer.
Il suffit de consulter la valeur de la variable de sessions @@IDENTITY juste après l'insertion, faire :
Code SQL : | Sélectionner tout |
1 2 | Select @@Identity as Dernière_Valeur_AutoIncrémenté |
Code SQL : | Sélectionner tout |
1 2 3 4 5 6 7 8 | SET IDENTITY_INSERT product ON GO INSERT INTO products (id, product) VALUES(3, 'garden shovel'). GO SET IDENTITY_INSERT product OFF GO |
Toutes les fonctions sont disponibles à cette addresse : Fonctions temporelles
En utilisant la procédure stockée externe xp_cmdshell
Code sql : | Sélectionner tout |
1 2 |
exec xp_cmdshell 'dir /s' |
Code SQL : | Sélectionner tout |
1 2 3 4 | select * from MaTable where ChampMotDePasseCrypte=encrypt(@MaChaineNonCryptee) |
Avant la version 12, non.
Depuis la version 12, oui, mais il faut passer par une licence complémentaire Java et créer la fonction en Java
Depuis la version 15, le module Java est intégré à ASE sans coût supplémentaire
Dès la version 15.0.2, les UDF sont faisables en T-SQL
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.