IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Traduction Oracle vers SQL-Server


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 21
    Points : 13
    Points
    13
    Par défaut Traduction Oracle vers SQL-Server
    Bonjour,

    j'ai une requête en Oracle je veux la traduire en Sql Server:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    SELECT b.destination AS LIBRAIRIE,
                    SUM (a.GBWRITTEN) AS TAILLE_DES_SAUVEGARDES,
                    COUNT (a.GBWRITTEN) AS NOMBRE_DES_SAUVEGARDES
                  FROM report_backup a, spec_dest b
    WHERE     a.succes != 00
             AND a.specification_n = b.specification_n
             AND a.specification_n NOT LIKE '%Interactive%'
             AND a.TYPE_SESSION = 'Backup'
               and  (a.starttime >  (GETDATE() - 1))
               and destination not like ('MGHIRA%')
    GROUP BY b.destination
    union
    SELECT CASE(SUBSTRING(b.destination,-3,3) ,'VTL' ,'VTL' ) AS LIBRAIRIE,
                    SUM (a.GBWRITTEN) AS TAILLE_DES_SAUVEGARDES,
                    COUNT (a.GBWRITTEN) AS NOMBRE_DES_SAUVEGARDES
                  FROM report_backup a, spec_dest b
    WHERE     a.succes != 00
             AND a.specification_n = b.specification_n
             AND a.specification_n NOT LIKE '%Interactive%'
             AND a.TYPE_SESSION = 'Backup'
               and  (a.starttime >  (GETDATE() - 1)) and destination like ('MGHIRA%VTL')
    GROUP BY substr(b.destination,-3,3)
    union
    SELECT CASE (  substring(b.destination,-4,2) ,'CS' ,'Catalyst')  AS LIBRAIRIE,
                    SUM (a.GBWRITTEN) AS TAILLE_DES_SAUVEGARDES,
                    COUNT (a.GBWRITTEN) AS NOMBRE_DES_SAUVEGARDES
                  FROM report_backup a, spec_dest b
    WHERE     a.succes != 00
             AND a.specification_n = b.specification_n
             AND a.specification_n NOT LIKE '%Interactive%'
             AND a.TYPE_SESSION = 'Backup'
               and  (a.starttime >  (GETDATE() - 1)) and destination like ('MGHIRA%CS%')
    GROUP BY substr(b.destination,-4,2)
    * Merci *

  2. #2
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    C'est bien

    Où rencontrez vous un problème ?

    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 848
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 848
    Points : 52 964
    Points
    52 964
    Billets dans le blog
    6
    Par défaut
    a.succes != 00 --> pourquoi 00 ???
    a.succes <> 0

    substr(b.destination,-3,3)
    substring(b.destination,-3,3)

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 383
    Points
    18 383
    Par défaut
    Vos cases lignes 13 et 24 sont inutiles puisque vous filtrez expressément dessus.
    Dès lors vous pouvez écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    /*n°13*/    SELECT 'VTL'      AS LIBRAIRIE,
    /*n°24*/    SELECT 'Catalyst' AS LIBRAIRIE,
    Ainsi que supprimer les GROUP BY lignes 22 et 33.

    Remplacez aussi vos UNION par UNION ALL.
    À noter que l'ensemble de ces remarques s'appliquent également pour la version Oracle de la requête.

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 21
    Points : 13
    Points
    13
    Par défaut Réponse
    en fait j'ai trouvé un site qu traduit automatiquement les requêtes oracle en Sql Server mais malheureusement lors de l'éxécution le résultat est différent:
    voila la requête SQl convenable à celle publiée le matin:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    SELECT     b.DESTINATION AS LIBRAIRIE, SUM(a.GBWRITTEN) AS TAILLE_DES_SAUVEGARDES, COUNT(a.GBWRITTEN) AS NOMBRE_DES_SAUVEGARDES
    FROM         REPORT.REPORT_BACKUP AS a INNER JOIN
                          REPORT.SPEC_DEST AS b ON a.SPECIFICATION_N = b.SPECIFICATION_N
    	WHERE	 a.succes  != 00
    	 AND	a.specification_n  = b.specification_n
    	 AND	a.specification_n  NOT LIKE '%Interactive%'
    	 AND	a.TYPE_SESSION  = 'Backup'
    	 AND	(a.starttime  > (GETDATE() - 1))
    	 AND	destination  not like ('MGHIRA%')
    	GROUP BY  b.DESTINATION
    	UNION
    	 SELECT 
     
    			CASE SUBSTRING(b.destination, (- 3 + LEN(b.destination) + 1), 3)
    				WHEN 'VTL' THEN 'VTL' 
    			END AS LIBRAIRIE,
    			 SUM(a.GBWRITTEN) AS TAILLE_DES_SAUVEGARDES, COUNT(a.GBWRITTEN) AS NOMBRE_DES_SAUVEGARDES
    FROM         REPORT.REPORT_BACKUP AS a INNER JOIN
                          REPORT.SPEC_DEST AS b ON a.SPECIFICATION_N = b.SPECIFICATION_N 
     
    	WHERE	 a.succes  != 00
    	 AND	a.specification_n  = b.specification_n
    	 AND	a.specification_n  NOT LIKE '%Interactive%'
    	 AND	a.TYPE_SESSION  = 'Backup'
    	AND	(a.starttime  > (GETDATE() - 1))
    	 AND	destination  like ('MGHIRA%VTL')
    	GROUP BY SUBSTRING(b.destination, (- 3 + LEN(b.destination) + 1), 3)
    	UNION
    	 SELECT
     
    			CASE  SUBSTRING(b.destination, (- 4 + LEN(b.destination) + 1), 2) 
    				WHEN 'CS' THEN 'Catalyst' 
    			END AS LIBRAIRIE,
    			 SUM(a.GBWRITTEN) AS TAILLE_DES_SAUVEGARDES, COUNT(a.GBWRITTEN) AS NOMBRE_DES_SAUVEGARDES
    FROM         REPORT.REPORT_BACKUP AS a INNER JOIN
                          REPORT.SPEC_DEST AS b ON a.SPECIFICATION_N = b.SPECIFICATION_N
    	WHERE	 a.succes  != 00
    	 AND	a.specification_n  = b.specification_n
    	 AND	a.specification_n  NOT LIKE '%Interactive%'
    	 AND	a.TYPE_SESSION  = 'Backup'
    	AND	(a.starttime  > (GETDATE() - 1))
    	 AND	destination  like ('MGHIRA%CS%')
    	GROUP BY SUBSTRING(b.destination, (- 4 + LEN(b.destination) + 1), 2)

  6. #6
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 21
    Points : 13
    Points
    13
    Par défaut résolu
    c'est bon j'ai un trouver un outil de conversion des requêtes su Internet et j'ai pu traduire d'oracle vers SQL mais j'ai un autre problème: la base SQL Server ne prend pas en compte les mises à jour de la base Oracle.
    comment je peux rendre les mises à jour automatiques à partir des tables Oracle merci bien

Discussions similaires

  1. migration de oracle vers sql server 2005 - linked server
    Par aemag dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 16/10/2006, 15h31
  2. [Migration] Oracle vers SQL Server 2005 - Problème de BLOB
    Par thomasrenault dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 03/02/2006, 10h26
  3. Traduction de code Oracle vers SQL Server
    Par randomcl dans le forum Langage SQL
    Réponses: 1
    Dernier message: 13/11/2005, 23h43
  4. [debutan] migration de données Oracle vers SQL SERVER 2000
    Par Mil00se dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 17/08/2005, 17h44
  5. Migration de données Oracle vers SQL server
    Par joul's dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 16/02/2005, 15h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo