从datatable行执行sql

时间:2015-09-15 11:26:20

标签: sql oracle dynamic

我有一些表,其中包含一些从应用程序执行的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

1 个答案:

答案 0 :(得分:0)

不确定这是否是最佳解决方案,但这是我现在能想到的: 创建一个管道函数,它将返回所需类型记录的表类型。 然后将其称为:

{{1}}

作为参数,您将提供替换基本查询中的文本所需的所有信息,如查询ID,要搜索的字符串,要替换的字符串等。在函数中,您将从表中获取查询,替换占位符,执行它并输出行。 或者甚至编写一个查询,它将获得精确的查询语句作为varchar / clob,并按原样执行它'并将行传递给调用者。

这将在一个简单的例子中解释流水线函数: https://oracle-base.com/articles/misc/pipelined-table-functions