我有一些表,其中包含一些从应用程序执行的SQL查询。 例如,id = 1的查询之一是:
select * from customer where status='A'
我想要的是在该查询中进行一些替换并返回该执行查询的行。我想在sql中做所有的事情。 例如,如果我说
select id, query from queries where id=1
我会得到结果:
1 | select * from customer where status ='A'
如果我说:
从id = 1
的查询中选择id,替换(查询,'A','N')我会得到:
1 | select * from customer where status ='N'
我想执行此替换查询并查看结果。 这可能只用sql吗? 我正在使用oracle DB
答案 0 :(得分:0)
不确定这是否是最佳解决方案,但这是我现在能想到的: 创建一个管道函数,它将返回所需类型记录的表类型。 然后将其称为:
{{1}}
作为参数,您将提供替换基本查询中的文本所需的所有信息,如查询ID,要搜索的字符串,要替换的字符串等。在函数中,您将从表中获取查询,替换占位符,执行它并输出行。 或者甚至编写一个查询,它将获得精确的查询语句作为varchar / clob,并按原样执行它'并将行传递给调用者。
这将在一个简单的例子中解释流水线函数: https://oracle-base.com/articles/misc/pipelined-table-functions