java获取查询语句中的表名 ,或者是查询resultSet里每个列对应的表名

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java获取查询语句中的表名 ,或者是查询resultSet里每个列对应的表名相关的知识,希望对你有一定的参考价值。

java获取查询语句中的表名 ,或者是查询resultSet里每个列对应的表名使用ResultSetMetaData 中的getTableName方法,结果每次都是 空, 鉴定为我的jdbc驱动不支持此方法 ,问问还有什么方法能获取表名?
我的是jdk1.4

参考技术A JDK 1.5 + ORACLE 9i 以上基本都支持该接口的函数了。
getTableName(int column)是返回表的名称。但需要有个明确的表。你的查询中是否用了匿名视图呢?就是类似select * from (select * from t1)的查询样式。如果没有明确的表,则返回""。
参考技术B 换驱动或者是 你自己解析你的sql

oracle 语句之对数据库的表名就行模糊查询,对查询结果进行遍历,依次获取每个表名结果中的每个字段

语句的执行环境是plsql的sql窗口, 语句的目的是从整个数据库中的所有表判断 不等于某个字段的记录数 。

代码如下: 

  declare s_sql clob:=‘‘; -- 声明一个变量,该变量用于存储查询的sql语句

  v_cityCode varchar2(20); -- 每个sql语句执行完的查询结果
  code varchar2(20); -- 查询条件
  begin -- 开启事务
    code :=‘110112‘; 
    for wf in(select table_name from user_tables where table_name like ‘__________________201711%‘) -- 从数据库中的所有表中进行表名的模糊查询, 然后依  次遍历每个表名
       loop -- 循环体
        s_sql:= ‘select count(*) from ‘|| wf.table_name||‘ where city_code !=:1‘; -- 组合查询语句, 其中city_code != :1的作用是使用code(下面的using code), 1  并没有实际意义
        execute immediate s_sql into v_cityCode using code;--执行动态sql 
       dbms_output.put_line(v_cityCode||‘ ‘||wf.table_name); -- 输出结果
       end loop;
  end;


 

以上是关于java获取查询语句中的表名 ,或者是查询resultSet里每个列对应的表名的主要内容,如果未能解决你的问题,请参考以下文章

如何查询一个ACCESS数据库中的表名和字段?

怎样用SQL语句查询一个数据库中的所有表?

从子查询中获取表名以在一行中用于 Oracle 中的删除/更新/插入子句

SQL 查表名?

如何按条件查询MYSQL数据库中的表名

SQL查询字段名