2

我想在 SQL HANA 过程中的表中插入十列。

以下是我所做的,对我来说似乎还不错,但由于某种原因,系统抛出了语法错误。

我想要的:10 个名为Col_1..每个类型的新列Col_2Col_10INT

BEGIN
--DECLARE arr INT ARRAY ;
DECLARE i INT ;
DECLARE str1 STRING;
DECLARE str2 STRING;

str1:= 'Col_';


for i in 1 ..10 do 
     str2 := :str1 || :i;
     exec 'ALTER TABLE "Table_Name" ADD (:str2 INT)';
end for;



END;

我尝试通过在 ADD() 中输入列名而不是使用变量来使用相同的 alter 命令,它工作得很好。

4

1 回答 1

0

它看起来像糟糕的架构设计,无论如何尝试连接它:

BEGIN
--DECLARE arr INT ARRAY ;
DECLARE i INT ;
DECLARE str1 STRING;
DECLARE str2 STRING;
DECLARE str3 STRING;

str1:= 'Col_';

for i in 1 ..10 do 
     str2 := :str1 || :i;
     str3 := 'ALTER TABLE "Table_Name" ADD ('|| :str2 ||' INT)';
     exec str3;
end for;

END;

如果是一次,我会简单地使用显式的多个 alter 语句:

ALTER TABLE "Table_Name" ADD (Col_1 INT);
ALTER TABLE "Table_Name" ADD (Col_2 INT);
ALTER TABLE "Table_Name" ADD (Col_3 INT);
--...
ALTER TABLE "Table_Name" ADD (Col_10 INT);
于 2017-09-11T15:15:13.910 回答