Oracle数据库脚本中的set define off
2023-03-20 14:57:21 时间
2018年8月6日15:11:34
Oracle数据库脚本中的set define off
前言
最近在公司写需求,接触到脚本,第一句set define off;
就不知道什么意思了,查询后记录之。
名称
SET DEFINE
概要
SET DEFINE命令改变标记替代变量的前缀字符。你可以使用SET DEFINE关闭替代变量。
语法
SET DEF[INE] {OFF | ON | prefix_char}
参数
SET DEF[INE]是一个命令,可以缩写为SET DEF。OFF禁用替代变量。ON启用替代变量,并重置替代前缀字符为默认`&`符号。默认情况下,替代变量是开启的。prefix_char是新替代前缀字符
当你开启SQL*Plus
,替代变量会默认开启,且默认前缀字符是&
字符。如果你运行一个在文本字符串中使用了&
的脚本,你也许想改变这个前缀字符。如果你的脚本没有使用替代变量,你可以发现关闭这个功能非常容易。
例子
开启替代变量:
SQL> insert into customers (customer_name) values ('Marks & Spencers Ltd');
Enter value for spencers:
old 1: insert into customers (customer_name) values ('Marks & Spencers Ltd')
new 1: insert into customers (customer_name) values ('Marks Ltd')
1 row created.
SQL> select customer_name from customers;
CUSTOMER_NAME
------------------------------
Marks Ltd
禁用替代变量:
SQL> set define off
SQL> insert into customers (customer_name) values ('Marks & Spencers Ltd');
1 row created.
SQL> select customer_name from customers;
CUSTOMER_NAME
------------------------------
Marks & Spencers Ltd
上面的例子你需要customers表,但是有一个表是所有Oracle数据库都拥有的,没错就是dual。如果想了解dual,可以查看本人的文章select 1 from dual。
SQL> set define off;
SQL> select * from dual where dummy='&var';
no rows selected
SQL> set define on
SQL> /
Enter value for var: X
old 1: select * from dual where dummy='&var'
new 1: select * from dual where dummy='X'
D
-
X
总结
set define off;
的作用就是关闭替代变量,默认情况下是开启。
参考
SET-DEFINE - Oracle SQL*Plus
: The Definitive Guide, 2nd Edition by Jonathan Gennick
When or Why to use a “SET DEFINE OFF” in Oracle Database
2018年8月6日16:37:24
相关文章
- 从通信协议看MySQL客户端与中间件设计
- 5月数据库流行度排行:疫情下开源数据库逆势增长
- Redis热点之底层实现篇
- Oracle SQL性能优化40条 | 收藏了!
- 一步即可!MySQL遇到数据分析场景就“怂”?解决方案已经帮你找好了
- 83亿条记录泄露,运营商Elasticsearch数据库被脱机
- 来,教你写一手好SQL!
- 中国数据库告别卡脖子之忧:阿里OceanBase霸气卫冕全球第一
- 11倍增长!支付宝自研数据库OceanBase再次刷新世界纪录
- 从MySQL优化的角度来看:数据库回表与索引
- 分页显示大数据,原来方法这么多,快来学几个
- Redis 6.0更新放大招:客户端缓存怎么用好
- Redis 6.0之前为什么一直不使用多线程?
- 盘点开发中那些常用的MySQL优化
- 设计MySQL的大叔为何偏爱ref?
- DBA+开源工具:面向开发的MongoDB图形可视化监控
- 想学明白PostgreSQL,得先捋一捋 DB架构
- 基于 Prometheus 的云上 MySQL 监控实践
- 大分区表高并发性能提升100倍?阿里云 RDS PostgreSQL 12 新特性解读
- Redis 6.0 新特性-多线程连环13问!