我有个两张表,一张表为matadata表(table_id,table_name,table_describe),
这张表中table_name字段中存储的是另外一张表的表名,
现在,我知道table_id=002,想查询对应的table_name这个表名对应的那张表的信息,在oracle中该如何写查询语句?以前,我每次先select table_name from matadata where table_id=002,
然后,得到表名假设为apple,然后,再写查询select * from apple;
感觉这样很麻烦,能不能用一个语句写成,或者,其他什么方法,能一步执行完成?非常感谢!
这张表中table_name字段中存储的是另外一张表的表名,
现在,我知道table_id=002,想查询对应的table_name这个表名对应的那张表的信息,在oracle中该如何写查询语句?以前,我每次先select table_name from matadata where table_id=002,
然后,得到表名假设为apple,然后,再写查询select * from apple;
感觉这样很麻烦,能不能用一个语句写成,或者,其他什么方法,能一步执行完成?非常感谢!
解决方案 »
- 会用Oracle Spatial的过来,怎么发现network中最近的node?
- 求一条SQL语句
- 并行问题
- 为什么别人访问不了我机器上的Oracle服务?
- 初学ORACLE的几个疑问,早晚想了很久也没有想通!分不够再加!
- oracle表字段里类似于tab的长空格怎么去掉?
- 一个真实的故事:IT人离开IT还能干什么
- 如何删除数据文件,急!
- @@@@@@@@@@@@@请问在oracle中如何实现全文检索,比如检索表中的某个字段值是否包含‘中国’这个词,该字段为BLOB型,谢谢!
- 联机日志损坏,怎么恢复?
- 关于oracle中存储过程嵌套调用,请各位高人指教?
- oracle SQL command not properly ended错误
v_tablename varchar2(1000);
begin
select tablename into v_tablename from matadata where table_id = '002';
execute immediate 'select * from '||v_tablename;
end;
/
建一个有返回游标类型的存储过程java中处理这种结果集public static void dealWithCursor() throws Exception {
Connection connection = getConnection();
CallableStatement callableStatement = connection
.prepareCall("{call GetResultCur(?) }");
callableStatement.registerOutParameter(1,
oracle.jdbc.driver.OracleTypes.CURSOR);
callableStatement.execute();
OracleCallableStatement oracleCallableStatement = (OracleCallableStatement) callableStatement;
ResultSet resultSet = oracleCallableStatement.getCursor(1);
while (resultSet.next()) {
System.out.println(resultSet.getString(1));
System.out.println(resultSet.getString(2));
System.out.println(resultSet.getString(3));
}
connection.close();
}