Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 尝试在查询中执行查询_Sql_Oracle - Fatal编程技术网

Sql 尝试在查询中执行查询

Sql 尝试在查询中执行查询,sql,oracle,Sql,Oracle,我有一个查询,其中显示了我需要执行的另一个查询: 因此,第一部分只是将我要执行的查询的第一部分作为文本写出 SELECT distinct 'SELECT COUNT(txn_id) FROM ' 然后,我添加所有我想要在其上执行查询初始部分的表 table_name from all_tab_columns WHERE OWNER='RGSWKF_PRGM' AND COLUMN_NAME like '%TXN_ID%'; 所以我的全部疑问是 SELECT distinct 'SELEC

我有一个查询,其中显示了我需要执行的另一个查询:

因此,第一部分只是将我要执行的查询的第一部分作为文本写出

SELECT distinct 'SELECT COUNT(txn_id) FROM ' 
然后,我添加所有我想要在其上执行查询初始部分的表

table_name from all_tab_columns WHERE OWNER='RGSWKF_PRGM' AND COLUMN_NAME like '%TXN_ID%';
所以我的全部疑问是

SELECT distinct 'SELECT COUNT(txn_id) FROM ' || table_name from all_tab_columns WHERE OWNER='RGSWKF_PRGM' AND COLUMN_NAME like '%TXN_ID%';
这为我提供了一个要执行的查询列表,如下所示:

SELECT COUNT(txn_id) FROM MEETING_TXN_LIST
SELECT COUNT(txn_id) FROM TXN_COMMENT
SELECT COUNT(txn_id) FROM TXN_DEAL_FEE
……等等。有人告诉我,一旦我得到这个结果,我就可以通过向原始查询中添加一些内容来自动执行由此创建的查询,但我至今找不到任何内容

所以基本上我希望它从一个查询执行:

SELECT COUNT(txn_id) FROM MEETING_TXN_LIST
然后

然后

等等。一次查询

使用带单引号的union all可以得到包含文本的结果

SELECT COUNT(txn_id) FROM TXN_COMMENT union all ..etc...
如果没有单引号,则会出现以下错误

ORA-00936: missing expression
00936. 00000 -  "missing expression"

我建议您使用union all连接的子查询生成一个查询:

对此的查询基本上是:

SELECT 'SELECT ''' || table_name || ''' as table_name, COUNT(txn_id) as cnt
        FROM ' || table_name || ' union all '
from all_tab_columns
WHERE OWNER = 'RGSWKF_PRGM' AND COLUMN_NAME = 'TXN_ID';

请注意,您需要从最后一行中删除最终的union all。而且,我将查询更改为只查找列TXN_ID,因为这就是您在查询中使用的内容。

您是否希望进行一次伟大的查询?你想对这些结果做些什么?@paqogomez是的,我想提出一个大问题,请看我对你的评论回复answer@paqogomez我已经回复了你的评论,但由于某些原因,我不能在你的回答下的评论部分标记和提及你的用户名
  select    txt
         || case
               when row_number() over (order by rn desc) = 1 then null
               else ul
            end
    from (select    'SELECT '''
                 || table_name
                 || ''' as table_name, COUNT(txn_id) as cnt FROM '
                 || table_name
                    as txt
                ,' union all ' ul
                ,rownum rn
            from all_tab_columns
           where OWNER = 'RGSWKF_PRGM' and COLUMN_NAME = 'TXN_ID')
order by rn
ORA-00936: missing expression
00936. 00000 -  "missing expression"
SELECT 'MEETING_TXN_LIST' as table_name, COUNT(txn_id) as cnt FROM MEETING_TXN_LIST UNION ALL
SELECT 'TXN_COMMENT', COUNT(txn_id) FROM TXN_COMMENT union all
SELECT 'TXN_DEAL_FEE' COUNT(txn_id) FROM TXN_DEAL_FEE;
SELECT 'SELECT ''' || table_name || ''' as table_name, COUNT(txn_id) as cnt
        FROM ' || table_name || ' union all '
from all_tab_columns
WHERE OWNER = 'RGSWKF_PRGM' AND COLUMN_NAME = 'TXN_ID';
  select    txt
         || case
               when row_number() over (order by rn desc) = 1 then null
               else ul
            end
    from (select    'SELECT '''
                 || table_name
                 || ''' as table_name, COUNT(txn_id) as cnt FROM '
                 || table_name
                    as txt
                ,' union all ' ul
                ,rownum rn
            from all_tab_columns
           where OWNER = 'RGSWKF_PRGM' and COLUMN_NAME = 'TXN_ID')
order by rn