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

Oracle Discussion :

redirection table requete select


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 210
    Par défaut redirection table requete select
    Bonjour,
    je dois insérer un texte dans un champs de ma "tableA" ; or ce texte est deux fois plus grand que la taille autorisée pas ce champs.

    Je me suis tout naturellement orienté vers la solution d'augmenter la taille du champs, mais "a non pô possible" m'a t'on répondu...

    Réduire la taille du texte ... "a non pô possible" m'a t'on répondu...

    J'ai eu donc l'idée de créer une "tableB" identique à la première "tableA" sauf pour la taille du champs en question qui serai de capacité double par rapport au premier.

    Donc ma question : y a t'il un moyen pour dire à oracle si je fais un
    select champ from ma tableA
    qu'il redirige automatiquement en faisant un
    select champ from ma tableB

    Car je ne peut pas changer la requête comme vous l'aurez bien compris aussi ...

    En vous remerciant d'avance ...

  2. #2
    Membre expérimenté Avatar de Ahmed AANGOUR
    Homme Profil pro
    DBA Oracle
    Inscrit en
    Janvier 2010
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : DBA Oracle

    Informations forums :
    Inscription : Janvier 2010
    Messages : 139
    Par défaut
    NON,
    sauf si vous droppez la table tableA et que vous créez un synonyme tableA pointant vers tableB. Dans ce cas les autres utilisateurs qui requêtent tableA seraient redirigées vers tableB sans qu'ils soient au courant.
    Je dis ça mais je n'ai rien dit

  3. #3
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    Citation Envoyé par allstar Voir le message
    Donc ma question : y a t'il un moyen pour dire à oracle si je fais un
    select champ from ma tableA
    qu'il redirige automatiquement en faisant un
    select champ from ma tableB
    Oui, il existe une méthode qui te permet de faire de bons poissons d'avril à tes collègues, en récrivant select*from a en select*from b...

    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
    SQL> drop table a
    Table dropped.
    SQL> drop table b
    Table dropped.
    SQL> exec SYS.DBMS_ADVANCED_REWRITE.drop_rewrite_equivalence('ab')
    PL/SQL procedure successfully completed.
    SQL> create table a(x varchar2(1))
    Table created.
    SQL> create table b(x varchar2(2))
    Table created.
    SQL> insert into a values ('a')
    1 row created.
    SQL> insert into b values ('BB')
    1 row created.
    SQL> commit
    Commit complete.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SQL> exec SYS.DBMS_ADVANCED_REWRITE.declare_rewrite_equivalence('ab','select*from a','select*from b',false)
    PL/SQL procedure successfully completed.
    SQL> alter session set QUERY_REWRITE_INTEGRITY = ENFORCED
    Session altered.
    SQL> select * from a
    X
    -
    a
    SQL> alter session set QUERY_REWRITE_INTEGRITY = TRUSTED
    Session altered.
    SQL> select * from a
    X 
    --
    BB
    Personnellement, je ne ferais jamais ça, mais ça existe quand même ...

  4. #4
    Membre expérimenté Avatar de Ahmed AANGOUR
    Homme Profil pro
    DBA Oracle
    Inscrit en
    Janvier 2010
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : DBA Oracle

    Informations forums :
    Inscription : Janvier 2010
    Messages : 139
    Par défaut
    Je ne connaissais pas cette astuce. Merci laurent

    J'ai appris récemment grâce au blog d'Arkzoyd qu'on pouvait écrire dans le fichier Alert:
    http://blog.arkzoyd.com/2011/03/ecri...og-oracle.html
    Ton astuce + celle là = je suis prêt pour le 1er Avril

  5. #5
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    Et puis une ORA-600 juste pour amuser ton dba

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SQL> oradebug unit_test dbke_test dde_flow_kge_ora poisson_d_avril 0 0
    Statement processed.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $ tail alert_LSC01.log 
    Errors in file /u01/app/oracle/diag/rdbms/lsc01/LSC01/trace/LSC01_ora_3536.trc  (incident=75085):
    ORA-00600: internal error code, arguments: [poisson_d_avril], [0], [0], [], [], [], [], [], [], [], [], []
    Incident details in: /u01/app/oracle/diag/rdbms/lsc01/LSC01/incident/incdir_75085/LSC01_ora_3536_i75085.trc
    Use ADRCI or Support Workbench to package the incident.
    See Note 411.1 at My Oracle Support for error and packaging details.
    Mon Mar 28 13:09:13 2011
    Dumping diagnostic data in directory=[cdmp_20110328130913], requested by (instance=1, osid=3536), summary=[incident=75085].
    Mon Mar 28 13:09:13 2011
    Sweep [inc][75085]: completed
    Sweep [inc2][75085]: completed

  6. #6
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut unit_test
    Comme son nom l'indique, unit_test est pour faire des tests, ça peut être utile de savoir comment tel ou tel programme réagit à un ORA-600.

    Ou simplement pour tester les packages ADR
    http://laurentschneider.com/wordpres...r-package.html

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 210
    Par défaut
    Cool
    merci c'est précisément que qu'il me fallait.

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

Discussions similaires

  1. requete select avec plusieurs tables
    Par samba2005kanoute dans le forum Forms
    Réponses: 30
    Dernier message: 12/04/2007, 15h46
  2. Requete select sur 2 tables
    Par beho dans le forum Requêtes
    Réponses: 3
    Dernier message: 13/02/2007, 15h19
  3. Requete SELECT SUR +sieurs tables
    Par yanis97 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 21/09/2006, 13h30
  4. Requete select avec table en parametre
    Par minette dans le forum VB 6 et antérieur
    Réponses: 34
    Dernier message: 02/08/2006, 18h46
  5. Requete select pour récupérer les no match entre 2 tables
    Par Celina dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 16/12/2003, 11h59

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