对于存储过程的数据处理,有一些中间过程需要处理,可以使用临时表来做处理,类似ABAP处理内表的感觉,这里整理了几种常用的方式。
create PROCEDURE "SAPHANADB"."ZTEST"()
LANGUAGE SQLSCRIPT
SQL SECURITY INVOKER
AS
BEGIN
-- 创建本地临时表
CREATE LOCAL TEMPORARY TABLE #temp_table (
id INT,
name VARCHAR(100)
);
-- 插入数据到临时表
INSERT INTO #temp_table (id, name) VALUES (1, 'Alice');
INSERT INTO #temp_table (id, name) VALUES (2, 'Bob');
-- 查询临时表
SELECT * FROM #temp_table;
-- 更新临时表中的数据
UPDATE #temp_table SET name = 'Alicia' WHERE id = 1;
-- 删除临时表中的数据
DELETE FROM #temp_table WHERE id = 2;
-- 删除临时表
DROP TABLE #temp_table;
END;
-- 参考表创建本地临时表
CREATE LOCAL TEMPORARY TABLE #temp_table AS(
SELECT * FROM "SAPHANADB"."ZBWT_DT_BPC" WHERE 1=0);
-- 参考表创建本地临时表,并增加字段
CREATE LOCAL TEMPORARY TABLE #temp_table AS(
SELECT *,'' AS "FIELD1",'' AS "FIELD2" FROM "SAPHANADB"."ZBWT_DT_BPC" WHERE 1=0);