在用户定义 Table 类型的 HANA 中的 OUT 参数中插入多行
Insert Mulitple rows in a OUT parameter in a User-defined Table type HANA
我卡在一个地方了。
有一个过程可以检查某些内容并在成功确定该条件后插入 table 类型。
但我只能在 table 类型中插入一次。有没有办法一次又一次地插入table类型。
PROCEDURE "hello"."helloWorld.db::sampleException" (OUT TRACE_RECORD "hello"."LogTrace" )
LANGUAGE SQLSCRIPT AS
BEGIN
DECLARE i int;
select count(*) into i from "hello"."REGION";
IF :i > 1 then
TRACE_RECORD = SELECT '1' AS "LogID", '1' AS "TraceID" FROM DUMMY;
end if;
IF :i > 2 then
TRACE_RECORD = SELECT '2' AS "LogID", '2' AS "TraceID" FROM DUMMY;
end if;
END;
我在执行程序时得到的只是最后一条记录“2,2”。
如何同时插入记录 1,1 和 2,2。
注意:我不想使用临时 Tables.
对此有任何帮助..
谢谢!
稍微编辑一下问题:
-我必须使用Table TYPE(直到没有比它更好的最佳方式)
-我要在table类型中插入20-30多条记录。
你必须把这个写成程序吗? table-valued 函数似乎更合适:
CREATE FUNCTION f_tables4 (in_id INTEGER)
RETURNS TABLE (
"LogID" VARCHAR(400),
"TraceID" VARCHAR(400)
)
LANGUAGE SQLSCRIPT
AS
BEGIN
RETURN
SELECT t."LogID", t."TraceID"
FROM (
SELECT 1 AS i, '1' AS "LogID", '1' AS "TraceID" FROM DUMMY
UNION ALL
SELECT 2 AS i, '2' AS "LogID", '2' AS "TraceID" FROM DUMMY
) t
JOIN (SELECT count(*) AS cnt FROM "hello"."REGION") c
ON c.cnt > t.i
END
我卡在一个地方了。
有一个过程可以检查某些内容并在成功确定该条件后插入 table 类型。
但我只能在 table 类型中插入一次。有没有办法一次又一次地插入table类型。
PROCEDURE "hello"."helloWorld.db::sampleException" (OUT TRACE_RECORD "hello"."LogTrace" )
LANGUAGE SQLSCRIPT AS
BEGIN
DECLARE i int;
select count(*) into i from "hello"."REGION";
IF :i > 1 then
TRACE_RECORD = SELECT '1' AS "LogID", '1' AS "TraceID" FROM DUMMY;
end if;
IF :i > 2 then
TRACE_RECORD = SELECT '2' AS "LogID", '2' AS "TraceID" FROM DUMMY;
end if;
END;
我在执行程序时得到的只是最后一条记录“2,2”。
如何同时插入记录 1,1 和 2,2。
注意:我不想使用临时 Tables.
对此有任何帮助..
谢谢!
稍微编辑一下问题:
-我必须使用Table TYPE(直到没有比它更好的最佳方式)
-我要在table类型中插入20-30多条记录。
你必须把这个写成程序吗? table-valued 函数似乎更合适:
CREATE FUNCTION f_tables4 (in_id INTEGER)
RETURNS TABLE (
"LogID" VARCHAR(400),
"TraceID" VARCHAR(400)
)
LANGUAGE SQLSCRIPT
AS
BEGIN
RETURN
SELECT t."LogID", t."TraceID"
FROM (
SELECT 1 AS i, '1' AS "LogID", '1' AS "TraceID" FROM DUMMY
UNION ALL
SELECT 2 AS i, '2' AS "LogID", '2' AS "TraceID" FROM DUMMY
) t
JOIN (SELECT count(*) AS cnt FROM "hello"."REGION") c
ON c.cnt > t.i
END