我们数据库中存在数据表,表名如这样201004
我可以使用
select table_name from tabs where table_name like '%'||(select to_char(sysdate,'yyyymm') from dual)
这样就能查询出来表名,
但是使用这个查询出来的表名做为另外一个搜索的表名就不行
如select * from (select table_name from tabs where table_name like '%'||(select to_char(sysdate,'yyyymm') from dual)) --假设搜索出来的表名只有一个oracle 9i,不用动态语句,有什么办法么?
我可以使用
select table_name from tabs where table_name like '%'||(select to_char(sysdate,'yyyymm') from dual)
这样就能查询出来表名,
但是使用这个查询出来的表名做为另外一个搜索的表名就不行
如select * from (select table_name from tabs where table_name like '%'||(select to_char(sysdate,'yyyymm') from dual)) --假设搜索出来的表名只有一个oracle 9i,不用动态语句,有什么办法么?
set feedback off
spool b.sql
SELECT 'select * from ' || TABLE_NAME || ';' FROM TABS
where table_name like '%'||(to_char(sysdate,'yyyymm'));
spool off;之后执行:
@b.sql;
最好在plsql developer中执行
另外如果只有一个表,查出表名重写一个SQL就行了,
如果有多个,可以如上面所说的使用SQL语句拼接一个脚本出来
然后将脚本复制出来在SQL窗口中执行