【问题标题】:Getting String values from Oracle从 Oracle 获取字符串值
【发布时间】:2011-03-28 06:14:01
【问题描述】:

我在 Oracle 数据库中有一个表,其中包含 id、name 字段。

它的数据是:

123,'南'

121,'东'

445,“非洲与世界”

当我使用 where 子句选择行时

select * from where name = 'Africa & World';

Oracle 要求替换变量,但没有返回任何记录。

请告诉我进一步澄清我的问题。

问候

【问题讨论】:

    标签: oracle sqlplus


    【解决方案1】:

    问题是& 被保留为绑定变量的标记。您需要转义 & 符号。

    您可以通过

    转义 & 符号
    SET ESCAPE ON;
    select * from where name = 'Africa \& World';
    

    或者你可以通过

    来关闭绑定
    SET DEFINE OFF;
    select * from where name = 'Africa & World';
    

    【讨论】:

      【解决方案2】:

      来自http://www.orafaq.com/wiki/SQL_FAQ

      选项#1

      SET DEFINE ~
      SELECT 'Laurel & Hardy' FROM dual;
      

      选项#2

      SET ESCAPE '\'
      SELECT '\&abc' FROM dual;
      

      选项 #3

      SET SCAN OFF
      SELECT '&ABC' x FROM dual;
      

      选项#4

      SELECT 'Laurel ' || '&' || ' Hardy' FROM dual;
      

      选项 #5(使用 10g 报价机制)

      SELECT q'{This is Orafaq's 'quoted' text field}' FROM DUAL;
      

      【讨论】:

      • 我的偏好一直是选项#3 SET SCAN OFF
      【解决方案3】:

      这是一个 SQL*Plus 的东西。

      在 SQL*Plus 提示符下,键入:

      SET DEFINE OFF
      

      然后尝试重新运行您的语句。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-10-19
        • 2014-08-18
        • 1970-01-01
        • 2011-01-05
        • 2011-01-30
        • 2016-08-31
        • 2015-09-23
        相关资源
        最近更新 更多