【发布时间】:2013-01-31 13:29:51
【问题描述】:
目前我的 pl/sql 代码中有以下语句:
-- vList looks like '1,2,3,4'
vStatement := 'SELECT NAME FROM T_USER WHERE ID IN ( ' || vList || ' ) ';
Execute Immediate vStatement BULK COLLECT INTO tNames;
我认为如果不好的做法连接查询,所以我想在不使用 stings 的情况下进行此查询。有什么办法改写这个?
附:也许这里的人可以指出为什么查询串联不好,因为我没有足够的理由证明这种风格不好。
【问题讨论】:
-
字符串的连接通常很“慢”,但除非您连接数千个字符串,否则我认为您的代码没有问题
-
@MattBusche 据我了解这是 pl/sql 代码中的常见做法?因为我有非常大的查询,这些查询通过替换表名、条件等产生串联......
-
串联容易受到SQL注入攻击。
标签: oracle plsql where-clause dynamic-sql