Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java PreparedStatement在SQL查询中不希望将小写字符串名称传递给区分大小写的PostgreSQL数据库_Java_Sql_Postgresql_Jdbc - Fatal编程技术网

Java PreparedStatement在SQL查询中不希望将小写字符串名称传递给区分大小写的PostgreSQL数据库

Java PreparedStatement在SQL查询中不希望将小写字符串名称传递给区分大小写的PostgreSQL数据库,java,sql,postgresql,jdbc,Java,Sql,Postgresql,Jdbc,我使用Java PreparedStatement对象将行插入Postgres数据库表。(我的代码如下:) 但是,当我执行上述代码时,我得到了错误(通过捕获的SQLException的toString()): org.postgresql.util.PSQLException:错误:关系 “表格\uuufinal\uurecords”不存在 其中,上面代码中指定的每个大写字符在抛出异常的文本中显示为小写 如果我手动将数据库表重命名为全小写,则错误将被消除,而无需更改代码。但是,它被替换为: or

我使用Java PreparedStatement对象将行插入Postgres数据库表。(我的代码如下:)

但是,当我执行上述代码时,我得到了错误(通过捕获的SQLException的toString()):

org.postgresql.util.PSQLException:错误:关系 “表格\uuufinal\uurecords”不存在

其中,上面代码中指定的每个大写字符在抛出异常的文本中显示为小写

如果我手动将数据库表重命名为全小写,则错误将被消除,而无需更改代码。但是,它被替换为:

org.postgresql.util.PSQLException:错误:的“日期时间”列 关系“表\最终\记录”不存在

一个明显的解决办法是手动将Postgres数据库中所有表名和列名中的所有大写字符转换为小写,但是,我想知道如何强制这些语句区分大小写,以便正确识别和更新带有大写字符的PostgreSQL数据库表和列名


谢谢

您可以通过引用查询中的标识符来解决此问题:

PreparedStatement st = conn.prepareStatement(
    "INSERT INTO \"TABLE_Final_Records\"(\"Datetime\", \"Number_n\", \"Fraction_f\")" 
    + " VALUES (?,?,?)" 
);
但底线是:您遇到的问题表明,您的数据库表和列是用双引号围绕idenfiers创建的。通常,您希望在声明标识符时避免引用它们,因为这会使它们区分大小写—正如您所经历的,这会使编写查询变得冗长乏味

PreparedStatement st = conn.prepareStatement(
    "INSERT INTO \"TABLE_Final_Records\"(\"Datetime\", \"Number_n\", \"Fraction_f\")" 
    + " VALUES (?,?,?)" 
);