Vous pouvez créer une table externe pour lire les fichiers journaux. La vertu de ceci est que les tables externes peuvent être utilisées dans les requêtes SQL.
Tout d'abord, vous devez créer un objet de répertoire pour identifier le chemin du répertoire du système d'exploitation. Cela doit être fait par un utilisateur avec l'privilège CREATE ANY DIRECTORY (probablement un compte DBA) ....
SQL> create or replace directory sqlldr_log_dir as 'C:\your\directory\path'
2/
Directory created.
SQL> grant read , write on directory sqlldr_log_dir to apc
2/
Grant succeeded.
SQL>
Ensuite, nous créons la table. Notez le nom d'espace réservé pour le fichier journal dans la clause de localisation ....
SQL> create table sqlldr_logfiles (
2 text_line varchar2(1024)
3 )
4 organization external
5 (
6 type oracle_loader
7 default directory sqlldr_log_dir
8 access parameters
9 (records delimited by newline
10 fields (text_line char(1024)
11 )
12 )
13 location ('changeme.log')
14 )
15/
Table created.
SQL>
maintenant vers le système d'exploitation pour faire une importation ...
C:\temp>imp apc file=apc_20100204.dmp log=apc_20100204.log tables=PTEST6,A
Import: Release 11.1.0.6.0 - Production on Thu Feb 4 11:51:07 2010
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Password:
Connected to: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Export file created by EXPORT:V11.01.00 via conventional path
import done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set
. importing APC's objects into APC
. importing APC's objects into APC
. . importing table "A" 12 rows imported
. . importing table "PTEST6" 19 rows imported
IMP-00009: abnormal end of export file
Import terminated successfully with warnings.
C:\temp>
Ce répertoire doit être le même que vous avez utilisé diectory avant. Retour en SQL. D'abord, nous signalons la table externe au fichier journal, nous avons utilisé plus tôt et une requête à partir ... il
SQL> alter table sqlldr_logfiles location ('apc_20100204.log')
2/
Table altered.
SQL> select * from sqlldr_logfiles
2 where text_Line like '. . importing table%'
3/
text_Line
--------------------------------------------------------------------------------
. . importing table "A" 12 rows imported
. . importing table "PTEST6" 19 rows imported
SQL>
Le formatage de la sortie est facile, surtout si vous avez 10g ou plus, et ne peut donc utiliser les fonctions Regex.
+1, joli mini-tutoriel. – DCookie