在SAP HANA中,我希望视图的数字范围为1到10,或者1到n,其中n是任意数字。因此,当我从视图中选择时,我可以选择n个记录来获取范围中的前n个记录。
我能够创建一个包含1000行的表,其中ID通过使用此存储过程递增。有更简单的方法吗?
DROP PROCEDURE "DEMO_PROC";
CREATE PROCEDURE "DEMO_PROC"(
IN ID INTEGER )
LANGUAGE SQLSCRIPT AS
/*********BEGIN PROCEDURE SCRIPT ************/
BEGIN
DECLARE
START_ID INTEGER;
DROP TABLE TEST_TABLE;
CREATE COLUMN TABLE "TEST_TABLE" (ID INTEGER, NAME VARCHAR(10));
START_ID := 0;
WHILE START_ID < 1000 DO
START_ID := START_ID + 1;
INSERT INTO "TEST_TABLE" VALUES(:START_ID, '');
END WHILE;
END;
CALL "DEMO_PROC"(1);
SELECT * FROM "TEST_TABLE";
答案 0 :(得分:2)
我认为for loop
比while
更容易。
FOR START_ID IN 1..1000 DO
INSERT INTO "TEST_TABLE" VALUES(START_ID,'');
END FOR;
答案 1 :(得分:2)
使用生成器是首选方式:
INSERT INTO“TEST_TABLE”选择GENERATED_PERIOD_START作为ID,''作为来自SERIES_GENERATE_INTEGER(1,1,1001)的NAME;
更容易,更快。