Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Новый топик    Ответить
 SP in DB2  [new]
jack_nsk
Member

Откуда: Novosibirsk
Сообщений: 132
всем добрый день!

вот уже месяца 2 смотрю инфу по дб2, нравятся некоторые моменты.
скачать и поставил версию Express
но никак не могу понять, как писать хранимые процедуры для дб2
они все существуют только в виде внешних программ,
что-то типа а-ля UDF for InterBase ?
в Control Center в демо-примере видно, что все они написаны на С...
код ХП посмотреть не могу...
или нужно самому писать её например в эклипсе,
а потом подключать её как УДФ в птичке ?
13 янв 09, 14:33    [6678623]     Ответить | Цитировать Сообщить модератору
 Re: SP in DB2  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4946
Добрый день.
jack_nsk
вот уже месяца 2 смотрю инфу по дб2, нравятся некоторые моменты.
Она уже смущаться начала за это время, наверное.
Пора поближе познакомиться! :)
Routines.
Вкратце: sp/udf бывают SQL и написанные на внешних языках (c, java, cobol, например).
sql sp/udf можно в стандартном db2ce (Command Editor) создавать (команда create procedure ... language sql ...).
Только не забудьте в db2ce изменить statement termination character c ';' на какой-нибудь другой и завершать именно им команду создания процедуры (команды внутри процедуры завершаются символом ';').
13 янв 09, 14:55    [6678847]     Ответить | Цитировать Сообщить модератору
 Re: SP in DB2  [new]
Favn
Member

Откуда:
Сообщений: 576
jack_nsk
никак не могу понять, как писать хранимые процедуры для дб2
они все существуют только в виде внешних программ,
или нужно самому писать её например в эклипсе,
а потом подключать её как УДФ в птичке ?
И SP, и UDF можно писать на языке SQL PL. Можно и на внешних (Java, C), но хлопот куда больше. Писать на SQL PL вручную неудобно. Крайне рекомендую скачать (толстенькая, под 1Гб) и поставить (бесплатную часть, без трайлов) IBM Data Studio 2.1 Developer. Она и есть eclipse с надстройками. И будет счастье в виде единых проектов с человеческим лицом, синтакс хайлайтнинга, компиляции с внедрением, визуальной отладки на сервере и прочих вкусностей. Ну и для Java там куча всего.
В нее же можно внедрить бесплатный кусок от Data Studio Administrator - оно во многом удобнее, чем Control Center.

Ссылки на это добро лежат тут. Перед установкой лучше сменить локаль на США, а потом вернуть - иначе это все поставится на русском, зрелище не для слабонервных :)
13 янв 09, 16:10    [6679511]     Ответить | Цитировать Сообщить модератору
 Re: SP in DB2  [new]
jack_nsk
Member

Откуда: Novosibirsk
Сообщений: 132
спасибо, люди добрые! :)

Mark Barinstein
Она уже смущаться начала за это время, наверное.
Пора поближе познакомиться! :)

нет, это я смущаюсь!
всё не знаю, как предложение сделать... :)
с чего начать... :)

Routines - как и всё у ИБМ, достаточно непривычное название...
с моим базовым немецким конечно трудно понять о чем там,
но на пару с Х-Translator от ПРОМТа поди разберусь,
благо - многое можно по аналогии понять

Mark Barinstein

Только не забудьте в db2ce изменить statement termination character c ';' на какой-нибудь другой и завершать именно им команду создания процедуры (команды внутри процедуры завершаются символом ';').

это примерно как в птичке
SET TERM ^ ;
?

Favn
Крайне рекомендую скачать (толстенькая, под 1Гб) и поставить (бесплатную часть, без трайлов) IBM Data Studio 2.1 Developer. Она и есть eclipse с надстройками. И будет счастье в виде единых проектов с человеческим лицом, синтакс хайлайтнинга, компиляции с внедрением, визуальной отладки на сервере и прочих вкусностей. Ну и для Java там куча всего.

ага, спасибо
правда вчера-позавчера заходил на ИБМовский сайт,
там только триал видел на 30 дней...
(правда триальный Lotus Domino Administrator уже четвертый месяц ругается,
что на 60 дней действует...)

а всё-таки, есть примерчик где-нибудь с ХП на SQL PL ?
13 янв 09, 16:52    [6679857]     Ответить | Цитировать Сообщить модератору
 Re: SP in DB2  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4946
jack_nsk
Mark Barinstein

Только не забудьте в db2ce изменить statement termination character c ';' на какой-нибудь другой и завершать именно им команду создания процедуры (команды внутри процедуры завершаются символом ';').

это примерно как в птичке
SET TERM ^ ;
?
Да.
Если создавать скриптом, то в текстовом файле file.sql пишете:
CREATE PROCEDURE.... BEGIN ... END@

И из командной строки (db2cmd для win) после
db2 connect to your_db_name user ... using ...
db2 -td@ -f file.sql
13 янв 09, 17:13    [6680064]     Ответить | Цитировать Сообщить модератору
 Re: SP in DB2  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4946
jack_nsk
Routines - как и всё у ИБМ, достаточно непривычное название...
с моим базовым немецким конечно трудно понять о чем там,
но на пару с Х-Translator от ПРОМТа поди разберусь,
благо - многое можно по аналогии понять
Вы также можете у себя в браузере русский язык на первом месте поставить, и db2 v9.5 infocenter по-русски будет.
13 янв 09, 17:19    [6680137]     Ответить | Цитировать Сообщить модератору
 Re: SP in DB2  [new]
jack_nsk
Member

Откуда: Novosibirsk
Сообщений: 132
Mark Barinstein

Если создавать скриптом, то в текстовом файле file.sql пишете:
CREATE PROCEDURE[/url].... BEGIN ... END@


это пока один-в-один как в птичке

Mark Barinstein

И из командной строки (db2cmd для win) после
db2 connect to your_db_name user ... using ...
db2 -td@ -f file.sql


а что-нибудь похожее на "выполнить скрипт в IBExpert"
это только в дата-студио ?

а с помощью
DECLARE CURSOR
можно создать временную таблицу,
в которую можно добавлять инсертом ?
13 янв 09, 17:23    [6680171]     Ответить | Цитировать Сообщить модератору
 Re: SP in DB2  [new]
jack_nsk
Member

Откуда: Novosibirsk
Сообщений: 132
спасибо ещё раз!

для первого раза информации уже достаточно
есть что почитать, над чем подумать и потренироваться.
13 янв 09, 17:38    [6680317]     Ответить | Цитировать Сообщить модератору
 Re: SP in DB2  [new]
Favn
Member

Откуда:
Сообщений: 576
jack_nsk
правда вчера-позавчера заходил на ИБМовский сайт,
там только триал видел на 30 дней...
А это такой хитрый IBM'ий ход :) Надо качать и ставить триальную студию, и при установке можно будет не ставить триальные компоненты - они там в списке указаны отдельно. Тогда оставшаяся часть студии будет работать бессрочно под свободной лицензией.
13 янв 09, 17:56    [6680480]     Ответить | Цитировать Сообщить модератору
 Re: SP in DB2  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4946
jack_nsk
а с помощью
DECLARE CURSOR
можно создать временную таблицу,
в которую можно добавлять инсертом ?
Нет.
Временные таблицы создаются командой declare global temporary table.
Для того, чтобы появилась возможность использовать временные таблицы, надо 1 раз создать командой create user temporary tablespace временное табличное пространство.
14 янв 09, 10:46    [6682616]     Ответить | Цитировать Сообщить модератору
 Re: SP in DB2  [new]
jack_nsk
Member

Откуда: Novosibirsk
Сообщений: 132
Favn
А это такой хитрый IBM'ий ход :) Надо качать и ставить триальную студию, и при установке можно будет не ставить триальные компоненты - они там в списке указаны отдельно. Тогда оставшаяся часть студии будет работать бессрочно под свободной лицензией.

понял, спасибо, доберусь до безлимитки, обязательно качну

Mark Barinstein

Временные таблицы создаются командой declare global temporary table

спасибо
про это в курсе, эта одна из преимуществ дб2, которая заинтересовала в первую очередь
правда, когда увидел объявление переменной, подумал, что можно получить внутри ХП почти полноценный датасет, в который можно писать, искать, сотрировать...
5 лет назад, когда работал в саппорте софтверной компании столкнулся с такой штукой,
это было реализовано в виде УДФ для IB..
ИМХО - штука весьма полезная...
вот наивный и обрадовался такой декларации
14 янв 09, 13:23    [6683812]     Ответить | Цитировать Сообщить модератору
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить