Как использовать одно UOW (транзакцию) для нескольких операторов SQL DB2 в окне сценария IBM Data Studio? - PullRequest
1 голос
/ 03 марта 2011

Я пытаюсь запустить скрипт в IBM Data Studio в интерактивном режиме для базы данных DB2 LUW.

Я пытаюсь, чтобы весь скрипт выполнялся в одной единице работы (транзакции), так что NOTАтрибут LOGGED остается в силе до тех пор, пока мой оператор INSERT не завершит построение большой таблицы.На данный момент он выполняется в течение ~ 30 секунд, а затем завершается с ошибкой «logfile full».

Может кто-нибудь сказать, как заставить одну единицу работы сохраняться в этом сценарии?Сценарий, который я использую, показан ниже.

(я знаю, что мог бы сделать это с сохраненным процессом, но я хотел бы знать, как сделать это интерактивно в окне сценария Data Studio - если это возможно)

Спасибо!Джон.

CREATE TABLE test.exp1 (    
client_id   int,
fx101       varchar(15),
fx102       varchar(15)
) NOT LOGGED INITIALLY;

ALTER TABLE test.exp1 ACTIVATE NOT LOGGED INITIALLY;

INSERT INTO test.exp1 ....<huge insert statement here> .... ;

COMMIT; 

1 Ответ

0 голосов
/ 23 июля 2011

Похоже, это невозможно. Смотрите операторы SQL, которые разрешены в динамическом составном SQL здесь: http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp?topic=/com.ibm.db2.luw.sql.ref.doc/doc/r0004240.html

Вы можете сделать немного больше в процедуре, но все же не все. Смотрите здесь: http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp?topic=/com.ibm.db2.luw.sql.ref.doc/doc/r0004239.html

...