【问题标题】:How can I see if a column exist ? before instanciate resultset object?如何查看列是否存在?在实例化结果集对象之前?
【发布时间】:2016-02-17 13:31:42
【问题描述】:

我有一个java程序,它将执行来自文件的查询。

在文件中我有如下查询:

select f1, f2, f3 from tbl1
select f1, f2, f3 from tbl2

这些查询将在过程中动态执行,但是当表中不存在某些字段时,它会显示以下错误:

column "f1" does not exist.

我想处理这些错误。 有没有办法在运行查询之前知道表中是否存在列?

非常感谢

【问题讨论】:

    标签: java database database-schema


    【解决方案1】:

    您可以要求DatabaseMetaData提供有关columns的信息:

    Connection con = ...
    DatabaseMetaData md = con.getMetaData();
    boolean tbl1_f1_exists = md.getColumns(null, null, "tbl1", "f1").next();
    

    【讨论】:

    • 朋友你好,谢谢你的回答...但是如何知道字段的名称??? f1 ...我不知道名字...有没有办法得到它?
    • @EasyTI 您需要解析查询字符串以提取字段和表名。这不是一件容易的事......
    • 在 SQLEXception 中出现一条消息,上面写着:“Collum 'f1' no found” .. 你知道是否有办法获取字段的名称吗?因为如果我在这里得到字段的名称,我想我可以解决我的问题
    • 使用e.getMessage(),然后提取两个引号字符之间的子字符串
    • 他们还有其他方式吗???通用所有数据库.....在sql server中它带有简单的引号('),但在oracle角(“)......
    猜你喜欢
    • 2013-08-05
    • 2012-11-08
    • 2013-08-23
    • 2017-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多