Reputation: 8925
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
Reputation: 17472
try again using the following :
BEGIN
DECLARE myStatement VARCHAR(1000);
SET myStatement = 'SELECT * FROM MYTABLE';
EXECUTE IMMEDIATE myStatement ;
END;
Upvotes: 2