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

SQL Oracle Discussion :

Différence execute/exec/call et compatibilité msado et oracle


Sujet :

SQL Oracle

  1. #1
    bruce-willis
    Invité(e)
    Par défaut Différence execute/exec/call et compatibilité msado et oracle
    Bonjour,

    La question sur la "compatibilité msado et oracle" concerne en fait le fait que les instructions EXEC et EXECUTE ne vont pas sous microsoft ADO !!!
    Donc, pour solution, dois-je passer par l'instruction CALL ??
    En passant, et EXECUTE IMMEDIATE c'est quoi ?

    Concernant toujours la compatibilité ADO et Oracle, qu'en pensez vous ? On dit souvent que Microsoft et Oracle sont en désaccord donc leurs API aussi !!

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Par défaut
    Il est possible que EXEC/EXECUTE ne sont pas reconnus dans la norme SQL qui recommende plutôt d'utiliser CALL.

    EXECUTE IMMEDIATE est une instruction PL/SQL qui permet d'exécuter des requêtes construites dynamiquement: voir le tutoriel.

  3. #3
    bruce-willis
    Invité(e)
    Par défaut
    Il est possible que EXEC/EXECUTE ne sont pas reconnus dans la norme SQL qui recommende plutôt d'utiliser CALL
    Ces 2 instructions sont de quelle norme ??

    Je comprends maintenant le EXECUTE IMMEDIATE, merci pifor !!

    Qu'en pensez-vous de la compatibilité ORACLE et MS ADO ? Je travaille sous Windows en fait

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Par défaut
    Ce sont à priori des commandes Oracle: EXEC/EXECUTE sont soit des commandes SQL*Plus soit des commandes des précompilateurs comme Pro*C.

    Il y a aussi plusieurs standards SQL que je ne connais pas en détail: voir le SQL Reference.

    Je ne connais pas les ni outils ADO ni .Net.

  5. #5
    Membre émérite Avatar de Yorglaa
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    845
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 845
    Par défaut
    Salut,
    si tu parles de ADO.Net, tu ne dois pas appeler une procédure via un ordre SQL (de type execute) mais via le type de commande OracleCommand / "StoredProcedure"...

    voici un petit exemple d'appel de de procédure Oracle en vb.net...
    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
        Dim myConn As New OracleConnection
        Dim myPL As New OracleCommand
     
        Public Function GetExtractDate(ByVal archiveNum As Integer) As Date
            Dim C_dPopDate As Date
            If myConn.State = ConnectionState.Closed Or myConn.State = ConnectionState.Broken Then
                myConn.Open()
            End If
            Dim dParam As New OracleParameter
            Dim nArchiveNum As New OracleParameter
            dParam = myPL.Parameters.Add("dPopDate", OracleDbType.Date, ParameterDirection.Output)
     
            If Not archiveNum = Nothing Then
                With nArchiveNum
                    .ParameterName = "nArchive"
                    .Direction = ParameterDirection.Input
                    .OracleDbType = OracleDbType.Int32
                    .Value = archiveNum
                End With
            Else
                With nArchiveNum
                    .ParameterName = "nArchive"
                    .Direction = ParameterDirection.Input
                    .OracleDbType = OracleDbType.Int32
                    .Value = System.DBNull.Value
                End With
            End If
            myPL.Parameters.Add(nArchiveNum)
            myPL.CommandType = CommandType.StoredProcedure
            myPL.CommandText = "POPULATIONSEL.GetExtractDate"
            myPL.Connection = myConn
            myPL.ExecuteNonQuery()
            C_dPopDate = CDate(dParam.Value.ToString)
            myPL.Parameters.Clear()
     
            Return C_dPopDate
     
        End Function

    ici c'est avec
    myPL.CommandType = CommandType.StoredProcedure
    myPL.CommandText = "POPULATIONSEL.GetExtractDate"

    que tu définis le type d'appel (Procédure PL/SQL) et l'appel lui-même (Package.Procédure)...

  6. #6
    bruce-willis
    Invité(e)
    Par défaut
    En fait, je travailles avec ms ado (win32) pour vb et delphi !!

  7. #7
    bruce-willis
    Invité(e)
    Par défaut
    Ben, toute la solution est sur le site: http://www.ss64.com.
    Plus simple que ça, tu meurs

Discussions similaires

  1. Impression de pdf / execution exec
    Par Lanfear dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 21/01/2010, 14h13
  2. différence entre exec /require
    Par developpeur99 dans le forum Langage
    Réponses: 2
    Dernier message: 22/10/2008, 16h26
  3. Pb execution exec et .bat
    Par fred33 dans le forum Eclipse Java
    Réponses: 15
    Dernier message: 28/04/2008, 13h59
  4. Différence entre Exec et Apply/ExecOn
    Par vain_mich dans le forum ANT
    Réponses: 1
    Dernier message: 16/08/2007, 09h42
  5. Différences execute immediate et commit
    Par pegase06 dans le forum SQL
    Réponses: 11
    Dernier message: 12/02/2007, 14h57

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