回答

收藏

列名称包含下划线时的语法错误

技术问答 技术问答 245 人阅读 | 0 人回复 | 2023-09-12

我可以编译但不能执行以下代码并犯错误(使用它)Postgres):
2 u' {/ B9 p0 x. Y4 @" O7 tFatal database errorERROR: syntax error at or near "as&quotosition: 13import java.sql.*;public class JDBCExample{private static final String JDBC_DRIVER = "org.postgresql.Driver";private static final String URL = "jdbc:postgresql://hostname/database";private static final String USERNAME = "username";private static final String PASSWORD = "password";public static void main(String[] args) throws Exception{  Connection dbConn = null;  Statement query = null;  ResultSet results = null;  Class.forName(JDBC_DRIVER);  try {       dbConn = DriverManager.getConnection(URL,USERNAME,PASSWORD);  }  catch (SQLException e) {       System.out.println("Unable to connect to database\n" e.getMessage();      System.exit(1);  }  try {       query = dbConn.createStatement();      results = query.executeQuery("select 20_5 as name from flowshop_optimums");    while (results.next())   {        System.out.println(results.getString("name"));   }    dbConn.close();  }  catch (SQLException e) {       System.out.println("Fatal database error\n" e.getMessage();      try    {          dbConn.close();      }     catch (SQLException x) {}      System.exit(1)main} // Example               
9 R* ]/ Z! o  b: f" Y2 V    解决方案:                                                                ; a7 f. V2 f: T9 a" H$ ^' J! ?& P8 m& V
                                                                不是下划线,而是以数字开头的事实。你需要转换它。# \' ^3 z) F" f; U' O% ?
对于MySQL,使用反引号。, o% v4 K3 B' w3 s  i
select `20_5` as name from flowshop_optimums对于SQL Server,请使用方括号。4 H" C8 h, C4 z# n- O$ y! i
select [20_5] as name from flowshop_optimums对于PostgreSQL,请使用双引号。
0 \: G+ q1 R& aselect "20_5" as name from flowshop_optimums
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则