powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / помогите написать примитивный скрипт
12 сообщений из 12, страница 1 из 1
помогите написать примитивный скрипт
    #34794601
mishga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, коллеги!
Новичок в ДБ2 - ничего не понимаю.
База версии 7.1, связь с ней только по ODBC.
Пытаюсь запустить примитивный скрипт
Код: plaintext
1.
2.
3.
4.
5.
declare @GP_ID int;
set @GP_ID =  106983463 ;
SELECT row_id, con_cd, pr_per_addr_id, x_gp_oid,last_name, fst_name 
FROM sserolpa.s_contact 
WHERE x_gp_oid = @GP_ID WITH ur;
на каждое слово ругается
Код: plaintext
1.
com.ibm.db2.jcc.b.SqlException: DB2 SQL error: SQLCODE: - 104 , SQLSTATE:  42601 , SQLERRMC: @;;( : PATH CURRENT CONNECTION <IDENTIFIER> CURRENT_PATH 
Запускать пытался через AQT Tool и через DB2 Developer Workbench.
Что делать, где ошибка?
...
Рейтинг: 0 / 0
помогите написать примитивный скрипт
    #34794973
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Командный процессор db2 - вещь весьма примитивная.
Он не может выполнять декларирования, присваивания, параметризированные запросы.
...
Рейтинг: 0 / 0
помогите написать примитивный скрипт
    #34794995
mishga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так а где создавать и как выполнять подобные скрипты, только через хранимую процедуру?
Я не уверен, что у меня есть права на создание хранимок в базе.
...
Рейтинг: 0 / 0
помогите написать примитивный скрипт
    #34795046
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы параметризировать запросы нужно засунуть вызовы CLP в bash скрипт. У CLP есть фича - он запускает фоновый процесс db2bp, который сохраняет соединение. Если при этом еще и отключить вывод заголовков, то вывод CLP можно засунуть в переменную окружения. На *NIX системах sh+db2+awk - и больше ничего не надо. Если на винде установить mingw и msys то поимеете то же самое.
...
Рейтинг: 0 / 0
помогите написать примитивный скрипт
    #34795066
mishga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shell scripting - это круто, но нет ли какого-нибудь стандартного тула, аля Qwery Analyzer или PL\SQL Developer ? Неужели же IBM ничего такого не предоставляет?
Или хотя бы аналог утилиты SQLPlus , которая из файла умеет скрипты запускать.
...
Рейтинг: 0 / 0
помогите написать примитивный скрипт
    #34795205
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
test.bat:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
db2 connect to sample

db2 ^
select count( 1 ) ^
from syscat.tables ^
where tabschema='%1'

db2 ^
select count( 1 ) ^
from syscat.views ^
where viewschema='%2'
test.bat SYSIBM SYSCAT
...
Рейтинг: 0 / 0
помогите написать примитивный скрипт
    #34795252
Фотография Hunterik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark дал хороший пример...

Насчёт графических утилит - есть - Command Editor. Может быть, это то, что вы ищете...
А может и нет.
Можете вызвать его из командной строки (db2ce) или через Command Center.

А вообще - информации дали придостаточно. =)
...
Рейтинг: 0 / 0
помогите написать примитивный скрипт
    #34795277
mishga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ок, усложним задачу.
Мне нужно написать некоторый код, с десятком селектов внутри, возвращающих кучу полей,
использующих результаты предыдущих селектов и т.п.
короче обычную хранимую процедуру.
результат выполнения процедуры надо записать в файл.
Создавать процедуру в базе не могу, нет прав.
Могу я создать сходный по функциональности SQL Script и запустить его через что-нибудь,
CLP, какой-нибудь тул и т.п.?
Эта задача элементарно решается и в SQL Server и в Oracle.
Для DB2 обязательно батник ваять или Shell script ???
И форматировать рукам каждое поле на выходе финального запроса?
Что ж такое то! Бьюсь об стену уже две недели.
...
Рейтинг: 0 / 0
помогите написать примитивный скрипт
    #34795301
mishga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HunterikMark дал хороший пример...

Насчёт графических утилит - есть - Command Editor. Может быть, это то, что вы ищете...
А может и нет.
Можете вызвать его из командной строки (db2ce) или через Command Center.

А вообще - информации дали придостаточно. =)

Я глубоко благодарен Марку, но пример не подходит,
т.к. показывает только возможность дать селект к базе.
Ни декларирования ни передачи результата в другой запрос.
Ни форматирования на выходе.
Я верю что с помощью unix и windows shell scripting можно делать такие штуки.
Но мой вопрос только ли через них??
Это же каменный век какой-то!
Command Editor поддерживает декларирование переменных и т.п.?
...
Рейтинг: 0 / 0
помогите написать примитивный скрипт
    #34795430
Фотография Hunterik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это было к вопросу о графических средствах...

Юзайте возможности SQL. =) Раз не хотите shell и bat.
Постарайтесь обойти свою задачу вложенными запросами.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
db2 "select old.empno,
            old.salary,
            (select new.salary from employee as new where new.empno = old.empno) as newsalary
       from old table (update employee set salary=salary*2 where salary < 50000) as old"

EMPNO  SALARY      NEWSALARY
------ ----------- -----------
000120    49250,00    98500,00
000170    44680,00    89360,00
000220    49840,00    99680,00
000230    42180,00    84360,00
000240    48760,00    97520,00
000250    49180,00    98360,00
000260    47250,00    94500,00
000330    45370,00    90740,00
000340    43840,00    87680,00
200010    46500,00    93000,00
200280    46250,00    92500,00
...
Рейтинг: 0 / 0
помогите написать примитивный скрипт
    #34795627
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Качаем интерпретатор REXX .
Заглядываем в примеры у себя на сервере: ...\sqllib\samples\rexx
Потратите несколько дней на обучение и будете счастливы.
...
Рейтинг: 0 / 0
помогите написать примитивный скрипт
    #34939171
Фотография Hunterik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К вопросу о DB2 9.5

Среди прочего появилась такая функциональность, как глобальные переменные...
Примерчик корявый, но простенькие вещи делать можно теперь без особых проблем.
Через db2ce...

create variable int_val integer default 100!

create procedure my_func (in param1 integer, out param2 integer)
language sql
begin
set param2 = param1 * int_val ;
end!

call my_func(5,?)!

------------------------------------------------------------------------

Значение выходных параметров
--------------------------
Имя параметра : PARAM2
Значение парам. : 500

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


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