繁体   English   中英

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

[英]Dynamic update query with parameters in SAP HANA procedures

我有一个SAP HANA程序来更新表。 我正在尝试创建动态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);

但是在控制台中,我有此错误:

服务异常:[260]无效的列名

我该如何解决?

我找到了正确的语法来解决它

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);

如果必须设置列名或表名,则正确的语法为"'||_field||'"

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM