如何使用 for 循环 insert/alter 中的多个列 table?
How to use a for loop to insert/alter multiple columns in a table?
我想在 SQL HANA 过程中的 table 中插入十列。
以下是我所做的,对我来说似乎还不错,但由于某种原因系统抛出语法错误。
我想要的:10 个名为 Col_1
、Col_2
..Col_10
的新列,每个列的类型为 INT
.
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 命令,它工作得很好。
看起来模式设计不佳,无论如何尝试连接它:
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);
我想在 SQL HANA 过程中的 table 中插入十列。
以下是我所做的,对我来说似乎还不错,但由于某种原因系统抛出语法错误。
我想要的:10 个名为 Col_1
、Col_2
..Col_10
的新列,每个列的类型为 INT
.
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 命令,它工作得很好。
看起来模式设计不佳,无论如何尝试连接它:
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);