zoukankan      html  css  js  c++  java
  • Oracle的SQL语句中的变量替换

    一.问题描述

    如下SQL:

    INSERT INTO tmp(val)VALUES('a&b');
    View Code

    执行过程中会出现如下提示:

    点击"确定"过后我们查看表中的数据:

    b后面的字符串没有插入进去.

    二.原因解析--替代变量

    SQL*PLUS中默认的"&"表示替代变量,当写入&时,数据库会要求其替换成其它的值。

    如,你可以定义:

    这样插入数据库中的值就是ahellob.

    三.解决方法

    解决方法1:关闭变量替换

    如下所示:

    SET DEFINE OFF;
    INSERT INTO tmp(val)VALUES('a&b');
    COMMIT;
    View Code

    这样插入进去的值就是a&b

    解决方法2:使用&符号的ASCII码CHR(38)来处理

    字符串拼接,如下所示:

    INSERT INTO tmp(val)VALUES('a'||CHR(38)||'b');
    COMMIT;
    View Code

    字符串翻译,如下所示:

    INSERT INTO tmp(val)VALUES(translate('aIIIb','III',CHR(38)));
    COMMIT;
    View Code

    字符串替换,如下所示:

    INSERT INTO tmp(val)VALUES(REPLACE('aIIIb','III',CHR(38)));
    COMMIT;
    View Code

    附:ASCII码对照表

    百度百科:http://baike.baidu.com/view/15482.htm?fromid=99077

  • 相关阅读:
    算法
    爬虫--scrapy框架
    Flask--SQLAlchemy
    Flask--WTForms
    Django--model操作
    Odoo10 自定义模块创建
    odoo10 工作流、安全机制、向导
    odoo10 高级视图
    odoo10 onchange、唯一性约束
    Odoo10 模型(结构化的应用数据)、视图(用户界面设计)
  • 原文地址:https://www.cnblogs.com/gudi/p/6109210.html
Copyright © 2011-2022 走看看