Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1415 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Langage SQL commun Oracle/MySQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Langage SQL commun Oracle/MySQL

n°1784927
Lowee
Posté le 10-09-2008 à 11:48:06  profilanswer
 

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

mood
Publicité
Posté le 10-09-2008 à 11:48:06  profilanswer
 

n°1784931
MagicBuzz
Posté le 10-09-2008 à 11:55:26  profilanswer
 

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


Message édité par MagicBuzz le 10-09-2008 à 11:55:33
n°1784957
Lowee
Posté le 10-09-2008 à 13:20:28  profilanswer
 

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?

n°1784962
casimimir
Posté le 10-09-2008 à 13:26:22  profilanswer
 

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

n°1784971
MagicBuzz
Posté le 10-09-2008 à 13:48:18  profilanswer
 
n°1784976
Lowee
Posté le 10-09-2008 à 13:50:50  profilanswer
 

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....

n°1785019
Lowee
Posté le 10-09-2008 à 14:43:09  profilanswer
 

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! :)

n°1785049
Lowee
Posté le 10-09-2008 à 15:08:01  profilanswer
 

En fait je me suis trompé de base :P
 
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...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Langage SQL commun Oracle/MySQL

 

Sujets relatifs
MYSQL : Créer plusieurs vues ou plusieurs tables ?Sortir requête SQL d'une boucle
[MySQL] Optimisation de requeteSQL Server concatener champ + chaine IMPOSSIBLE
Statistiques Php/Sql Allégé[PHP MYSQL]Jointures de tables
Word & Publipostage SQL Serverconseil pour big requete SQL
Manipuler une BdD (Access ou SQL) en VBSSQL reporting services, exporter rapport => XLS
Plus de sujets relatifs à : Langage SQL commun Oracle/MySQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR