Changement de la table externe FICHIERDÉFECTUEUX, JOURNAL et DISCARDFILE paramètres n'
J'ai plusieurs tables externes utilisé pour lire le fichier de données dans la base de chacun d'eux pour un particulier spécification de fichier.
Pour les fichiers d'un format unique d'une table est réutilisé par la pointant vers un nouveau répertoire par défaut et le nouveau nom de fichier. Cela fonctionne bien sauf que j'ai maintenant besoin de changer dynamiquement la FICHIERDÉFECTUEUX, JOURNAL et DISCARDFILE paramètres, tout en gardant le reste de l'accès paramètres inchangés.
Est-il un moyen pour le faire sans avoir à spécifier de nouveau tous les autres paramètres d'accès (colonne transformations déposé délimiteurs etc.) ainsi?
Vous devez vous connecter pour publier un commentaire.
Malheureusement de changer juste le FICHIERDÉFECTUEUX, JOURNAL et DISCARDFILE paramètres ne pouvait pas être réalisé sans avoir à redéfinir les autres paramètres d'accès trop.
Pour ce que ça vaut et pour ceux qui trouve cette question à l'avenir, j'ai finalement contourné le problème avec les éléments suivants:
Sélectionnez la table externe et l'utilisation REGEXP_REPLACE sur ses paramètres d'accès à remplacer les pièces de l'accès au paramètre BLOB qui correspondent à FICHIERDÉFECTUEUX, JOURNAL et DISCARDFILE et leurs valeurs associées avec les nouvelles valeurs que j'ai fourni.
J'ai ensuite utilisé le SQL dynamique pour modifier la table externe et fourni les nouveaux paramètres d'accès.
Ce n'est pas idéal et j'ai fini par avoir à redéfinir TOUS les paramètres d'accès, mais en utilisant les REGEX (et entièrement test de la sortie) signifie le processus n'était pas trop douloureux ou trop lent.
Vous pouvez modifier la
ACCESS PARAMETERS
clause laissant le reste inchangé.voir ici http://download.oracle.com/docs/cd/B28359_01/server.111/b28310/tables013.htm#i1007591
Notez que pour autant que je sais, Si vous souhaitez modifier uniquement le FICHIERDÉFECTUEUX, vous avez encore à répéter toutes les choses dans les PARAMÈTRES d'ACCÈS.
par exemple:
ACCESS PARAMETERS
clause de métadonnées (en.wikipedia.org/wiki/Oracle_metadata). Faut-il semble être difficile, je suggère d'ouvrir un nouveau fil de discussion sur la façon de le faire. Après avoir recréé les PARAMÈTRES d'ACCÈS de la clause, vous remplacez le FICHIERDÉFECTUEUX ET LE FICHIER, puis exécutez la commande ALTER TABLE.À partir de Oracle 12cR2 vous pourriez remplacer les paramètres externes tables dans la requête.
Par exemple: