[英]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.