【问题标题】:How to write SQL statement with quotes? [duplicate]如何编写带引号的 SQL 语句? [复制]
【发布时间】:2012-03-12 19:20:52
【问题描述】:

可能重复:
In Java, is there a way to write a string literal without having to escape quotes?

我想通过 sql 查询获取 Oracle 开始时间。我使用这个 SQL 语句

SQL_Statement = "select to_char(startup_time, 'HH24:MI DD-MON-YY') "Startup time" from  v$instance";

当我尝试使用此 SQL 语句编写代码时,引号出现问题。编写此 SQL 语句的正确方法是什么?

最好的祝福

P.S 我使用 Java。当我尝试运行这个 SQL 查询时:

select  to_char(startup_time, 'HH24:MI DD-MON-YY') 'Startup time' from  v$instance

我收到此错误:

Error starting at line 1 in command:
select  to_char(startup_time, 'HH24:MI DD-MON-YY') 'Startup time' from  v$instance 
Error at Command Line:1 Column:50
Error report:
SQL Error: ORA-00923: FROM keyword not found where expected
00923. 00000 -  "FROM keyword not found where expected"
*Cause:    
*Action:

【问题讨论】:

  • 尝试用单引号替换字符串中的双引号。您无意中关闭了 SQL 查询字符串。
  • 另外,下次请展示更多的研究成果。在 google 或 stackoverflow 上进行简单的搜索就会用相同的答案淹没您的浏览器。
  • @user1103606 - 您使用什么语言与数据库交互?该语言将有一些方法可以在字符串中转义双引号。我的猜测是在嵌入的双引号之前使用单个 `` 会起作用,但这是在不知道您使用的语言的情况下的猜测。

标签: java sql oracle


【解决方案1】:

在 Java 中,您需要使用单个 '\' 字符来转义字符串内的双引号

SQL_Statement = "select to_char(startup_time, 'HH24:MI DD-MON-YY') \"Startup time\" from  v$instance";

escaping double quotes in a string in Java

【讨论】:

    【解决方案2】:

    在所有字符串的双引号 (") 中使用单引号 (')。

    【讨论】:

      【解决方案3】:

      怎么样:

      select q'{This string's got some extra "quotes" in it}' from dual;
      

      可以使用 {} 或 [] 或任何漂浮在您的船上的东西(当然不在您的字符串中)。

      【讨论】:

        【解决方案4】:

        相信这会帮助你区分SQL语句中单引号和双引号的区别

        What is the difference between single and double quotes in SQL?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-07-07
          • 2013-03-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-15
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多