gpt4 book ai didi

sql - 如何从另一个查询返回的表名中执行选择?

转载 作者:行者123 更新时间:2023-12-05 05:20:03 27 4
gpt4 key购买 nike

例如,我有一个返回我需要的表名的查询

select table_name from all_tables where lower(table_name) like 'test_table%';

如何根据我收到的作为查询结果的名称从所有这些表中执行选择?我试着连接它们并使用“立即执行”,但我无法让它工作。

我试过:

execute immediate 'select value from '|| select listagg(table_name, ', ') within group (order by table_name) from all_tables where table_name like 'test_table%';

最佳答案

这是一个在查询返回的表列表上执行“select count(*)”的小例子:

select
TRUNC(SYSDATE) AS COUNT_DATE,
table_name,
to_number(
extractvalue(
xmltype(
dbms_xmlgen.getxml('select count(*) c from '||owner||'.'||table_name))
,'/ROWSET/ROW/C')) as count
from
all_tables where rownum < 3
order by
table_name

dbms_xmlgen.getxml 允许您执行动态创建的查询并将结果作为 XML 返回,您可以使用 extractvalue 从中提取值。当您要发出的查询返回单行时很有用。

问候

大号

关于sql - 如何从另一个查询返回的表名中执行选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45215444/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com