如何将以下代码从 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
的游标语句
打开光标将是您程序中的最后一行。
如何将此代码从 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
的游标语句打开光标将是您程序中的最后一行。