J'essaie de créer une toruissure de l'une de mes tables (dans une fonction), mais je rouge cela ne fonctionnera pas,
Maintenant, ma question est de savoir comment pourrais-je y rendre cela aussi dynamique que possible pour que je n'ai pas à mettre à jour les types de données au script de sauvegarde à chaque fois que je modifie un fichier de données paragraphe. de: p> (les colonnes de table sont fixes monnaie)
Cela n'arrive pas souvent, mais nous devions le faire parfois parce que le champ n'était pas assez grand pour une valeur spécifique et que personne n'a mis à jour la table de sauvegarde et l'ID a donné des erreurs. P> EDIT: i oublié quelque chose nécessaire: p> somme: p> varchar2 (24 caractères) code> à
varchar2 (50 caractères) code> p>
5 Réponses :
Vous pouvez créer la table avec: en fonction de votre édition: vous pouvez modifier l'instruction SELECT à tout ce que vous voulez. Rejoignez les deux tables et sélectionnez 3 colonnes d'une table et 2 de l'autre p> p>
Vous pouvez utiliser la déclaration pour créer la sauvegarde.
CREATE TABLE TBTestBackup AS SELECT * FROM ORIGINAL_TABLE_NAME WHERE 1=2;
La syntaxe est Je ne sais pas comment vous pouvez automatiser les modifications apportées aux fichiers de données, mais ce n'est pas quelque chose qui devrait changer souvent (si vous devez travailler sur cela). < / p> p>
sonne comme un Vue matérialisée fonctionnerait pour Ce que vous voulez.
exec dbms_mview.refresh('MY_BACKUP', 'C', atomic_refresh=>false);
Une rafraîchissement de la vue matérialisée ne récupérera pas les modifications de type de données dans les colonnes sous-jacentes cependant, sera-t-elle? Vous obtiendrez toujours une erreur sur rafraîchir si les données étaient trop grandes. (Je viens d'essayer cela, créant ainsi une vue basée sur les tables de ma réponse, puis changer t1.col2 code> sur
varchar2 (5) code> et insère une valeur de 5 caractères. Avant le Insérez la vue Reinshes OK mais affiche toujours comme
Varchar2 (2) Code>; Une fois l'insertion rafraîchissante obtient ORA-12899). Toute la vue peut toujours être abandonnée et recréée bien sûr, donc dans la plupart des cas, il est encore meilleur que les CTA.
Sur la base de vos exigences mises à jour, pour créer une table basée sur les types de ces deux tables:
desc tb Name Null Type ---- ---- ----------------- COL1 NUMBER COL2 VARCHAR2(2) COL3 DATE COL4 DATE -- new column with same type as t1.col3 COL5 VARCHAR2(10 CHAR) -- column from other table COL6 VARCHAR2(12) -- new column with fixed type
parfait! C'est juste ce dont j'avais besoin! :RÉ