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

Откуда: РФ, Москва
Сообщений: 252
Здравствуйте! Как в DB2 выполнить SQL строку?
P.S.
В MS SQL Server это можно выполнить так:
EXEC ('SELECT * FROM sys.types');
20 мар 18, 10:14    [21270421]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение строки SQL в DB2  [new]
ASukhov1986
Member

Откуда: РФ, Москва
Сообщений: 252
Вот пример использования выполнения SQL строки в процедуре:

CREATE PROCEDURE CreateFilesForExportData (path varchar(1000))
LANGUAGE SQL
BEGIN ATOMIC
   DECLARE id SMALLINT;
   DECLARE tableName VARCHAR(128);
   DECLARE cur_tableName CURSOR FOR
      SELECT TABLES.TABNAME
      FROM SYSCAT.TABLES AS TABLES
      WHERE TABLES.TABSCHEMA = 'METR' AND TABLES.TYPE = 'T'
      ORDER BY TABLES.TABNAME ASC;
   DECLARE CONTINUE HANDLER FOR NOT FOUND SET id=1;

   SET id = 0;

   OPEN cur_tableName;
   FETCH FROM cur_tableName INTO tableName;
   WHILE id = 0 DO
	  
          --Как в MS SQL Server
          EXEC (N'EXPORT TO "'+@path+'\result.csv" OF DEL MODIFIED BY NOCHARDEL TIMESTAMPFORMAT="YYYY/MM/DD HH:MM:SS" COLDEL| STRIPLZEROS MESSAGES "'+@path+'\FMessage.txt"
                SELECT * FROM METR.'+@tableName+'');<----



	  FETCH FROM cur_tableName INTO tableName;
   END WHILE;
   CLOSE cur_tableName;
END
20 мар 18, 10:30    [21270488]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение строки SQL в DB2  [new]
ASukhov1986
Member

Откуда: РФ, Москва
Сообщений: 252
Есть схожий вопрос тут https://www.sql.ru/forum/687953/mozhno-li-vypolnyat-stroki-v-db2?hl=exec sql
20 мар 18, 10:40    [21270524]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение строки SQL в DB2  [new]
ASukhov1986
Member

Откуда: РФ, Москва
Сообщений: 252
ASukhov1986,
почему то в процедуре не работает:
EXECUTE IMMEDIATE 'EXPORT TO "C:\ExportFiles\result.csv" OF DEL MODIFIED BY NOCHARDEL TIMESTAMPFORMAT="YYYY/MM/DD HH:MM:SS" COLDEL| STRIPLZEROS MESSAGES "C:\ExportFiles\FMessage.txt" SELECT * FROM METR.PURPOSE';
20 мар 18, 11:26    [21270709]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение строки SQL в DB2  [new]
ASukhov1986
Member

Откуда: РФ, Москва
Сообщений: 252
ASukhov1986,
и не только в процедуре а просто выполнить эту команду не получается без ошибки
20 мар 18, 11:28    [21270722]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение строки SQL в DB2  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4946
ASukhov1986
и не только в процедуре а просто выполнить эту команду не получается без ошибки

Это потому, что EXPORT - не SQL запрос, а команда.
Почитайте про:
EXPORT command using the ADMIN_CMD procedure
20 мар 18, 13:09    [21271170]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение строки SQL в DB2  [new]
CawaSPb
Member

Откуда: Питер/Москва/Wroclaw
Сообщений: 1091
ASukhov1986
ASukhov1986,
и не только в процедуре а просто выполнить эту команду не получается без ошибки

1. Также обратите внимание на PREPARE + EXECUTE.
2. Для запуска команд используйте ADMIN_CMD() процедуру.
20 мар 18, 13:11    [21271177]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение строки SQL в DB2  [new]
Brandonpowel
Member

Откуда:
Сообщений: 1
For Your Best Help In IBM DB2 Fundamentals for z/OS Exam.You can click the below link:
https://www.braindumpspdf.com/exam/C2090-320.html
21 мар 18, 20:05    [21275682]     Ответить | Цитировать Сообщить модератору
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить