如何将以下代码从 T-SQL 转换为 DB2 LUW?

How do convert below code from T-SQL into DB2 LUW?

如何将此代码从 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)

问题是您不能在 DB2 的复合语句中“select 到任何地方”。 Db2 CLP 可以 return 为您提供单个 sql 语句的结果集,但它不会尝试对复合语句中的 select 语句执行相同的操作。如果要在复合语句中打印 select 语句的结果集,例如,您可以声明一个游标,在循环中获取它,然后使用 dbms_output.put_line 调用来打印值变量。

不漂亮,但您可以在本页底部找到示例: Stored Procedures and Dynamic SQL Returning a Result set

基本上你是:

1) 创建动态 SQL 字符串 2)将字符串准备成语句 3) Link 你要声明为 WITH RETURN

的游标语句

打开光标将是您程序中的最后一行。