当前位置: 首页 > 知识库问答 >
问题:

如何在使用Spring JDBCTemplate时检查列名是否存在?

楚畅
2023-03-14

我正在使用jdbcTemplate将数据写入我的Oracle DB。我希望在两个不同的环境中重用同一个表的代码,而这两个环境之间的区别只是少了一列。所以在写数据之前,我需要检查列是否存在,以使用正确的sql查询,否则我会得到一个异常。所以我想要一些类似的东西:

if(column3IsMissing){
    String sql = String.format("insert into %s %s", MYTABLE,
                "(column1, column2) values (?, ?)");
}else{
    String sql = String.format("insert into %s %s", MYTABLE,
                "(column1, column2, column3) values (?, ?, ?)");

}
jdbcTemplate.batchUpdate(sql, data, types);

共有1个答案

凌和颂
2023-03-14

Oracle提供了三种不同的视图来获取表列信息:ALL_TAB_COLUMNS、USER_TAB_COLUMNS和dba_tab_columns。

您可以使用JDBC运行如下所示的查询,在运行insert查询之前确认column是否存在。

select column_name from ALL_TAB_COLUMNS where TABLE_NAME = 'MYTABLE';
 类似资料:
  • 问题内容: 我正在从可能更改的视图中查询数据。在执行操作之前,我需要知道该列是否存在。我发现可以查询这样的元数据,以便在从该列请求数据之前查看是否存在该列。 有没有一种更简单的检查列是否存在的方法? 编辑:它必须是数据库不可知的。这就是为什么我引用而不是数据库的原因。 问题答案: 通用JDBC API并不是简单的方法(至少我不知道,或者找不到……我在自己的工具集中有完全相同的代码。) (您的代码不

  • 在我的应用程序中,我有一个适用于多个用户的通用查询。在某些情况下,用户之间的表结构可能不同。我有一个查询,我只想应用于列存在于表中的用户。

  • 我有麻烦让我的代码工作。当用户输入用户名时,它会检查数据库,看看它是否存在,以及它是否设置了

  • 问题内容: 有没有一种方法可以检查Pandas DataFrame中是否存在列? 假设我有以下DataFrame: 我想计算 但是首先我要检查是否存在,如果不存在,我要计算。 问题答案: 这将起作用: 但是为了清楚起见,我可能将其写为:

  • 我需要检查一列是否存在,如果不存在,请添加它。根据我的研究,sqlite似乎不支持是否应该使用语句和case语句。 以下是我目前掌握的情况: 但我得到了一个错误:接近“ALTER”:语法错误。 有什么想法吗?

  • 问题内容: 我正在尝试编写一个查询,该查询将检查MySQL中的特定表是否具有特定列,如果没有,则创建它。否则什么都不做。在任何企业级数据库中,这实际上都是一个简单的过程,但是MySQL似乎是一个例外。 我以为 可以工作,但是失败很严重。有办法吗? 问题答案: 这对我来说很好。 使用PHP就像…