oracle怎么查询字符串形式的表名
答案:3 悬赏:60 手机版
解决时间 2021-02-12 20:08
- 提问者网友:戎马万世
- 2021-02-12 14:03
oracle怎么查询字符串形式的表名
最佳答案
- 五星知识达人网友:酒安江南
- 2021-02-12 14:25
要么用存储过程,开了游标读出表名来一个个拼,比较麻烦,
要么用触发器,每个你关心的表上都戳那么一个上去,完成写操作后把最大值记录在某张特定表里头(性能可能影响大点,但是读的时候轻松),
要么用job来干上面那个活计(如果数据滞后点关系不大的话比触发器好些);
或者我又想,如果这些表的结构比较类似的话,至少id都是同一类型的话,做个带表名的视图,表大的话id上要有索引。
create or replace view v_All as
select 'Table_A' as t_name, A.id from Table_A A
union all
select 'Table_B' as t_name, B.id from Table_B B
...;
select t_name, MAX(id) from v_all
group by t_name;
要么用触发器,每个你关心的表上都戳那么一个上去,完成写操作后把最大值记录在某张特定表里头(性能可能影响大点,但是读的时候轻松),
要么用job来干上面那个活计(如果数据滞后点关系不大的话比触发器好些);
或者我又想,如果这些表的结构比较类似的话,至少id都是同一类型的话,做个带表名的视图,表大的话id上要有索引。
create or replace view v_All as
select 'Table_A' as t_name, A.id from Table_A A
union all
select 'Table_B' as t_name, B.id from Table_B B
...;
select t_name, MAX(id) from v_all
group by t_name;
全部回答
- 1楼网友:人類模型
- 2021-02-12 15:59
办法是有的,就是特别麻烦,需要又重循环,第一重,循环所有表,第二重,循环特定表中的字段,然后将所有满足条件的表名和字段名插入到一张新的表中,然后再自己分析结果,确认究竟是哪个表哪个字段, 仅提供思想而已,需要息写一个procedure 或者function实现。
- 2楼网友:杯酒困英雄
- 2021-02-12 15:06
要么用存储过程,开了游标读出表名来一个个拼,比较麻烦,
要么用触发器,每个你关心的表上都戳那么一个上去,完成写操作后把最大值记录在某张特定表里头(性能可能影响大点,但是读的时候轻松),
要么用job来干上面那个活计(如果数据滞后点关系不大的话比触发器好些);
或者我又想,如果这些表的结构比较类似的话,至少id都是同一类型的话,做个带表名的视图,表大的话id上要有索引。
create or replace view v_all as
select 'table_a' as t_name, a.id from table_a a
union all
select 'table_b' as t_name, b.id from table_b b
...;
select t_name, max(id) from v_all
group by t_name;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯