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

Administration Oracle Discussion :

[11g] Exécuter sql_id


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de macben
    Inscrit en
    Mars 2004
    Messages
    546
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2004
    Messages : 546
    Par défaut [11g] Exécuter sql_id
    Bonjour,

    Est-il possible par un package ou par le grid d'exécuter une requête sans en avoir le texte, juste le sql_id ?

    Je m'explique. J'ai dans mes base line, besoin de faire des tests et active/désactive les plans. Mais lorsque je relance la requête (peu importe où je récupère le texte, dans le grid ou dans dba_hist_sqltext), le sql_id change ! Ce qui du coup n'est pas pratique.

    Vous remerciant par avance pour votre aide,

  2. #2
    Expert confirmé
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Pour éviter tout reformatage, donc avoir le même sql_id:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    declare
      c clob;
    begin
      select sql_fulltext into c from v$sqlarea where  sql_id = '...';
      execute immediate c;
    end;
    /
    Cordialement,
    Franck.

  3. #3
    Membre Expert

    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    536
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 536
    Par défaut
    Salut Franck,

    Et les variables de liaisons?

    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
     
    mohamed@mhouri> select * from emp;
     
    14 rows selected.
     
    mohamed@mhouri> select * from table(dbms_xplan.display_cursor);
     
    PLAN_TABLE_OUTPUT
    ---------------------------------------------------------------------------
    SQL_ID  a2dk8bdn0ujx7, child number 0
    -------------------------------------
    select * from emp
     
    Plan hash value: 3956160932
     
    --------------------------------------------------------------------------
    | Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
    --------------------------------------------------------------------------
    |   0 | SELECT STATEMENT  |      |       |       |     3 (100)|          |
    |   1 |  TABLE ACCESS FULL| EMP  |    14 |   532 |     3   (0)| 00:00:01 |
    --------------------------------------------------------------------------
     
     
    13 rows selected.
     
    mohamed@mhouri> declare
      2    c clob;
      3  begin
      4    SELECT sql_fulltext INTO c FROM v$sqlarea WHERE  sql_id = 'a2dk8bdn0ujx7';
      5    execute immediate c;
      6  end;
      7  /
     
    PL/SQL procedure successfully completed.
     
    mohamed@mhouri> var n number;
    mohamed@mhouri> exec :n := 42
     
    PL/SQL procedure successfully completed.
     
    mohamed@mhouri> select * from emp where lnnvl(:n = 0);
     
    14 rows selected.
     
    mohamed@mhouri> select * from table (dbms_xplan.display_cursor);
     
    PLAN_TABLE_OUTPUT
    -------------------------------------------------------------------------------------
    SQL_ID  8t2pwab82pbqu, child number 0
    -------------------------------------
    select * from emp where lnnvl(:n = 0)
     
    Plan hash value: 3896240783
     
    ---------------------------------------------------------------------------
    | Id  | Operation          | Name | Rows  | Bytes | Cost (%CPU)| Time     |
    ---------------------------------------------------------------------------
    |   0 | SELECT STATEMENT   |      |       |       |     3 (100)|          |
    |*  1 |  FILTER            |      |       |       |            |          |
    |   2 |   TABLE ACCESS FULL| EMP  |    14 |   532 |     3   (0)| 00:00:01 |
    ---------------------------------------------------------------------------
     
    Predicate Information (identified by operation id):
    ---------------------------------------------------
     
       1 - filter(LNNVL(:N=0))
     
     
    19 rows selected.
     
    mohamed@mhouri> declare
      2    c clob;
      3  begin
      4    SELECT sql_fulltext INTO c FROM v$sqlarea WHERE  sql_id = '8t2pwab82pbqu';
      5    execute immediate c;
      6  end;
      7  /
    declare
    *
    ERROR at line 1:
    ORA-01008: not all variables bound
    ORA-06512: at line 5

  4. #4
    Expert confirmé
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Billets dans le blog
    1
    Par défaut
    Bonjour Mohamed,

    Citation Envoyé par Mohamed.Houri Voir le message
    Et les variables de liaisons?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      5    execute immediate c using 42;
    Par contre je suis curieux de savoir comment tu as sql_id=a2dk8bdn0ujx7 ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SQL> SELECT * FROM TABLE (dbms_xplan.display_cursor);
     
    PLAN_TABLE_OUTPUT
    -------------------------------------------------------
    SQL_ID  0k1m8f6d02p62, child number 0
    -------------------------------------
    SELECT * FROM emp WHERE lnnvl(:n = 0)
    Je me demande ce qui peut faire qu'on a pas le même sql_id alors qu'on a le même texte sql

    Cordialement,
    Franck.

  5. #5
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    select * from emp devient
    Voilà

  6. #6
    Expert confirmé
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Billets dans le blog
    1
    Par défaut
    Ah... le formateur syntaxique du forum, bien sûr... merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [11g-11.2.0.3.0] Plans d'exécution déconnants.
    Par macben dans le forum Administration
    Réponses: 6
    Dernier message: 23/01/2013, 13h38
  2. Réponses: 1
    Dernier message: 14/12/2012, 09h41
  3. Plans d'exécution 10g/11g
    Par tropiko dans le forum Oracle
    Réponses: 1
    Dernier message: 12/12/2012, 11h31
  4. Plans d'exécution en 11g
    Par zidane2012 dans le forum Oracle
    Réponses: 6
    Dernier message: 27/11/2012, 13h14
  5. |Grid Control 11g] Avertissement : Exécution sur la pile
    Par tck-lt dans le forum Entreprise Manager
    Réponses: 1
    Dernier message: 14/08/2012, 15h07

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