输出一个SELECT在IBM DB2上执行的结果

Output the result of a SELECT executed on IBM DB2

使用T-SQL(SQL服务器)很容易做到:

DECLARE @MyStatement AS NVARCHAR(max) = 'SELECT * FROM MYTABLE'
EXEC (@MyStatement)

但是,我已经在 IBM DB2 上花费了数小时,却无法做到同样的事情。我希望这会起作用:

DECLARE myStatement VARCHAR(1000);
SET myStatement = 'SELECT * FROM MYTABLE';
PREPARE s1 FROM myStatement;
EXECUTE s1;

但我收到以下错误消息:

Elément syntaxique VARCHAR n'est pas correct. Eléments possibles : DYNAMIC SENSITIVE ASENSITIVE INSENSITIVE.. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.18.60

我会翻译成:

Syntax element VARCHAR is incorrect. Possible elements: DYNAMIC SENSITIVE ASENSITIVE INSENSITIVE.. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.18.60

使用以下重试:

BEGIN
  DECLARE myStatement VARCHAR(1000);
  SET myStatement = 'SELECT * FROM MYTABLE';
  EXECUTE IMMEDIATE myStatement ;
END;