输出一个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;
使用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;