Rav*_*pta 5 sql string oracle where-clause
嗨,
我有一个变量1美元,其中包含逗号分隔的电子邮件地址,如john @ example.com,pat @ example.com.我希望在where子句中传递这个变量
where myColumn in ($1)
Run Code Online (Sandbox Code Playgroud)
但显然这不起作用,我尝试了APEX_UTIL.STRING_TO_TABLE和DBMS_UTILITY.COMMA_TO_TABLE但是徒劳无功.
任何帮助赞赏.
正如 Pavanred 提到的,最简单的方法(尽管不一定是最好的)是自己插入值。你没有说你的呼叫语言是什么,而是说:
sql = "SELECT something FROM whatever WHERE myColumn in (" + $1 + ")"
Run Code Online (Sandbox Code Playgroud)
但是,这意味着您必须预先检查 $1 中的所有值,以确保它们是数字、正确转义的字符串,或者您需要传递但不能是由用户,以避免 SQL 注入。
另一种选择是使其成为一个两步过程。首先,将 $1 中的值插入到临时表中,然后选择这些值作为子查询:
WHERE myColumn in (SELECT temp_value FROM temp_table)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19138 次 |
| 最近记录: |