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

Oracle数据库脚本中的set define off的更多相关文章

  1. 让你提前认识软件开发(31):数据库脚本中的begin与end

    版权声明:本文为博主原创文章.对文章内容有不论什么意见或建议,欢迎与作者单独交流.作者QQ(微信):245924426. https://blog.csdn.net/zhouzxi/article/d ...

  2. oracle数据库表中,插入数据的时候如何产生一个 字母+数字 编号?

    Oracle 语句中“||”代表什么啊? oracle数据库表中,插入数据的时候如何产生一个 字母+数字 编号? 排序的话,用order by来处理即可.比如:cola123a234b999b335s ...

  3. oracle数据库存储过程中NO_DATA_FOUND不起作用解决

    oracle数据库存储过程中NO_DATA_FOUND不起作用 1.首先创建一个表lengzijiantest,表中只有一个字段f_id ? 1 2 3 4 5 [cpp] CREATE TABLE ...

  4. 在oracle数据库表中没有添加rowid字段为什么会出现?

    rowid 是 oracle 数据库表中的伪列, rowid 首先是一种数据类型,它唯一标识一条记录物理位置, 基于64位编码的18个字符显示.因为 rowid 是伪列, 所以并未真的存储在表中,但可 ...

  5. Oracle 数据库表中已有重复数据添加唯一键(唯一约束)

    Oracle 数据库表中已有重复数据添加唯一键(唯一约束) 问题描述 以 demo 举例,模拟真实场景. 表 TEST_TABLE 有如下字段和数据:id 是主键,code 没有设置键和索引 ID C ...

  6. oracle数据库存储过程中的select语句的位置

    导读:在oracle数据库存储过程中如果用了select语句,要么使用"select into 变量"语句要么使用游标,oracle不支持单独的select语句. 先看下这个存储过 ...

  7. LoadRunner11_录制Oracle数据库脚本

    [oracle环境] ①oracle:无需在本地安装oracle,但是oracle的odbc驱动一定要装:(我的安装路径为 D:\oracle ).安装好后在环境变量 " Path &quo ...

  8. 定时备份oracle数据库脚本文件

    @echo off REM ########################################################### REM # Windows Server 2003下 ...

  9. 使用sqlldr命令导入资料到Oracle数据库表中的示例说明

    CSV: Comma-Separated Values(逗号分隔值)的缩写,是以逗号分隔字段的多行文本文件   sqlldr 是sql*loader的缩写,此工具在安装完整版的Oracle客户端后就有 ...

随机推荐

  1. 一、Kafka初认识

    一.kafka使用背景 1.Kafka使用背景 在我们大量使用分布式数据库.分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我 ...

  2. python核心编程笔记——Chapter5

    好吧,开始第五章习题: 5-2.又是老调重谈,raw_input这个函数真是非常麻烦,返回是str类型,没办法,只能在函数里面使用int内建.(就只是一道简单的两数相乘,哭了) #!/usr/bin/ ...

  3. python json dumps loads

    请看以上图片可知 1. python requests里面返回的是json 字符串, 说白了是字符串.不能直接取里面对应的值. 2. 取值的话,需要把json字符串转换成字典, 用json.loads ...

  4. 20155325 2016-2017-2 《Java程序设计》第7周学习总结

    教材学习内容总结 名称 作用 Calendar 设定时间日期等字段 add() 改变Calendar的时间 roll() 针对日期中某个字段加减 getDefault() 取得默认时区信息 教材学习中 ...

  5. 2017中国大学生程序设计竞赛 - 网络选拔赛 1005 HDU 6154 CaoHaha's staff (找规律)

    题目链接 Problem Description "You shall not pass!" After shouted out that,the Force Staff appe ...

  6. Strusts2笔记4--类型转换器

    类型转换器: Struts2默认情况下可以将表单中输入的文本数据转换为相应的基本数据类型.这个功能的实现,主要是由于Struts2内置了类型转换器.这些转换器在struts-default.xml中可 ...

  7. 公司内网yum源

    新增yum源配置文件 vi /etc/yum.repos.d/szyum.repo 内容如下: #[redhat6.3] [base] name=redhat63 baseurl=http://10. ...

  8. aarch64_c1

    CBFlib-0.9.5.15-3.fc26.aarch64.rpm 2017-02-06 06:55 393K fedora Mirroring Project CBFlib-devel-0.9.5 ...

  9. redhat6.5文件共享

    以下操作均需要root用户 a端: 固定nfs端口 #vi /etc/sysconfig/nfs 将里面的RQUOTAD_PORT.LOCKD_TCPPORT.LOCKD_UDPPORT.MOUNTD ...

  10. C++如何判断大小端

    http://bbs.chinaunix.net/thread-1257205-1-1.html #include <stdio.h>#include <string.h>#i ...