powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Начинаем изучать DB2
17 сообщений из 17, страница 1 из 1
Начинаем изучать DB2
    #33544933
Maxim Ragozin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
После свалившейся шары от производителей DB2 и ORACLE. Шары в виде free 4 комершал юз их express editions.
Возникло желание перевести личный ecommerse сайт на DB2. 2 CPU это то что мне надо, ORACLE дает раскатить губу только на 1CPU.

Вопрос #1. Как запустить обычный batch. Есть ли у DB2 вообще такая концепция?

Например это то что было для Sybase. Объявил переменную, зделал в нее SELECT INTO, потом используешь это позже для INSERT. Все запускалось через любой JDBC tools: Aqua Data Studio, Toad или обычный <sql/> (ant task)

C DB2 так не получаеться. На подобный запрос материться что нельзя выполнить SELECT INTO. Я так понимаю что все переменные должны быть внешними. Т.е. надо написать что-то либо программы на одном из языков и выполнять этот батч уже оттуда. Это так и надо делать или я ошибаюсь?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
/********************************************************************************/
/* IC IP-TELECOM                                                                */
/********************************************************************************/
DECLARE @PROVIDER_ID INTEGER
DECLARE @PRODUCT_ID INTEGER

PRINT 'INFO: checking...'
SELECT @PROVIDER_ID = PROVIDER_ID FROM IC_PROVIDER WHERE NAME_EN = 'IP-Telecom'
SELECT @PROVIDER_ID 
IF @PROVIDER_ID IS NOT NULL 
BEGIN
	PRINT 'INFO: deleting IC Provider with provider_id equals %1!...', @PROVIDER_ID
	DELETE FROM IC_PROVIDER WHERE PROVIDER_ID = @PROVIDER_ID
END
PRINT 'INFO: creating...'
INSERT INTO IC_PROVIDER (
NAME_EN, NAME_RU, 
WEBSITE, 
SMTP_AVAILABLE_FLAG, POP_AVAILABLE_FLAG,WEB_MAIL_AVAILABLE_FLAG, IMAP_AVAILABLE_FLAG 
) 
VALUES ( 
'IP-Telecom', 'IP-Телеком', 
'www.i.com.ua', 
 1 ,  1 ,  0 ,  0  
)
SELECT @PROVIDER_ID = @@IDENTITY
PRINT 'INFO: IC Provider is created. provider_id is %1!', @PROVIDER_ID
...
Рейтинг: 0 / 0
Начинаем изучать DB2
    #33545559
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
ну впору курсы для начинающих здесь открывать.
А может, поставите вопрос по-другому - что почитать?
Так ссылок есть здесь море, может, кто и повторит их, если лень искать.
Но вот с такими вот вопросами - я не знаю как надо, читать не буду, покажите мне, как это сделать - только очень спокойные и терпеливые люди (gardenman, Viktor) могут ответить.
А мы, нервные горячие парни, вряд ли :)
...
Рейтинг: 0 / 0
Начинаем изучать DB2
    #33545568
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
О!
Я щас 10К строк сырцов Сишных выложу, кто-нить мне их на Java переведет?
Самом влом Java учить, там все не так, как на Сях.
Может, начнем с малого, по функциям отдельным?
...
Рейтинг: 0 / 0
Начинаем изучать DB2
    #33546551
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда лучше перенаправлять к кулинарной книжке (http://mysite.verizon.net/Graeme_Birchall/id1.html).

Переменные можно объявлять внутри compound-блока (BEGIN ... END или BEGIN ACOMIC END).

Вместо
SELECT ... INTO :xxx
используйте там
SET xxx = (SELECT ... )

читая про командный процессор (DB2CLP), обязательно обратите внимание на сепараторы и с опцию -t, которую придётся использовать в виде -tdSEPARATOR,

напр.
файл XXX.DB2
CONNECT TO dbname USER username USING somepassword
@
BEGIN ATOMIC
DECLARE xxx INTEGER;
SET xxx = (SELECT 1 FROM zzz);
END
@


запускать как
db2 -f XXX.DB2 -td@ -v
...
Рейтинг: 0 / 0
Начинаем изучать DB2
    #33546562
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Причём db2 (командный процессор) пускается из db2cmd,
реально строчка запуска будет чем-нибудь вроде

db2cmd/c db2 -f XXX.DB2 -td@ -v

или с вариациями

(напр., из db2cmd запустить Far, а из Far'а уже db2 -f XXX.DB2 -td@ -v)
...
Рейтинг: 0 / 0
Начинаем изучать DB2
    #33547302
Maxim Ragozin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor спасибо за инфу. Лед тронулся (да еще как).
Наступный вопрос. Можно ли настроить DB2 так чтобы в дополнение к UNIX user list, брать их список из какого-н. внешнего источника. По мере предпочтения - internal to database, внешний фаил, LDAP.
...
Рейтинг: 0 / 0
Начинаем изучать DB2
    #33547311
ппм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
для *nix - без проблем.
Только не DB2 надо настраивать.
А ОС.
Чтобы аутентифицировала юзера из нужного источника.
Если используете PAM - настраиваете его.
Задача то тривиальна для sys admin.
Прочитайте главу по безопастности в DB2, чтобы понять концепцию.
...
Рейтинг: 0 / 0
Начинаем изучать DB2
    #33547402
Maxim Ragozin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да с UNIX-ом то все понятно. Для своего личного сайта все настроил, да и пользователя добавить нет проблем. Согласовывать ведь ни скем не надо. А вот на работе у клиента, секьюрити никак не может понять - как можно созадть корпоротивного пользователя у котороге нет SSN (уже вторая неделя пошла)
...
Рейтинг: 0 / 0
Начинаем изучать DB2
    #33547511
Herr Developer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ggvО!
Я щас 10К строк сырцов Сишных выложу, кто-нить мне их на Java переведет?
Самом влом Java учить, там все не так, как на Сях.
Может, начнем с малого, по функциям отдельным?
Неужели на Java переходим.
Кто-бы мог подумать
...
Рейтинг: 0 / 0
Начинаем изучать DB2
    #33547740
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim RagozinМожно ли настроить DB2 так чтобы в дополнение к UNIX user list, брать их список из какого-н. внешнего источника. По мере предпочтения - internal to database, внешний фаил, LDAP. Про это не в курсе (хотя слово LDAP я где-то видел и какие-то штуки были в v8 обещаны) - мне никогда не было нужно.
...
Рейтинг: 0 / 0
Начинаем изучать DB2
    #33548070
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
Herr Developer ggvО!
Я щас 10К строк сырцов Сишных выложу, кто-нить мне их на Java переведет?
Самом влом Java учить, там все не так, как на Сях.
Может, начнем с малого, по функциям отдельным?
Неужели на Java переходим.
Кто-бы мог подумать
Не. Не переходим.
Но если кто-нить переведет - интересно бы посмотреть, что получится.
Но вот часть логики уйдет на Message Broker в виде Message Flows, при чем часть из них интересно бы сделать User Defined Node. На Сях, конечно.
Прикольно - распространять функционал в виде User Defined Nodes для Message Broker, который клиент сам может связать в Message Flows в любой последовательности, или не связать.
...
Рейтинг: 0 / 0
Начинаем изучать DB2
    #33548146
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати,
1. сравнение и присваивание возможно "векторами", наподобие
Код: plaintext
1.
2.
3.
4.
SET (locvar1, locvar2, locvar3) = (SELECT fld1, fld2, fld3
  FROM sometable
  WHERE (xfld1, xfld2) = (param1,param2)
);
Если SELECT вернёт 0 строк, присвоятся NULL'ы (а в Oracle надо ловить exception).
Если SELECT может вернуть более 1-й строки, в ряде случаев уместно FETCH FIRST
Код: plaintext
1.
2.
3.
4.
5.
6.
SET (locvar1, locvar2, locvar3) = (SELECT fld1, fld2, fld3
  FROM sometable
  WHERE (xfld1, xfld2) = (param1,param2)
  ORDER BY  1 , 2 , 3 
  FETCH FIRST  1  ROW ONLY
);

2. Сколько-нибудь сложную логику (с savepoint и т.п.) можно использовать только внутри хранимых процедур; вне их язык урезан.

3. Полного аналога DBMS_OUTPUT (Oracle) для вывода отладочных сообщений нет, но на developerworks описываются некие суррогаты. Я использую PUT_LINE.
...
Рейтинг: 0 / 0
Начинаем изучать DB2
    #33550052
Maxim Ragozin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor спасибо.

День №2. Преподнес сюрприз в виде
Код: plaintext
1.
2.
3.
4.
5.
>[Error] Script lines:  1 - 435  ------------------------
 DB2 SQL error: SQLCODE: - 101 , SQLSTATE:  54001 , SQLERRMC: null
 Message: The statement is too long or too complex. 

 [Executed:  2 / 15 / 06   9 : 11 : 34  PM EST ] [Execution:  0 /ms]

Скрипт небольшой - всего 15К. Аналогичный в 6КВ и на 213 строк - выполнился без проблем.

Увеличение stmtheap в 2 раза не к чему не превели. Рестарт сервера делал. Может еще что-н. увеличить и растянуть?
...
Рейтинг: 0 / 0
Начинаем изучать DB2
    #33550526
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не стесняйтесь и увеличьте stmtheap в 10 раз. Или в 20. Пока ошибка не пропадёт. Если она хочет увеличения stmtheap, то пусть же она это и получит.
...
Рейтинг: 0 / 0
Начинаем изучать DB2
    #33550593
Maxim Ragozin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как вообще распределяеться память между базами данных кон. запущены на одном экземпляре(instance)? Я видел что там есть параметры отвечающее за память на обоих уровнях - и на уровне инстанса и на кровне баз даныых.
...
Рейтинг: 0 / 0
Начинаем изучать DB2
    #33550791
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
на developerworks есть прекрасная статья о распределении памяти, с рисунками :)
Приду на работу - кину ссылку.
...
Рейтинг: 0 / 0
Начинаем изучать DB2
    #33552400
ggv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ggv
Гость
http://www-128.ibm.com/developerworks/db2/library/techarticle/dm-0406qi/
Ну и это тоже может пригодится (упреждая следующий вопрос :)
http://www-128.ibm.com/developerworks/db2/library/techarticle/0304chong/0304chong.html
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Начинаем изучать DB2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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