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