powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Процедура с параметрами из MS SQL
20 сообщений из 20, страница 1 из 1
Процедура с параметрами из MS SQL
    #36968118
Nimua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

DB2 9.1 z\Os, MS SQL 2005

Настроили с MS SQL linked server на DB2
таблицы видит, процедуры вызвать могу
Код: plaintext
1.
EXEC ('CALL TSTPROC') AT DB2TEST

но только без параметров : (((

С параметрами вызывать пробовала так:
Код: plaintext
EXEC ('CALL TSTINPUT(11)') At DB2TEST

OLE DB provider "DB2OLEDB" for linked server "DB2TEST" returned message "A SQL error has occurred. Please consult the documentation for your specific DB2 version for a description of the associated Native Error and SQL State. SQLSTATE: 42884, SQLCODE: -440".

И так:
Код: plaintext
EXEC ('CALL TSTINPUT(?)') At DB2TEST
OLE DB provider "DB2OLEDB" for linked server "DB2TEST" returned message "A SQL error has occurred. Please consult the documentation for your specific DB2 version for a description of the associated Native Error and SQL State. SQLSTATE: 42612, SQLCODE: -84".

И так:
Код: plaintext
EXEC ('CALL TSTINPUT(?)', 11 ) At DB2TEST
OLE DB provider "DB2OLEDB" for linked server "DB2TEST" returned message "A SQL error has occurred. Please consult the documentation for your specific DB2 version for a description of the associated Native Error and SQL State. SQLSTATE: 42612, SQLCODE: -84".

Как нужно делать вызов?

Спасибо!
...
Рейтинг: 0 / 0
Процедура с параметрами из MS SQL
    #36968167
GVF112GVF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NimuaЗдравствуйте!

DB2 9.1 z\Os, MS SQL 2005

Настроили с MS SQL linked server на DB2
таблицы видит, процедуры вызвать могу
Код: plaintext
1.
EXEC ('CALL TSTPROC') AT DB2TEST

но только без параметров : (((

С параметрами вызывать пробовала так:
Код: plaintext
EXEC ('CALL TSTINPUT(11)') At DB2TEST

OLE DB provider "DB2OLEDB" for linked server "DB2TEST" returned message "A SQL error has occurred. Please consult the documentation for your specific DB2 version for a description of the associated Native Error and SQL State. SQLSTATE: 42884, SQLCODE: -440".

И так:
Код: plaintext
EXEC ('CALL TSTINPUT(?)') At DB2TEST
OLE DB provider "DB2OLEDB" for linked server "DB2TEST" returned message "A SQL error has occurred. Please consult the documentation for your specific DB2 version for a description of the associated Native Error and SQL State. SQLSTATE: 42612, SQLCODE: -84".

И так:
Код: plaintext
EXEC ('CALL TSTINPUT(?)', 11 ) At DB2TEST
OLE DB provider "DB2OLEDB" for linked server "DB2TEST" returned message "A SQL error has occurred. Please consult the documentation for your specific DB2 version for a description of the associated Native Error and SQL State. SQLSTATE: 42612, SQLCODE: -84".

Как нужно делать вызов?

Спасибо!

Возможно,
что Вам нужно посмотреть следующий топик - Подключение к DB2 on z/OS
http://www.sql.ru/forum/actualthread.aspx?tid=777272

Если у Вы используете вызовы хранимых процедур (from MS SQL via jdbc to DB2), тогда
вохможно, что это Ваш случай:

You cannot call MS SQL Server stored procedure using the "call" verb. You need to use "exec" verb. CallableStatement cstmt = dbConn.prepareCall( "{exec insertTheForm(?, ?, ?, ?)}");


С уважением,
Вадим.
...
Рейтинг: 0 / 0
Процедура с параметрами из MS SQL
    #36968175
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничего не понимаю в этой теме, но погуглил ради интересу и такую вещь нашёл: http://www-01.ibm.com/support/docview.wss?uid=swg1PK67860
IBMCurrently, in DB2 V9.1 for z/OS only, DSNTIAD has a bug that
can cause SQL CONNECT, RELEASE, and SET CONNECTION requests to
fail with to SQLCODE -084 (UNACCEPTABLE SQL STATEMENT).
и там же workaround.
...
Рейтинг: 0 / 0
Процедура с параметрами из MS SQL
    #36968982
Dr. Blez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Без параметров вызов проходит, с параметрами - нет.

Что делать?

P.S. Такое ощущение, что некоторые из вас не умеют читать.
...
Рейтинг: 0 / 0
Процедура с параметрами из MS SQL
    #36969374
GVF112GVF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dr. BlezБез параметров вызов проходит, с параметрами - нет.

Что делать?

P.S. Такое ощущение, что некоторые из вас не умеют читать.

Читать мы умеем ... :)

Вызовы SQL могут интерпретироваться по разному для DB2 for Linux,Unix, Windows (LUW)
и DB2 for z/OS (в том числе и для хранимых процедур в системном каталоге) !!!

С уважением,
Вадим.
...
Рейтинг: 0 / 0
Процедура с параметрами из MS SQL
    #36969393
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то, логично ждать, что, если есть "DB2 9.1 z\Os", то должен быть и админ к ней, который способен прочитать "Please consult the documentation for your specific DB2 version for a description of the associated Native Error and SQL State" и провести диагностику со стороны DB2.
...
Рейтинг: 0 / 0
Процедура с параметрами из MS SQL
    #36969399
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А мэйнфореймы - не такая штука, которая встречается на каждом углу.
...
Рейтинг: 0 / 0
Процедура с параметрами из MS SQL
    #36969432
GVF112GVF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor MetelitsaА мэйнфореймы - не такая штука, которая встречается на каждом углу.

Действительно, Вы правы!

Обычно, для доступа клиентов (remote client) из под LINUX/UNIX/WINDOWS к DB2 for z/OS, используется шлюз - DB2 Connect for LUW. Это относится и клиентам, использующих JAVA
(Type 4/2 Java driver support).

По идее, мы должны увидеть следующий сценарий:
MS SQL (OLE DB)<-> DB2 Connect <-> DB2 for z/OS

С уважением,
Вадим
...
Рейтинг: 0 / 0
Процедура с параметрами из MS SQL
    #36969587
GVF112GVFVictor MetelitsaА мэйнфореймы - не такая штука, которая встречается на каждом углу.

Действительно, Вы правы!

Обычно, для доступа клиентов (remote client) из под LINUX/UNIX/WINDOWS к DB2 for z/OS, используется шлюз - DB2 Connect for LUW. Это относится и клиентам, использующих JAVA
(Type 4/2 Java driver support).

По идее, мы должны увидеть следующий сценарий:
MS SQL (OLE DB)<-> DB2 Connect <-> DB2 for z/OS

С уважением,
Вадим

Шлюз - это опциональное звено.
Можно и напрямую:
MS SQL + DB2 Client (с лицензией DB2 Personal Connect) -> DB2 for z/OS
...
Рейтинг: 0 / 0
Процедура с параметрами из MS SQL
    #36969699
NimuaЗдравствуйте!

DB2 9.1 z\Os, MS SQL 2005

Настроили с MS SQL linked server на DB2
таблицы видит, процедуры вызвать могу

.....................


Как нужно делать вызов?

Спасибо!

Работаю с DB2 LUW и z/OS, но очень редко с MS SQL, поэтому дальше предположения.
Поиск привел к примеру вот такого кода DB2 Integration with SQL Server 2005 :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Set NoCount On
Declare @OrderID Int
Set @OrderID= 10249 
--
-- Call Parameterized Stored Procedure
--
Exec ('Call DATALIB.GetOrders (?)', @OrderID) AT DB2400

To retrieve the result of an output variable from a stored procedure, specify the OUTPUT keyword after the variable name, as follows:
-- Test Stored Proc with output variable
Set NoCount On
Declare @OrderID Int
Exec ('Call DATALIB.GETNEXTORDER (?)', @OrderID OUTPUT) AT DB2400

Select @OrderID

Кроме того, из приведенных текстов непонятно, с какими параметрами (сколько их и какие) объявлена хранимая TSTINPUT. И второй вопрос в какой схеме находится эта хранимая?
Предположим, что хранимая в схеме MYPROC и у нее один входной параметр с типом INTEGER, тогда можно попробовать вызвать так:
Код: plaintext
Exec ('Call MYPROC.TSTINPUT(CAST(11) AS INTEGER)')
Если так вызывается, попробовать вызывать с подстановочным параметром, как в примере, это будет правильнее. Примерно так (2 варианта, в идеале должны работать оба):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Declare @ID Int
Set @ID= 11 
--
-- Call Parameterized Stored Procedure
--
Exec ('Call MYPROC.TSTINPUT (?)', @ID)
Exec ('Call MYPROC.TSTINPUT (CAST(?) AS INTEGER)', @ID)
...
Рейтинг: 0 / 0
Процедура с параметрами из MS SQL
    #36969738
Dr. Blez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Используется DB2 OLE DB Provider.

Это параметры коннекта

Код: plaintext
1.
Provider=DB2OLEDB;User ID=*****;Initial Catalog=*****;Network Transport Library=TCP;Host CCSID= 1208 ;PC Code Page= 1251 ;Network Address=*****;Network Port= 446 ;Package Collection=*****;Process Binary as Character=False;Units of Work=RUW;DBMS Platform=DB2/MVS;Defer Prepare=False;Rowset Cache Size= 0 ;Persist Security Info=False;Connection Pooling=True;Derive Parameters=True;

При вызове процедуры с параметром, причем без разницы, есть параметр, на самом деле, или нет выдается -84 ошибка. При коннекте через JDBC - все хорошо.

т.е. я делаю, например
Код: plaintext
EXEC ('CALL SHM.PROC_WO_PARAMS') AT DB2
- работает, делаю
Код: plaintext
EXEC ('CALL SHM.PROC_WITH_PARAMS') AT DB2
- выдает ошибку -440 (не хватает параметров).

А если делаю
Код: plaintext
EXEC ('CALL SHM.PROC_WO_PARAMS(?)',  10 ) AT DB2
или
Код: plaintext
EXEC ('CALL SHM.PROC_WITH_PARAMS',  10 ) AT DB2
- ошибка -84.

На стороне DB2 ничего. Т.е. проблема в провайдере. В настройках, возможно, или еще в чем.
Используется Microsoft OLE DB Provider for DB2 Version 2.0
...
Рейтинг: 0 / 0
Процедура с параметрами из MS SQL
    #36969744
Dr. Blez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
здесь

Код: plaintext
EXEC ('CALL SHM.PROC_WITH_PARAMS',  10 ) AT DB2
, конечно же, пропущен вопросительный знак
Код: plaintext
EXEC ('CALL SHM.PROC_WITH_PARAMS(?)',  10 ) AT DB2
...
Рейтинг: 0 / 0
Процедура с параметрами из MS SQL
    #36969755
Dr. Blez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, еще...

Код: plaintext
EXEC ('SELECT * FROM TEST.T1 WHERE F1 = ?',  6 ) AT DB2

работает.
...
Рейтинг: 0 / 0
Процедура с параметрами из MS SQL
    #36969861
Dr. Blez,

Может это поможет? Microsoft OLE DB Provider for DB2 V3.0 is available
...
Рейтинг: 0 / 0
Процедура с параметрами из MS SQL
    #36970007
Dr. Blez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, Евгений. Буду пробовать
...
Рейтинг: 0 / 0
Процедура с параметрами из MS SQL
    #36971135
Dr. Blez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не помогло (
...
Рейтинг: 0 / 0
Процедура с параметрами из MS SQL
    #36972094
GVF112GVF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dr. BlezНе помогло (

Вы пытались использовать метод - prepareCall ?

You cannot call MS SQL Server stored procedure using the "call" verb.


You need to use "exec" verb.
CallableStatement cstmt = dbConn.prepareCall( "{exec insertTheForm(?, ?, ?, ?)}");


С уважением,
Вадим.
...
Рейтинг: 0 / 0
Процедура с параметрами из MS SQL
    #36972157
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dr. BlezНе помогло (тут почитайте, может, поможет...
Execute stored procedure on linked DB2 server from MS SQL 2008 SP1 64 bit problem
...
Рейтинг: 0 / 0
Процедура с параметрами из MS SQL
    #36972177
Dr. Blez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пришлось использовать DB2 Connect... С DB2 Connect проблем нет

Microsoft OLE DB так и не победился((
...
Рейтинг: 0 / 0
Процедура с параметрами из MS SQL
    #36972262
GVF112GVF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dr. BlezПришлось использовать DB2 Connect... С DB2 Connect проблем нет

Microsoft OLE DB так и не победился((

Так он и не мог нормально работать без DB2 Connect ...
Вызовы SQL могут интерпретироваться по разному для DB2 for Linux,Unix, Windows (LUW)
и DB2 for z/OS (в том числе и для хранимых процедур в системном каталоге) !!!


Я не имею ввиду ошибки в OLEDB ... :)

С уважением,
Вадим.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Процедура с параметрами из MS SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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