powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / вопрос по оработке ошибок при вставке из мсскл в орацл
10 сообщений из 10, страница 1 из 1
вопрос по оработке ошибок при вставке из мсскл в орацл
    #39790036
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть простой инсерт из мсскл в орацл

скажем, такой
Код: plsql
1.
    INSERT INTO URO_D..R_DOC.ORD_HISTORY_RESULT (USER_ID_P)    values (1)



при выполнении в SSMS получаю такую понятную ошибку
Код: sql
1.
2.
3.
OLE DB provider "OraOLEDB.Oracle" for linked server "D" returned message "ORA-01400: cannot insert NULL into ("DOC"."HISTORY_RESULT"."RESULT")".
Msg 7343, Level 16, State 2, Line 1
The OLE DB provider "OraOLEDB.Oracle" for linked server "D" could not INSERT INTO table "[D]..[DOC].[HISTORY_RESULT]". 



если ошибку попытаться обработать
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
declare
    @p_errmsg nvarchar(4000);
begin try

    INSERT INTO URO_D..R_DOC.ORD_HISTORY_RESULT (USER_ID_P)    values (1)
end try
begin catch
    SET @p_errmsg = cast(ERROR_NUMBER() as nvarchar) + ' - ' + ERROR_MESSAGE();
    select @p_errmsg
end catch


то получаем только последнюю строку,
Код: sql
1.
The OLE DB provider "OraOLEDB.Oracle" for linked server "D" could not INSERT INTO table "[D]..[DOC].[HISTORY_RESULT]". 


а самая интересная часть пропадает


Задавал на мсскл форуме https://www.sql.ru/forum/1304351
Сказали, что эту ошибку отловить нельзя

Хотел еще тут посоветоваться, кто виноват и что делать
Т.к. тут многие работают на обоих серверах. Вдруг кто подскажет.

Не хочется иметь в тылу систему, которую я не понимаю
...
Рейтинг: 0 / 0
вопрос по оработке ошибок при вставке из мсскл в орацл
    #39790096
Фотография Anton_Demin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx,

https://www.techonthenet.com/oracle/insert.php

Код: plsql
1.
INSERT INTO my_tab (xid, val) VALUES (111, 'val111');
...
Рейтинг: 0 / 0
вопрос по оработке ошибок при вставке из мсскл в орацл
    #39790117
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton_Demin,

Зачем??
...
Рейтинг: 0 / 0
вопрос по оработке ошибок при вставке из мсскл в орацл
    #39795405
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
стремная штука этот линк с МССКЛ на Оракл

при полном совпадении типов при апдейте работает моментально (тип поля nn в Оракле - Number(6, 0))
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
declare @gotg numeric(6,0) = 2026;
begin
 update [****].."****".****_EXPORTDB_1
 set nn = @gotg
 where export_id=12058
 end;

(1 row affected)


а так работает 20 сек
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
declare @gotg numeric(7,0) = 2026;
begin
 update [****].."****".****_EXPORTDB_1
 set nn = @gotg
 where export_id=12058
 end;

(2 rows affected)

и реально строку апдейтит два раза - триггер с логом показал

**********************************

при апдейте литералом (и с кастом, и без) может и ошибку свалить
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
 update [****].."****".****_EXPORTDB_1
 set nv = cast(N'Вася' as nvarchar(1000))
 where export_id=12058


OLE DB provider "OraOLEDB.Oracle" for linked server "********" returned message "ROW-00014: Cannot update row as the data in the database has changedn".
Msg 7343, Level 16, State 4, Line 5
The OLE DB provider "OraOLEDB.Oracle" for linked server "******" could not UPDATE table "****". 


а так без ошибок
Код: sql
1.
2.
3.
4.
5.
6.
declare @n nvarchar(1000) = N'Вася';
begin
 update [****].."****".****_EXPORTDB_1
 set nv = @n
 where export_id=12058
 end;
...
Рейтинг: 0 / 0
вопрос по оработке ошибок при вставке из мсскл в орацл
    #39795485
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxлинк с МССКЛОфтопично поплакался? - Легче стало?
...
Рейтинг: 0 / 0
вопрос по оработке ошибок при вставке из мсскл в орацл
    #39795487
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elicandreymxлинк с МССКЛОфтопично поплакался? - Легче стало?полуофтопично

Вдруг кому поможет решать аналогичные ситуации
А вдруг кто и подскажет
...
Рейтинг: 0 / 0
вопрос по оработке ошибок при вставке из мсскл в орацл
    #39795489
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxполуофтопичноНи хрена. Запускайся со стороны Oracle и тогда приходи.
...
Рейтинг: 0 / 0
вопрос по оработке ошибок при вставке из мсскл в орацл
    #39795492
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я в этой задаче с обеих сторон
...
Рейтинг: 0 / 0
вопрос по оработке ошибок при вставке из мсскл в орацл
    #39795495
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxЯ в этой задаче с обеих сторонМы-то при чём? 99% её не здесь.
...
Рейтинг: 0 / 0
вопрос по оработке ошибок при вставке из мсскл в орацл
    #39795514
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic,

спасибо за развернутый ответ и понимание
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / вопрос по оработке ошибок при вставке из мсскл в орацл
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]