Recherche correpondance SQL Server / Oracle

Recherche correpondance SQL Server / Oracle - SQL/NoSQL - Programmation

Marsh Posté le 01-06-2004 à 16:59:05    

Voila je cherche les correspondances des fonctions SQL Server suivantes en Oracle :
- begin transaction
- convert
- datediff
- isnull
- outer join
- datetime
- datepart
- output
- @@IDENTITY
 
 
merci d'avance pour votre apport et vos réponses !
 :hello:


Message édité par petithomme le 02-06-2004 à 17:13:09
Reply

Marsh Posté le 01-06-2004 à 16:59:05   

Reply

Marsh Posté le 01-06-2004 à 17:59:45    

J'ai trouvé ce tableau de correspondance en cherchant des équivalents SQL normalisé/SQL pour Access:
 
http://sqlpro.developpez.com/SQL_AZ_F.htm
 
J'éspère que tu trouveras ton bon bonheur là dedans!
 
 :hello:

Reply

Marsh Posté le 02-06-2004 à 10:45:55    

ben non y'a pas mon bonheur ca me dit juste que les fonctions ci dessus n'existe pas en Oracle mais ca me donne pas leur équivalences ni leur syntaxe ...

Reply

Marsh Posté le 02-06-2004 à 11:46:33    

- pour les transactions je crois que c est:
      SAVEPOINT T1;
      ....
      ROLLBACK TO T1;
  à verifier ...
 - pour convert tu peux utiliser les fonctions d'oracle comme to_char, to_number, etc suivant en quoi tu veux convertir
 - pour datediff tu utilise "-" avec 1 date de chaque coté
 - l equivalent de isnull c est NVL (même synthaxe)
 - les LEFT JOIN, INNER JOIN marchent avec Oracle (du moins avec une version recente)
 - pour le format datetime c'est date en oracle
 - pour datepart, il faut utiliser to_char(mydate,format)
par ex : pour avoir le mois : to_char(mydate,'MM')
                    l'heure : to_char(mydate,'HH')
 
Voila j espere que ca t aidera

Reply

Marsh Posté le 02-06-2004 à 12:36:20    

ok merci pour ta réponse, je test ca cette après midi !

Reply

Marsh Posté le 02-06-2004 à 14:53:11    

bon pour nvl ca marche a peu pres... j'ai un petit pb quand je fait une syntaxe du type :
nvl((select ... from ... where ...),0)
mais aucun quand je fait :
nvl(MaTable.MaRubrique,0)
 
quelqu'un a une solution ?

Reply

Marsh Posté le 02-06-2004 à 15:06:59    

pour datediff l'opération de soustraction marche mais est-ce qu'elle gère les heures ou pas ?


Message édité par petithomme le 02-06-2004 à 15:07:18
Reply

Marsh Posté le 02-06-2004 à 17:50:20    

la soustraction gere aussi les heures si elles sont en format date mais attention date1 - date2 renvoie toujours un resultat en jour

Reply

Marsh Posté le 02-06-2004 à 17:59:25    

pour nvl il faut faire select nvl(...) from ...
 
pour output si c est pour declarer les variables dans une procedure la correspondance oracle c est OUT.
 
Quand à @@identity ca n'existe pas sous oracle il faut le simuler

Reply

Marsh Posté le 03-06-2004 à 10:28:45    

"Quand à @@identity ca n'existe pas sous oracle il faut le simuler "
 
C'est à dire le simuler ? Je comprend pas à quoi ca sert sous SQL Server ?

Reply

Marsh Posté le 03-06-2004 à 10:28:45   

Reply

Marsh Posté le 03-06-2004 à 11:31:25    

sous sql server ca permet d acceder au numero d incrementation en cours, pour les tables qui en ont un, lors d operations sur celle ci  ...  
Sous oracle, il faut creer une sequence que tu incrementes à chaque operation sur la table dans un trigger. Tu peux alors acceder à @@identity en lisant la valeur courante de la sequence.  
   

Reply

Marsh Posté le 03-06-2004 à 11:37:17    

je crois qu'on s'est pas compris pour le nvl j'ai compris la syntaxe mais j'ai un cas ouca marche pas :
 
SELECT T_ANN_GROUPE.GRP_intID AS "ID",
       T_ANN_GROUPE.GRP_strLIBELLE AS "NOM",
       NVL( (SELECT T_ANN_AUT_APPLI_GRP.AAG_intID_ROLE_ADMIN
      FROM T_ANN_AUT_APPLI_GRP
      WHERE T_ANN_AUT_APPLI_GRP.AAG_intID_APPLI = P_Appli
      ),0) AS "ROLEADMIN"
 
comment faire dans ce cas la ?


Message édité par petithomme le 03-06-2004 à 11:38:51
Reply

Marsh Posté le 03-06-2004 à 14:09:51    

normalement ca devrait marcher ....
ta requete ne renvoie qu une seule ligne ?
c est quoi P_Appli ?

Reply

Marsh Posté le 03-06-2004 à 14:15:26    

non ca compile pas ...
ca me renvoie l'erreur : PLS-00103
P_Appli c'est un paramètre en entrée .

Reply

Marsh Posté le 03-06-2004 à 14:30:10    

c quoi le texte complet de l erreur ?
et la requete totale aussi ...

Reply

Marsh Posté le 03-06-2004 à 14:39:31    

le texte de l'erreur c'est :
 
PLS-00103: Symbole "SELECT" rencontré à la place d'un des
symboles suivants :
( - + mod not null others <an identifier>
<a double-quoted delimited-identifier> <a bind variable> avg
count current exists max min prior sql stddev sum variance
execute forall time timestamp interval date
<a string literal with character set specification>
<a number> <a single-quoted SQL string>
 
 
je vais pas de mettre la requete complete elle est assez longue, je pense que le bout qui a au dessus résume le pb ...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed