Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
luigi Member Откуда: СССР (РФ-ЛНР) Сообщений: 391 |
Добрый день. Имеем OLTP систему на Microsoft SQL Server 2000 - 8.00.2282 (Intel X86) Dec 30 2008 02:22:41 Copyright (c) 1988-2003 Microsoft Corporation Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 2)плюс OLAP к ней BANNER ---------------------------------------------------------------- Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Prod PL/SQL Release 10.2.0.3.0 - Production CORE 10.2.0.3.0 Production TNS for 32-bit Windows: Version 10.2.0.3.0 - Production NLSRTL Version 10.2.0.3.0 - Production При тестировании перехода на Microsoft SQL Server 2005 - 9.00.5000.00 (Intel X86) Dec 10 2010 10:56:29 Copyright (c) 1988-2005 Microsoft Corporation Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 2) получаем ошибку в одной из процедур ORA-28500: connection from ORACLE to a non-Oracle system returned this message: [Generic Connectivity Using OLEDB_SQL](pICommand->Execute:rc=-2147467259):Extended = Unspecified error Пишу в эту ветку потому, что в EventViewer на сервере с MSSQL2005 при каждом вызове получаю ошибку: A user request from the session with SPID 67 generated a fatal exception. SQL Server is terminating this session. Contact Product Support Services with the dump produced in the log directory., т.е. выполнение процедуры прерывается явно на стороне MSSQL. В процедуре PL/SQL идет вызов динамического SQL - EXECUTE IMMEDIATE .. USING fInt, fStr, fDate, fFloat;, где в запрос в качестве параметров передаются целое, строка, дата и вещественное соответственно. Опытным путем установлено, что ошибка возникает при передаче строкового параметра, т.е. если жестко прописать значение параметра fStr в тексте EXECUTE все проходит на ура. Нет проблем с передачей параметров даты, целых и вещественных чисел. Запрос без динамики к обоим серверам (2000 & 2005) из QA и из самого Oracle выполняется без ошибок и возвращает требуемые данные. Собственно вопрос - в чем может быть особенность обработки строкового параметра динамического запроса для MSSQL2005 по сравнению с MSSQL2000? Буду благодарен любой помощи. Спасибо. |
14 июн 13, 12:48 [14433219] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
У EXEC() нет параметров |
||
14 июн 13, 12:52 [14433232] Ответить | Цитировать Сообщить модератору |
pkarklin Member Откуда: Москва (Муром) Сообщений: 74925 |
1. Смотрим лог и дамп файлы на предмет поиска причин ошибки на стороне MS SQL; 2. Профайлером перехватываем реальный вызов от Oracle. |
14 июн 13, 12:57 [14433264] Ответить | Цитировать Сообщить модератору |
luigi Member Откуда: СССР (РФ-ЛНР) Сообщений: 391 |
pkarklin, Портянку сократил - там дальше перечисление модулей...
Хм, тут видно, что Р1 - varchar(16). Т.е. так как и должно быть. Смотрю профайлер.... |
|
14 июн 13, 13:37 [14433528] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |