Langage SQL commun Oracle/MySQL - SQL/NoSQL - Programmation
Marsh Posté le 10-09-2008 à 11:55:26
Malheureusement, non, ça n'existe pas.
Le plus simple, si tu as une version MySQL 5, c'est d'écrire tes propres fonctions en PL/SQL, et ainsi avoir la même syntaxe sur les deux systèmes. Genre tu crées une fonction "Add_Month()" sous MySQL
Marsh Posté le 10-09-2008 à 13:20:28
Ca, ca me plait pas mal.
J'ai bien la version 5 de MySQL. Saurais - tu me dire la démarche à suivre pour créer des fonctions sous MySQL?
Marsh Posté le 10-09-2008 à 13:26:22
je ne connais pas Business Object mais en cognos (un de ses concurrents) il implémente ses propres méthodes et remappe vers les fonctions du sgbd correspondant, check peut-être cette piste aussi histoire de ne pas réimplémenter un truc en natif.
genre en cognos j'ai un _add_months et pour une connexion autre que odbc (je pense) il l'interprétera suivant le sgbd derrière
Marsh Posté le 10-09-2008 à 13:48:18
http://dev.mysql.com/doc/refman/5. [...] edure.html
(plus autres pages autour)
Marsh Posté le 10-09-2008 à 13:50:50
Merci pour le lien.
Mais j'ai un peu de mal à comprendre comment on declare ce que fait la fonction.
Quelqu'un pourrait-il me donner un exemple de script pour créer la même fonction que add_month chez oracle?
Je comprendrai surement un peu mieux la méthode avec un exemple....
Marsh Posté le 10-09-2008 à 14:43:09
Voilà, j'ai ma fonction add_month sous dbvisualizer qui est donc maintenant égale à un adddate sous MySQl.
Dans dbvisualizer ca fonctionne très bien. En revanche quand je vais sur BO il n'accepte pas le mot add_month (j'ai redémarré ma base MySQL entre temps).
Y a t-il d'autre opération à faire après avoir créée la fonction?
Merci déjà pour l'aide fournie!
Marsh Posté le 10-09-2008 à 15:08:01
En fait je me suis trompé de base
Mais j'avance a grand pas! il me reste juste un souci de format d'un paramètre.
Voici ma requête pour créer la fonction:
create function add_months (date date, n int) returns date
return adddate(date, interval n month)
Mais ici n est un integer. Comment faire que n soit une variable? Car sous oracle on peut mettre n sous forme de variable et ca marche...
Marsh Posté le 10-09-2008 à 11:48:06
Bonjour,
Je cherche un langage commun entre Oracle et MySQL pour certaine opération. Opération faite dans des requêtes pour des objets sous Business Object.
Notamment:
- Ajouter un nombre de mois à une date (nombre de mois étant une variable)
Oracle > Add_month(date, n)
MySQL > date + interval n month ou AddDAte(date, interval n month)
Le mot interval existe bien en Oracle également mais attend en nombre de mois un numérique alors que l'on peut mettre une variable pour MySQL.
Avez des idées pour un langage SQL qui marcherai sous ces 2 bases?
Merci.
Lowee