从SQL查询字符串中获取表名和列名

时间:2017-01-05 04:10:54

标签: java sql string oracle11g

我正在将一个CSV文件读入我的java程序,它的每条记录都有一个sql查询。我想解析这个(Select)SQL查询以查找这些查询中提到的表名和列名。

e.g。选择年龄,员工姓名

结果:

----表格:[员工]

----列:[年龄,姓名]

注意:我不想激发查询,否则我会使用ResultSetMetaData

1 个答案:

答案 0 :(得分:0)

对于像上面例子这样的简单SQL语句,我会使用一些简单的字符串方法来获取信息。示例:

public static void main (String[]args) { 
    String sql = "Select age,name,adress,id from Employee where id = 3";
    String[] columns = sql.substring(sql.indexOf("Select")+7, sql.indexOf("from")-1).split(",");
    String table = sql.substring(sql.indexOf("from")+5).split(" ")[0];
    System.out.println(Arrays.toString(columns));
    System.out.println(table);
}