je voulais savoir:
- si c'est possible de changer le type des champs d'une table oracle en créant une vue là-dessus si oui comment, et,
- est-ce possible d'exporter une vue oracle?
Merci
je voulais savoir:
- si c'est possible de changer le type des champs d'une table oracle en créant une vue là-dessus si oui comment, et,
- est-ce possible d'exporter une vue oracle?
Merci
Il est possible en créant la vue de changer le type d'une colonne de la table référencée en utilisant par exemple une fonction de conversion.
Exemple:
Une vue est un objet d'un schéma qui est pris en compte par l'outil d'export exp.
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 SQL> desc test; Name Null? Type ----------------------------------------- -------- ---------------------------- NUM NUMBER NOM VARCHAR2(30) MOYENNE NUMBER SQL> create view vt as select to_char(num) n2 from test; View created. SQL> select * from vt; N2 ---------------------------------------- 1 2 3 SQL> desc vt; Name Null? Type ----------------------------------------- -------- ---------------------------- N2 VARCHAR2(40) SQL>
Merci de ta réponse.
L'inconvenient de la fonction TO_CHAR c'est qu'elle met d'office la longueur (40).
Je viens d'essayer la fonction "CAST", elle permet de préciser la longueur du champs, mais je ne connais pas la différence entre ces deux fonction.
Pour ma 2ème question, quand je lance la commande d'export sur la vue, la réponse c'est que la vue n'existe pas.
Merci
CAST est une fonction de conversion de type plus générale que TO_CHAR ou TO_NUMBER.
Une vue n'est pas une table, ce n'est qu'une requête stockée dans le dictionnaire Oracle. Il n'y a pas de données dans les vues (lles données retournées par une vue sont les données des tables référencées dans les vues). Je ne parle que de vues et non de vues matérialisées qui sont tout à fait différentes.
La commande d'export permet d'exporter des tables de façon individuelle, des schémas, des tablespaces ou la base complète mais ne permet pas d'exporter une vue de façon individuelle comme une table.
Une vue ne peut être exportée qu'avec un schéma, un tablespace ou la base, comme une procédure stockée ou un package.
Merci pour les explications. Mais y-a-il une solution. Je t'explique mon problème.
J'ai une table dans ma base à laquelle plusieures applications font référence.
Je dois modifier le type de certains champs de cette table (selon l'application cible) et l'exporter quotidiennement dans les répertoires de
ces applications.
Alors à ton avis comment faut-il faire.
Merci
Les modifications d'un type d'une colonne dans une table avec une vue me semble assez limitées.
Exporter une table en changeant le type d'une colonne est peut-être plus facile en utilisant le CREATE TABLE ... AS SELECT ...qui va créer une nouvelle table qui pourra être exportée par exp.
Exemple:
Si la longueur de la colonne VARCHAR2 est trop longue, on peut la modifier avec:
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 SQL> desc test; Name Null? Type ----------------------------------------- -------- ---------------------------- X NUMBER Y VARCHAR2(30) SQL> select * from test; X Y ---------- ------------------------------ 1 1 SQL> create table test2 as select to_char(x) x,y from test; SQL> desc test2; Name Null? Type ----------------------------------------- -------- ---------------------------- X VARCHAR2(40) Y VARCHAR2(30)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SQL> alter table test2 modify (x varchar2(10)); Table altered.
Bonjour,Envoyé par morteza
Une solution simpliste :
1- Crée une vue différente, sur cette table, pour chaque application cible où tu "caste" les données dans le type désiré.
2- Exporte les vues et importe-les respectivement dans les applications désirées.
J'espère que cela te sera utile.
A bientôt.
Merci à vous tous
Vos explications m'ont aidez à avancer.
A bientôt
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager