oracle如何查找字段中的表
来源:百度知道 编辑:UC知道 时间:2024/05/26 10:49:39
我在1个表的字段中存放了另外1个表的名称,请问想要查询这个字段中的表的SQL要怎么写
select * from (select table_name from other_table);
如果写成这样的话,只是会把我查找出来的table_name当作1个结果,并不是当作表来查找 实际上和
select * from (select 'aaa' from dual);这样的效果是一样的,外部的查询语句并不认为后面的内容是个表。。
1. 你这个syscat.tables 在ORACLE中是没有的
2.3楼所说的动态SQL我看了,但是好像必须要写过程,与其写ORACLE过程,我还不把我的方法写在后台程序里,先取表名,再取该表的数据。这就是执行2次SQL而已。有没有不写过程的办法?
select * from (select table_name from other_table);
如果写成这样的话,只是会把我查找出来的table_name当作1个结果,并不是当作表来查找 实际上和
select * from (select 'aaa' from dual);这样的效果是一样的,外部的查询语句并不认为后面的内容是个表。。
1. 你这个syscat.tables 在ORACLE中是没有的
2.3楼所说的动态SQL我看了,但是好像必须要写过程,与其写ORACLE过程,我还不把我的方法写在后台程序里,先取表名,再取该表的数据。这就是执行2次SQL而已。有没有不写过程的办法?
没有楼主要求的方法!
只能二次sql,我通常是
SELECT 'SELECT * FROM '|| TABLE_NAME || ';' FROM OTHER_TALBE;
把查询结果拿来执行。
首先把要取的表数据中的表名取出来,附给plsql定义的变量
通过组织sql字符串,通过plsql中执行字符串的函数进行执行。
一般这样写,我也都是应用在存储过程当中
你要把他变为字符串,然后调用执行这个字符串就行了,看一下SQL动态执行一章
SELECT * FROM USER_TABLES
我用的DB2
是这样的
SELECT * FROM syscat.tables
WHERE TABNAME = 'XXX'
XXX是你自己查出来的。
不知道有这样的简便方法,还是用PL/SQL实现吧