Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 EXTERNE TABELLE - EXEPTION  [new]
iudey
Member

Откуда: Germany
Сообщений: 627
Вопрос знатокам!
Создана экстерна таблица:

create or replace directory ext_dir as 'C:\Dokumente und Einstellungen\Admin\Desktop';

CREATE TABLE EXT_TABLE_CSV
(
I NUMBER,
N VARCHAR2(20 BYTE),
M VARCHAR2(20 BYTE)
)
ORGANIZATION EXTERNAL
( TYPE ORACLE_LOADER
DEFAULT DIRECTORY EXT_DIR
ACCESS PARAMETERS
( records delimited by newline
fields terminated by ','
missing field values are null
)
LOCATION (EXT_DIR:'test.txt')
)
REJECT LIMIT UNLIMITED
NOPARALLEL
NOMONITORING;

С помощью ее пишу данные из тхт file.(Селект осуществляется из прцедуры).
Могут быть 2 ошибки:
1)file не найден
2)Данные в текстовом file не соответствуют размерности или типу колонок.
При этих ошибках создаются 2 log file, где все ошибки описанны.
Вопрос:
Как сделать, что бы при ошибках не создавались лог file , но я смог бы обрабатывать ошибки в EXCEPTION.
Спасибо заранее

Евгений,Германия.
10 дек 06, 17:14    [3515767]     Ответить | Цитировать Сообщить модератору
 Re: EXTERNE TABELLE - EXEPTION  [new]
Dushan
Member

Откуда: Kyiv
Сообщений: 28
По поводу 1, у меня было такое...,
по поводу 2, я ставил заведомо большие размерности и все типы в varchar2, и уже явно преобразовывал и проверял.
11 дек 06, 12:10    [3517818]     Ответить | Цитировать Сообщить модератору
 Re: EXTERNE TABELLE - EXEPTION  [new]
iudey
Member

Откуда: Germany
Сообщений: 627
Dushan
По поводу 1, у меня было такое...,
по поводу 2, я ставил заведомо большие размерности и все типы в varchar2, и уже явно преобразовывал и проверял.


Esli mozhno, priwedite primer...
11 дек 06, 13:54    [3518693]     Ответить | Цитировать Сообщить модератору
 Re: EXTERNE TABELLE - EXEPTION  [new]
Alex from SPb
Member

Откуда:
Сообщений: 448
iudey
Как сделать, что бы при ошибках не создавались лог file

искать :
nologfile
nobadfile
   ACCESS PARAMETERS
   (
	  RECORDS DELIMITED BY NEWLINE CHARACTERSET WE8ISO8859P1
	  NOBADFILE
	  NOLOGFILE
	  FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"' LDRTRIM
	  REJECT ROWS WITH ALL NULL FIELDS
	  ( ...
11 дек 06, 14:06    [3518772]     Ответить | Цитировать Сообщить модератору
 Re: EXTERNE TABELLE - EXEPTION  [new]
iudey
Member

Откуда: Germany
Сообщений: 627
Spasibo!Poprobuu....

Evgeniy, Germany
11 дек 06, 16:19    [3519806]     Ответить | Цитировать Сообщить модератору
 Re: EXTERNE TABELLE - EXEPTION  [new]
Dushan
Member

Откуда: Kyiv
Сообщений: 28
автор
Esli mozhno, priwedite primer...

create table ext_bv_import (
	account_number				varchar2(140),	--	14	Client?s a/c in NBU format
	processing_date				varchar2(80),	--	8	yyyymmdd
	accounting_id				varchar2(260),	--	26	Accounting ID (Bank reference)
    ..............
    )
  organization external (
  					type oracle_loader 
  					default directory client_bank_import_dir
                         access parameters (records delimited by newline characterset cl8mswin1251
                         					fields terminated by ";"
                                            missing field values are null
                                            )
                        location (''test.csv'')); 
а потом уже

t_headers_dst.account_no 		:= to_number(i.account_number);
t_headers_dst.creation_date 		:= to_date(i.processing_date,'yyyymmdd');
t_headers_dst.account_no 		:= to_number(i.accounting_id);
имху так контролировать проще...
кстати, на счет nologfile и nobadfile, не советовал бы, в случаи чего, только гадать придется чего случилось...
11 дек 06, 17:54    [3520548]     Ответить | Цитировать Сообщить модератору
 Re: EXTERNE TABELLE - EXEPTION  [new]
iudey
Member

Откуда: Germany
Сообщений: 627
Wo perwih spasibo sa washi otweti.
Wopros:
Chto obosnachaet: records delimited by newline characterset cl8mswin1251?
Kak rasdelit dannie w file po tabulatoru?
11 дек 06, 18:01    [3520596]     Ответить | Цитировать Сообщить модератору
 Re: EXTERNE TABELLE - EXEPTION  [new]
iudey
Member

Откуда: Germany
Сообщений: 627
I she odin wopros:
kak sapisat bad.file w nujnuu mne direktoriu?
11 дек 06, 18:15    [3520691]     Ответить | Цитировать Сообщить модератору
 Re: EXTERNE TABELLE - EXEPTION  [new]
Dushan
Member

Откуда: Kyiv
Сообщений: 28
External Tables Access Parameters
11 дек 06, 19:37    [3521021]     Ответить | Цитировать Сообщить модератору
 TERMINATED BY? External TAble  [new]
iudey
Member

Откуда: Germany
Сообщений: 627
Kak rasdelit dannie w file po tabulatoru?
TERMINATED BY?
12 дек 06, 16:58    [3525929]     Ответить | Цитировать Сообщить модератору
 Re: EXTERNE TABELLE - EXEPTION  [new]
M_IV
Member

Откуда:
Сообщений: 1303
X'9'
12 дек 06, 17:21    [3526164]     Ответить | Цитировать Сообщить модератору
 Re: EXTERNE TABELLE - EXEPTION  [new]
M_IV
Member

Откуда:
Сообщений: 1303
FIELDS TERMINATED BY 0x'09'
12 дек 06, 17:23    [3526177]     Ответить | Цитировать Сообщить модератору
 Re: EXTERNE TABELLE - EXEPTION  [new]
iudey
Member

Откуда: Germany
Сообщений: 627
Spasibo!!!
12 дек 06, 17:40    [3526338]     Ответить | Цитировать Сообщить модератору
 Re: EXTERNE TABELLE - EXEPTION  [new]
iudey
Member

Откуда: Germany
Сообщений: 627
Est wopros. Предположим, создал я интерн.-таблицу:ext_table_csv (см. выше) с параметрами NOBADFIle и NOLOGFILE. Затем в процедуре обращаюсь к интерн.-таблице и записываю данные из нее в некаю таблицу test. Возможно ли ошибки , возникшие при чтение данных из file в инт. таблицу, записыать в блоке EXCEPTION в таблицу tab_errors, предназначенную для записи ошибок?

BEGIN
insert into test
select * from EXT_test;
commit;
EXCEPTION
where others then
insert into tab_errors
values(SQLERRM,sysdate);
end;
21 янв 07, 17:24    [3671922]     Ответить | Цитировать Сообщить модератору
 Re: EXTERNE TABELLE - EXEPTION  [new]
iudey
Member

Откуда: Germany
Сообщений: 627
P.S. Как я понял, при ошибке чтения файла, блок EXTEPTION не будет задействован.
Хотел бы отсылать еще e-mail при ошибке.
21 янв 07, 17:40    [3671948]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить