Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / DB2 вызов хранимой с глобальными переменными / 11 сообщений из 11, страница 1 из 1
30.03.2010, 17:28
    #36551158
SharkyRus0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 вызов хранимой с глобальными переменными
Привет всем!
Я - новичок в DB2 и SQL вообще. Подскажите пожалуйста!

Есть хранимая
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE PROCEDURE USP_5 ( IN HDD1 INTEGER,
IN ID1 CHAR( 20 ) )
LANGUAGE SQL
	DYNAMIC RESULT SETS  1 
------------------------------------------------------------------------
-- SQL Stored Procedure 
	-- @HDD 
------------------------------------------------------------------------
P1: BEGIN
UPDATE PC SET HDD=USP_5.HDD1 WHERE ID=USP_5.ID1;
END P1

Создал две глобальные переменные
Код: plaintext
1.
2.
3.
4.
CREATE VARIABLE "DB2".I1 INTEGER
      DEFAULT  6666 ;

CREATE VARIABLE "DB2".I2 CHAR( 20 )
      DEFAULT '2';

Каким скриптом вызвать эту процедуру и передать в нее эти переменные? (ну не получается)
Пробовал
Код: plaintext
CALL DB2.USP_5 (DB2."v1", DB2."v2");

И еще: есть ли какой нибудь специальный символ в именах переменных, в T-SQL например "@"?
и как\когда его использовать?

Заранее огромное спасибо!
...
Рейтинг: 0 / 0
31.03.2010, 12:50
    #36552645
BuryCommoner
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 вызов хранимой с глобальными переменными
Для DB2 символ @ как и многие другие не является запрещенным в именовании переменных, так что можно использовать по своему усмотрению. Правда при этом нужно помнить про символ завершения оператора.

---------------------------------------------------------
IS NULL OR NOT IS NULL
...
Рейтинг: 0 / 0
31.03.2010, 14:39
    #36552960
SharkyRus0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 вызов хранимой с глобальными переменными
То что он не запрещен - понятно, просто могут быть обязательные символы, т.е. с которых ДОЛЖНЫ начинаться названия параметров ХП?

А в целом ситуация такая: есть БД на DB2 и приложение по ее обработке (писалось под SQL Server). ХП вызываются скриптами. И если для SQL server команда выглядит так:
Код: plaintext
EXEC SP_name @param1, @param2
и задаются параметры, то в DB2 работает команда
Код: plaintext
CALL schema.SP_name (<values>)
т.е. параметры надо задать в скрипте явно числами, а требуется их туда передать.

Существует ли спецкоманда для этого и как передать переменную в значения параметров?
EXEC с ХП в DB2 не работает?
...
Рейтинг: 0 / 0
31.03.2010, 17:04
    #36553519
gardenman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 вызов хранимой с глобальными переменными
А версия DB2 у вас какая?
...
Рейтинг: 0 / 0
31.03.2010, 17:10
    #36553534
gardenman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 вызов хранимой с глобальными переменными
Если вам необходимо передавать значения не из глобальных переменных, а .. типа из переменных окружения, то:

db2cmd
set USER=db2admin
set PASSWORD=****
db2 "connect to {youdb} user %USER% using %PASSWORD%"
db2 "call myproc('%USER%','%PASSWORD%')"
if %errorlevel%==0 (
...
) else (
...
)

Это имелось в виду?
...
Рейтинг: 0 / 0
31.03.2010, 17:46
    #36553652
SharkyRus0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 вызов хранимой с глобальными переменными
gardenman,

мне нужно узнать аналог SQL текста
Код: plaintext
1.
2.
DECLARE @i1 INT
SET @i1= 3 
EXEC dbo.Test
только для DB2?

Спасибо за отклик=)
...
Рейтинг: 0 / 0
31.03.2010, 17:47
    #36553658
SharkyRus0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 вызов хранимой с глобальными переменными
gardenman,

Версия 9.7 Express-C
...
Рейтинг: 0 / 0
31.03.2010, 17:53
    #36553687
SharkyRus0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 вызов хранимой с глобальными переменными
gardenman,

точнее
Код: plaintext
1.
2.
DECLARE @i1 INT
SET @i1= 3 
EXEC dbo.Test @i1
...
Рейтинг: 0 / 0
01.04.2010, 15:06
    #36555696
SharkyRus0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 вызов хранимой с глобальными переменными
Друзья, ну помогите пожалуйста!

Нужно объявить 2 локальные переменные, задать им значения и выполнить хранимую процедуру, передав вместо параметров созданные переменные.

Нужен скрипт который бы отработал в Редакторе команд DB2 9.7

Не знаю чего делать уже((
...
Рейтинг: 0 / 0
01.04.2010, 16:45
    #36556076
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 вызов хранимой с глобальными переменными
SharkyRus0,

Установите Statement termination character в / и выполните:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
create table test (c1 int, c2 int) in userspace1/

create or replace procedure test(p1 int, p2 int)
begin
  insert into test values (p1, p2);
end/

begin
  declare v1, v2 int;
  set v1= 1 , v2= 2 ;
  call test(v1, v2);
end/

select * from test/
...
Рейтинг: 0 / 0
01.04.2010, 17:39
    #36556230
SharkyRus0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 вызов хранимой с глобальными переменными
Mark Barinstein,

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


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