Как преобразовать приведенный ниже код из T-SQL в DB2 LUW? - PullRequest
0 голосов
/ 01 февраля 2019

Как мне преобразовать этот код из T-SQL в DB2 LUW, с T-SQL это кажется таким простым, но в DB2 не может найти никакого решения.Смотрите код ниже:

DECLARE @sqlCommand varchar(1000)
DECLARE @columnList varchar(75)
DECLARE @city varchar(75)

SET @columnList = 'AddressID, AddressLine1, City'
SET @city = '''London'''
SET @sqlCommand = 'SELECT ' + @columnList + ' FROM Person.Address WHERE City = ' + @city

EXEC (@sqlCommand)

Ответы [ 2 ]

0 голосов
/ 16 февраля 2019

Не симпатично, но вы можете найти пример внизу этой страницы: Хранимые процедуры и динамический SQL, возвращающий набор результатов

По сути, вы больше всего:

1) создайте динамическую строку SQL 2) подготовьте строку в оператор 3) свяжите оператор с курсором, который вы собираетесь объявить как WITH RETURN

Открытие курсора будет последней строкой в ​​вашей процедуре.

0 голосов
/ 02 февраля 2019

Проблема в том, что вы не можете «выбрать никуда» в составном операторе в DB2.Db2 CLP может вернуть вам результирующий набор одного оператора SQL, но он не пытается сделать то же самое для операторов выбора в составном операторе.Если вы хотите напечатать результирующий набор из оператора select в составном операторе, вы можете, например, объявить курсор, извлечь его в цикле и использовать dbms_output.put_line вызовы для печати значенийпеременные.

...