【发布时间】:2020-01-07 03:23:48
【问题描述】:
我从 MS-SQL 更改为 DB2。程序中有一些QUOTENAME 方法来防止sql-injection。 DB2 中是否存在这样的函数?
【问题讨论】:
标签: sql db2 database-migration
我从 MS-SQL 更改为 DB2。程序中有一些QUOTENAME 方法来防止sql-injection。 DB2 中是否存在这样的函数?
【问题讨论】:
标签: sql db2 database-migration
恐怕你误解了QUOTENAME的目的——不是“防止SQL注入”;它是“to make the input string a valid SQL Server delimited identifier。”
由于在 Db2 中(我相信在标准 SQL 中)引用标识符的唯一方法是将其括在双引号中,因此您可以使用 REPLACE 函数轻松实现相同的功能:
create function quotename (input varchar (128)) returns varchar(128)
return '"' || replace(input, '"', '""') || '"'
【讨论】: