在HANA中使用Into子句“立即执行”

时间:2014-03-05 10:23:04

标签: hana execute-immediate

我有一个要求在哪里我需要读取一个表(作为SP的输入参数提供的表名),将结果存储在临时表中,然后将读取表的计数存储到变量中。请告知如何实现这一目标。我已经能够使用动态查询读取表及其计数,但无法将结果放在临时表/变量中。 'Select'和'Into'子句似乎不适用于'Execute Immediate'。谢谢。

1 个答案:

答案 0 :(得分:1)

我不清楚究竟是什么问题,但您应该能够以下列方式执行SELECT语句:

CREATE PROCEDURE p1(IN tablename VARCHAR) AS
BEGIN
   execute immediate 'SELECT * FROM ' || :tablename;
END;

然后以下语句创建一个表并调用该过程来检索结果:

create table T (i integer);
insert into T values (123);

以下将生成一个结果集,其中一行/列的值为123:

CALL p1('T')

请注意,使用此类功能时,您需要非常小心,不要将任何用户提供的输入直接提供给使用EXECUTE IMMEDIATE的过程,以避免SQL注入攻击的可能性。

相关问题