Bonjour,
j'ai besoin de créer une table à partir d'une autre table qui contient plus de 400 colonnes (champs). j'aimerai dans ma nouvelle table ne prendre que les 200 premières colonnes.
pouvez-vous me dire comment faire ?
merci pour votre aide.
Bonjour,
j'ai besoin de créer une table à partir d'une autre table qui contient plus de 400 colonnes (champs). j'aimerai dans ma nouvelle table ne prendre que les 200 premières colonnes.
pouvez-vous me dire comment faire ?
merci pour votre aide.
Bonjour,
C'est une chose tout à fait facile grâce à la syntaxe CREATE TABLE ... AS SELECT :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 CREATE TABLE nouvelle_table AS SELECT liste des 200 colonnes FROM table_source;
bonjour et merci pour votre réponse, mais en fait ma question était peut être pas complète. En effet, c'est justement la liste des 200 noms de champs que je veux éviter d'écrire !!!
je pensai qu'il y avait un autre moyen...
Vous pouvez construire ce select à partir de catalogue (all_tab_columns) ou d'un requêteur graphique, mais dans tous les cas il faudra bien indiquer la liste des deux cents colonnes qui vous intéresse.
Il suffit de générer la liste des colonnes pour faire un copier coller :
Si vous n'êtes pas en 11GR2 (ou plus) alors regardez String Aggregation Techniques pour d'autres méthodes.
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 SQL> desc scott.emp; Name Null? Type ----------------------------------------------------- -------- ------------------------------------ EMPNO NOT NULL NUMBER(4) ENAME VARCHAR2(10) JOB VARCHAR2(9) MGR NUMBER(4) HIREDATE DATE SAL NUMBER(7,2) COMM NUMBER(7,2) DEPTNO NUMBER(2) SQL> select listagg(column_name, ', ') WITHIN GROUP (ORDER BY column_id) 2 from all_tab_columns 3 where owner = 'SCOTT' 4 and table_name = 'EMP' 5 and column_id <= 5; LISTAGG(COLUMN_NAME,',')WITHINGROUP(ORDERBYCOLUMN_ID) ---------------------------------------------------------------------------------------------------- EMPNO, ENAME, JOB, MGR, HIREDATE SQL>
Partager