SAP HANA 过程中带参数的动态更新查询

Dynamic update query with parameters in SAP HANA procedures

我有一个 SAP HANA 程序要更新一个 table。我正在尝试创建动态 sql 查询,这是我的示例:

declare _field varchar(100) := 'NAME';
declare _name varchar(100) := 'david';
declare _id integer := 1;
DECLARE SQL_STR VARCHAR(3000);

SQL_STR := 'UPDATE "_SYS_BIC"."TEST_TABLE" SET "'||_field||'" = '||_name||' WHERE "ID" = '||:_id;

EXECUTE IMMEDIATE (:SQL_STR);

但是在控制台中我有这个错误:

Service exception: [260] invalid column name

我该如何解决?

我找到了修复它的正确语法

declare _id integer := 1; 
declare _name varchar(100) := 'david';
declare _field varchar(100) := 'NAME';
DECLARE SQL_STR VARCHAR(3000);

SQL_STR := 'UPDATE "_SYS_BIC"."TEST_TABLE" SET "'||_field||'" = '''||_name||''' WHERE "ID" = '||_id;
EXECUTE IMMEDIATE (:SQL_STR);

如果我必须设置列或 table 名称,正确的语法是 "'||_field||'"

要设置字符串值,语法是 '''||_name||''' 前两个撇号用于转义,因此我们可以对查询说该值是一个字符串,最后一个撇号用于连接值到查询字符串的其余部分。三个撇号之间必须没有空格。