Результат файла журнала загрузчика sql

Я использую SQLloader в приложении ASP.NET для автоматизации массовой загрузки данных в oracle db из CSV/EXCEL. Sqlloader создает файл журнала, который показывает результат импорта, созданного на сервере.

Я хочу показать некоторую информацию своим пользователям

Сколько строк прочитано? Сколько успешно импортировано? на aspx-странице

Как я могу это сделать?


person Dee    schedule 04.02.2010    source источник


Ответы (1)


Вы можете создать внешнюю таблицу для чтения файлов журнала. Достоинством этого является то, что внешние таблицы могут использоваться в запросах SQL.

Во-первых, вам нужно создать объект каталога, чтобы определить путь к каталогу ОС. Это должен сделать пользователь с привилегией CREATE ANY DIRECTORY (возможно, учетная запись 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> 

Далее мы создаем таблицу. Обратите внимание на имя заполнителя для файла журнала в предложении местоположения....

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>

Теперь перейдем к ОС, чтобы выполнить импорт...

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>

Этот каталог должен быть тем же каталогом, который вы использовали ранее. Вернемся к SQL. Сначала мы указываем внешней таблице файл журнала, который мы использовали ранее, а затем запрашиваем из него...

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>

Форматировать вывод легко, особенно если у вас 10g или выше, и поэтому вы можете использовать функции Regex.

person APC    schedule 04.02.2010