如何在Oracle表函数的IN参数中传递带WHERE子句的查询语句
Oracle表函数传递含单引号的查询语句的正确写法
在Oracle中,直接向表函数传递带单引号的SQL语句会触发语法错误——Oracle会把第一个单引号当作字符串的结束标记,后续的单引号会被判定为无效语法。
解决方法是将查询语句里的单个单引号替换为两个连续的单引号,以此完成单引号的转义。
正确的调用示例:
select column_value from table (my_table_fn('select col from tbl where col = ''aaa'' '))
Oracle的字符串解析规则是:两个连续的单引号会被解析成一个实际的单引号,这样传递的参数最终会被表函数正确识别为select col from tbl where col = 'aaa'。
内容的提问来源于stack exchange,提问作者Pato
相关产品推荐
相关产品推荐

