SQL 查询 - 查询中注入的函数是否将由 Oracle 评估

雷达下方

我想知道,如果SQL函数extractvalue(),并xmltype()在下面的查询被执行的机会,或者如果他们将被评估由一个字符串值IN操作。

SELECT * FROM TABLE_1 WHERE (FIELD_1 IN ('foo','bar''||(select extractvalue(xmltype(''%gxgol;]>''),''/l'') from dual)||'''))

此查询不会在 Oracle 中引发任何错误,并且输出仅包含FIELD_1equal的行'foo'

托梅克·斯帕科维奇

不,不会执行字符串文字的内容。谢天谢地。

您需要一个真正的子查询。就像是:

SELECT *
FROM TABLE_1
WHERE FIELD_1 IN (
    SELECT 'foo' FROM DUAL
    UNION ALL
    SELECT 'bar' || extractvalue(bla,bla) FROM DUAL)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章