2010-02-04 5 views
2

J'utilise SQLloader dans l'application ASP.NET pour automatiser les données de téléchargement en masse vers oracle db à partir de CSV/EXCEL. Sqlloader crée un fichier journal qui affiche le résultat de l'importation créée sur le serveur.résultat de fichier journal du chargeur SQL

Je veux montrer quelques informations à mes utilisateurs

Combien de lignes lues? Combien ont été importés avec succès? sur une page aspx

Comment faire?

Répondre

4

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.

+0

+1, joli mini-tutoriel. – DCookie

Questions connexes