简释下oracle的set define的使用场景

我们在使用oracle的时候,有些菜单表存在url字段,url字段中存在这&字符。但我们通过sql语句进行插入表记录的时候,数据库会提示要我们输入变量值。这个时候有些人难免会不知所措,今天告诉大家一个非常简单的办法解决。

一、问题现象

如果我们输入一个值100,我们看下数据表的url字段:

可以看到我们的url变成了我们完全不想要的值。

二、问题解决

在oracle SQL*PLUS中,'&'为一个特殊字符,它代表替代变量。也就是说,如果在命令中出现该符号,该字符及其后面对应的变量组成一个可以由用户输入的替代变量。用户输入值后,原有语句中的对应变量将会由输入值替代。上图中,我们输入值100,最终,&name被100替代,导致我们的url字段值发生变化。

我们可以通过SQL*PLUS中的set define off命令关闭替代变量功能。

当然,也可以通过set define on开启替代变量功能。

set define 将默认替代变量由'\&'变为''。

下面我们关闭默认替代变量功能,解决之前遇到的问题.

可以看到,url字段值被正确插入。

相关推荐
TDengine (老段)1 分钟前
TDengine 统计函数 STDDEV_SAMP 用户手册
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
原神启动14 分钟前
云计算大数据——MySQL数据库二(数据库管理)
大数据·数据库·mysql
编程修仙5 分钟前
第二篇 搭建第一个spring程序
java·数据库·spring
VX:Fegn08955 分钟前
计算机毕业设计|基于springboot + vue手办商城系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
LucidX10 分钟前
MySQL 数据库管理
数据库·mysql·oracle
我科绝伦(Huanhuan Zhou)12 分钟前
深入解析Oracle 10046事件与数据库初始化引导机制
数据库·oracle
踢球的打工仔13 分钟前
mysql模糊搜索,排序,分组
数据库·mysql
无心水15 分钟前
【分布式利器:分布式ID】7、分布式数据库方案:TiDB/OceanBase全局ID实战
数据库·分布式·tidb·oceanbase·分库分表·分布式id·分布式利器
一只栖枝18 分钟前
MySQL OCP不培训,自学怎么学?
数据库·mysql·备考·考证·ocp
safestar201221 分钟前
扒开MySQL的引擎盖:InnoDB如何用B+树、缓冲池和日志系统扛起高并发
数据库·b树·mysql