1

在 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";
4

2 回答 2

2

我认为for loopwhile.

FOR START_ID IN 1..1000 DO
INSERT INTO "TEST_TABLE" VALUES(START_ID,'');
END FOR;
于 2014-06-05T08:19:23.293 回答
2

使用生成器是首选方式:

INSERT INTO "TEST_TABLE" SELECT GENERATED_PERIOD_START 作为 ID,'' 作为 NAME from SERIES_GENERATE_INTEGER(1,1,1001);

更容易和更快。

于 2017-08-10T14:48:01.173 回答