Luis Gouveia
Luis Gouveia

Reputation: 8925

Output the result of a SELECT executed on IBM DB2

It's easy to do it using T-SQL (SQL Server):

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

However, I've spend hours on IBM DB2 without being able to do the same. I was hoping this would work:

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

But I get the following error message:

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

which I would translate to:

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

Upvotes: 0

Views: 1314

Answers (1)

Esperento57
Esperento57

Reputation: 17472

try again using the following :

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

Upvotes: 2

Related Questions