Je sais que vous pouvez créer une table pour l'exportation comme ceci:Dans Oracle, comment créer une table externe ayant exactement la même structure qu'une table existante?
create table bulk_mbr organization external(
type ORACLE_DATAPUMP
default directory jason_home
location ('mbr.dat'))
as SELECT * FROM mbr;
Mais je voudrais faire quelque chose comme ça pour les importations afin que je puisse créer une table d'importation externe avec la même structure que d'une table existante , chargez les données dedans, puis faites une simple requête INSERT INTO/SELECT FROM pour déplacer les données là-bas. Y a-t-il un moyen de faire cela?
J'ai essayé, mais ça ne marche pas:
create table bulk_mbr organization external(
type ORACLE_LOADER
default directory jason_home
location ('mbr.dat'))
as SELECT * FROM mbr where 1=0;
mais nous avons eu:
ORA-30657: opération non prise en charge sur la table organisée externe
Oui, nous en avons un, mais il y a simplement trop de tables avec lesquelles nous fabriquons manuellement chaque table. 'DBMS_METADATA.get_ddl' est également une bonne idée, mais il ne semble pas que ce soit facile à automatiser. Y a-t-il un autre moyen de le faire, ou est-ce que je vais juste devoir mordre la balle et bidouiller un bloc PL/SQL pour faire tout cela depuis user_tab_cols? –
Ce n'est probablement pas la réponse que le PO veut entendre - car cela implique une saisie supplémentaire. Et il est frustrant que ORA-30657 démarre avec le pilote ORACLE \ _LOADER quand il ne s'applique pas au pilote DATA \ _PUMP. – APC