Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/03/2011, 14h58   #1
Membre du Club
 
Inscription : avril 2002
Messages : 153
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 153
Points : 42
Points : 42
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 ...
allstar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2011, 14h59   #2
Membre confirmé
 
Avatar de Ahmed AANGOUR
 
Homme Ahmed AANGOUR
DBA Etudes Oracle
Inscription : janvier 2010
Messages : 123
Détails du profil
Informations personnelles :
Nom : Homme Ahmed AANGOUR
Âge : 33
Localisation : France

Informations professionnelles :
Activité : DBA Etudes Oracle

Informations forums :
Inscription : janvier 2010
Messages : 123
Points : 217
Points : 217
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
__________________
Mon blog Oracle: http://ahmedaangour.blogspot.com/
Ahmed AANGOUR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 11h08   #3
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 925
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

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

Informations forums :
Inscription : décembre 2005
Messages : 2 925
Points : 4 547
Points : 4 547
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 :
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 :
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 ...
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 28/03/2011, 12h52   #4
Membre confirmé
 
Avatar de Ahmed AANGOUR
 
Homme Ahmed AANGOUR
DBA Etudes Oracle
Inscription : janvier 2010
Messages : 123
Détails du profil
Informations personnelles :
Nom : Homme Ahmed AANGOUR
Âge : 33
Localisation : France

Informations professionnelles :
Activité : DBA Etudes Oracle

Informations forums :
Inscription : janvier 2010
Messages : 123
Points : 217
Points : 217
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
__________________
Mon blog Oracle: http://ahmedaangour.blogspot.com/
Ahmed AANGOUR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 13h11   #5
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 925
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

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

Informations forums :
Inscription : décembre 2005
Messages : 2 925
Points : 4 547
Points : 4 547
Et puis une ORA-600 juste pour amuser ton dba

Code :
1
2
SQL> oradebug unit_test dbke_test dde_flow_kge_ora poisson_d_avril 0 0
Statement processed.

Code :
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
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/03/2011, 13h39   #6
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 925
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

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

Informations forums :
Inscription : décembre 2005
Messages : 2 925
Points : 4 547
Points : 4 547
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
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 16h28   #7
Membre du Club
 
Inscription : avril 2002
Messages : 153
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 153
Points : 42
Points : 42
Cool
merci c'est précisément que qu'il me fallait.
allstar est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h55.


 
 
 
 
Partenaires

Hébergement Web