Oracle和其他数据库有什么区别?从引号开始了解!

news2025/1/31 11:19:27

无论测试或者开发,对数据库的增删改查都是家常便饭。但有些小知识是经常被忽略,却又不能不去了解的,例如单引号和双引号的用法和区别,看完这一篇,你肯定会有收获。

首先我们要区别一个概念,即单引号(‘)和双引号(“)和两个单引号(‘’),在PL/SQL中明显是不同的,单引号就是单引号,双引号就是双引号。那么我们来看下单引号和双引号在Oracle的世界中有什么区别。

Oracle中的单引号

在Oracle中,单引号主要有两种用途:

  • 一是引用字符串

  • 二是转义

让我们直接从问题出发,反向论证。

Q1 如何打印出单引号?

我们知道单引号经常用来标识内容为字符串(引用),但是怎么来标识自己呢?如果直接这样写,那么就会报错。

select ''' from dual; > ORA-01756: 引号内的字符串没有正确结束

因此,这边用到了单引号的转义用法,即用单引号转义自己:’’。

没错,就是写成两个单引号,转义类似语言中的反斜杠(\),下面SQL中的绿色部分就是转义的位置。

select '''' from dual;  

 Q2 如果转义单引号和字符串的引号连续,如何选择优先级?

如果转义字符前后还有字符串,那么该怎么判断其优先级呢,是先表示字符串的,还是先转义?

select 'name''is' from dual;

例如上面这个SQL,两个字符串连在一起,那么是输出拼接后的nameis还是name’is?其实这边看似两个字符串,其实中间的两个单引号是转义,所以结果是name’is。

select 'name''is' from dual;   # 中间引号为转义的单引号

那有没有连续转义的场景呢,例如下面这个SQL,就是连续转义。

select 'name''''' from dual;

如上,SQL中进行了连续两个转义,因此结果是name''。

Q3 单引号遇到||拼接还可以继续转义吗?

我们都知道,在SQL语句中,如果想要多个字段拼接,可以用双竖线||来实现。而||两边的字符串是没有任何关联的,互不干扰,即使是转义字符也是一样的,可以看到下面这个例子。

select 'I'||''''||'am Jack' from dual;

语句中由两个||将字符串分成了3部分,且每段都是互相独立的。那么中间4个单引号是如何显示的?其实是中间两个单引号是转义,前后两个单引号只是字符串的引用而已(4个单引号只为了显示1个单引号),因此结果就是:I'am Jack。

Q4 单引号的转义太复杂,易混乱,有没有简单的标识方法?

对于简单的SQL语句中含有个别单引号还可以接受,但是如果SQL语句中包含大量的单引号,岂不是很混乱,要崩溃?

select 'insert into bp_data_router (ACCESS_TYPE, ACCESS_CODE, BE_ID, EFF_DATE, CUST_ID_PREFIX, EXP_DATE, STATUS, CUST_ID) values ('||''||t.access_type||','''||t.access_code||''','||t.be_id||',to_date('''||to_char(t.eff_date,'yyyymmddhh24miss')||''','||'''yyyymmddhh24miss''),'||t.cust_id_prefix||','||'to_date('''||to_char(t.exp_date,'yyyymmddhh24miss')||''','||'''yyyymmddhh24miss''),'''||t.status||''','||t.cust_id||');' from bp_data_router t where to_char(t.eff_date,'yyyymmddhh24miss') >'20170119004300' and t.eff_date < sysdate

对于类似复杂场景,为了避免出错,建议使用ASCII码来表示: chr(39)。

select chr(39) from dual;   # ’

Oracle中的双引号

一般来说,双引号没有单引号那么复杂,它就是一个普通的字符。

select '"' from dual;

 但是,当出现在to_char的格式字符串中时,双引号有特殊的作用,就是将非法的格式符包装起来,避免出现ORA-01821: date format not recognized错误。

也就是说,去掉双引号和其包含的字符后,剩下的应该是一个合法的格式串。此时,to_char在处理格式字符串时,会忽略双引号。

select to_char(sysdate,'hh24"小时"mi"分"ss"秒"') results from dual;

如上这个写法,“小时”这部分是不能带入到语言内部运算的,程序会默认忽略这部分字符,但是输出的时候,又把它们加上,这就是双引号的作用。

# 忽略之后执行这样的语句:select to_char(sysdate,'hh24miss') results from dual;# 输出结果再加上双引号的格式:>> 22小时50分59秒

总结

综上所述,Oracle中的单引号可以充当转义字符,且优先级较高,而双引号只是个普通字符,只有在to_char中才能发挥特别作用。


资源分享【这份资料必须领取~】

下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/104745.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java语言】— Java基础02

1.数据类型 &#xff08;1&#xff09;数据类型的作用 数据类型就是约束变量存储数据的形式。 数据类型 变量名称初始值;&#xff08;2&#xff09;数据类型的分类 引用数据类型&#xff08;除基本数据类型之外的&#xff0c;如String&#xff09;基本数据类型:4大类8种。 …

如何从 0 开始学 Python 自动化测试开发(一)

本文是「如何从 0 开始学 Python 自动化测试开发」专题系列文章第一篇&#xff0c;适合零基础入门的同学。 作者方程老师&#xff0c;是前某跨国通信公司高级测试经理&#xff0c;目前为某互联网名企资深测试技术专家&#xff0c;也是霍格沃兹测试学院特邀讲师。有十余年大型电…

项目管理软件怎么选?只需要关注4点

项目管理有许多不同的风格&#xff0c;但无论如何管理项目&#xff0c;根据企业的当前需求和未来发展轨迹选择合适的项目管理软件都很重要。 虽然大多数优秀的项目管理软件都提供相似的功能&#xff0c;但没有两个平台是完全相同的。以下是企业在选择项目管理软件时应该考虑的…

【虹科新闻】虹科与SOSLAB正式建立合作伙伴关系

近日&#xff0c;虹科与SOSLAB正式建立合作伙伴关系&#xff0c;虹科将共同与SOSLAB开展亚太地区市场开发&#xff0c;聚焦于工业领域客户开拓&#xff0c;深入本地技术支持、测试与售后服务落地&#xff0c;为客户提供高效、可靠的激光雷达解决方案。 “虹科很高兴与SOSLAB合作…

锁等待超时

问题背景 今天测试同事发现项目里面大部分接口报错&#xff0c;把日志捞出来看了下出现大量的锁等待超时的错误。 Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transactionat sun.reflect.N…

MULLS: Versatile LiDAR SLAM via Multi-metric Linear Least Square论文阅读

1. 摘要 随着自动驾驶与移动建图的快速发展&#xff0c;实际项目中对现成的激光SLAM建图方案的需求也越来越强烈&#xff0c;并且要求解决方案适用于各种不同规格的激光雷达与各种复杂场景。因此&#xff0c;我们提出了MULLS&#xff0c;一种高效&#xff0c;低漂移&#xff0…

状态观测控制器设计与仿真验证

【无限嚣张&#xff08;菜菜&#xff09;】&#xff1a;hello您好&#xff0c;我是菜菜&#xff0c;很高兴您能来访我的博客&#xff0c;我是一名爱好编程学习研究的菜菜&#xff0c;每天分享自己的学习&#xff0c;想法&#xff0c;博客来源与自己的学习项目以及编程中遇到问题…

深度学习炼丹-数据处理和增强

前言一&#xff0c;Normalization 概述 1.1&#xff0c;Normalization 定义1.2&#xff0c;什么情况需要 Normalization1.3&#xff0c;Data Normalization 方法1.4&#xff0c;示例代码 二&#xff0c;normalize images 2.1&#xff0c;图像 normalization 定义2.2&#xff0c…

[XCTF]halo(2019护网杯)(难度2)

目录 前言 一、题目重述 二、解题思路 1.Base64解密 2.难以想到的异或运算 三、flag 总结 前言 注意&#xff01;攻防世界题目有误&#xff01;&#xff01;给出题目与原题不一样但是答案却和护网杯原题答案一样&#xff01;&#xff01; 一、题目重述 aWdxNDs0NDFSOz…

NVM Express Base Specification 2.0c - 2 Theory of Operation

The interface has the following key attributes: 在命令提交或完成路径中不需要非缓存/ MMIO寄存器读取;在命令提交路径中最多需要一个MMIO寄存器写或一个64B消息;支持多达65,535个I/O队列&#xff0c;每个I/O队列支持多达65,535个未完成的命令;优先级与每个I/O队列相关联&a…

【MySQL】基于InnoDB的数据库索引

文章目录前言1、索引引入2、索引语法2.1、创建索引2.2、查看索引2.3、删除索引2.4、案例引入3、索引结构3.1、概述3.2、引擎支持3.3、BTree3.4、Hash4、索引类别4.1、分类4.2、过程分析5、性能分析5.1、执行频率5.2、慢查询日志5.3、explain6、最左前缀原则7、索引失效7.1、范围…

2023年学一门IT技术的最佳选择就是软件测试!

互联网行业的不断发展&#xff0c;也增加了IT行业的就业机会&#xff0c;作为最适合零基础小白入行、门槛低的软件测试岗位来说&#xff0c;也受到越来越多转行者的关注&#xff0c;但是耳边依然充斥着各种关于这个行业不好的言论&#xff0c;诸如“行业饱和了&#xff0c;学完…

华为OD机试真题 Python 实现【最长连续方波信号】

目录 题目 思路 考点 Code 题目 输入一串方波信号,求取最长的完全连续交替方波信号,并将其输出,如果有相同长度的交替方波信号,输出任一即可, 方波信号高位用1标识,低位用0标识,如图: 说明: 1) 一个完整的信号一定以0开始然后以0结尾,即010是一个完整信号,但10…

【自动化】【autojs】02 autox环境搭建和踩坑

▒ 目录 ▒&#x1f6eb; 导读需求开发环境1️⃣ 环境搭建AutoXadbVSCode插件scrcpy2️⃣ ADB方式实战控制微信启动正确设置autox选项启动服务执行代码停止代码执行3️⃣ 踩坑函数id需要传递全名称app.launch未生效ui.layout报错&#x1f4d6; 参考资料&#x1f6eb; 导读 需求…

基于区块链技术的信息服务新架构探讨

【摘 要】为探索区块链技术对信息通信基础架构的影响及实现,在梳理信息技术架构和信息服务架构演进的基础上,分析了区块链新型数字化分布式账本体系赋予数字世界生产关系升级的功能,并基于“云-管-端-边”信息服务架构研究了区块链技术实现信息物理空间中“设备民主”的具体…

EL表达式与JSTL标签库(JSP标准标签库)

EL表达式 EL 全名为Expression Language&#xff0c;是表达式语言。 EL表达式主要是代替jsp页面中的表达式脚本在jsp页面中进行数据的输出。因为EL表达式在输出数据的时候&#xff0c;要比jsp的表达式脚本要简洁很多。 不需要加任何jar包。不依赖任何其它库。提供了在脚本元素…

《软件开发本质论》笔记——了解价值,然后从可能去做的所有事情中选择那些最重要的去做

目录 一、传统的软件项目分阶段进行 二、根据”挑战性的目标“制订计划&#xff0c;危害性很大 三、推荐随时发现缺陷随时修复 四、 价值是什么 一、传统的软件项目分阶段进行 潜在风险&#xff1a;试图去计划并实现所有的功能特性&#xff0c;这使我们处于不利的境地。我们…

转行互联网,零基础应届生应该选择什么样的岗位作为切入点?

对于想要转行互联网的零基础小白&#xff0c;如果你耐心看完了这个答案&#xff0c;恭喜你已经找到了转行互联网的方法&#xff01;我不说空的理论&#xff0c;也不讲心灵鸡汤&#xff0c;作为文艺青年&#xff0c;我只说经验&#xff0c;我是工作十三年的互联网老兵&#xff0…

整合第三方登录之微信扫码登录

&#x1f4c2;文章目录&#x1f393;前言&#x1f3f7;️引入相关依赖&#x1f9f1;操作步骤&#x1f4d4;生成微信登录二维码&#x1f4d4;获取微信用户信息并实现微信注册登录&#x1f497;总结&#x1f393;前言 前置条件&#xff1a;具备微信开发者资质。 通过微信开放平…

Contest2874 - 【在线编程平台】2022年计算机类数据结构作业14.20221215-1220

目录 问题 A: 大顶堆还是小顶堆&#xff1f; 问题 B: sort by age 问题 C: 统计字母个数 问题 D: 字母排序 问题 E: 算法10-6~10-8&#xff1a;快速排序 问题 A: 大顶堆还是小顶堆&#xff1f; 内存限制&#xff1a;128 MB时间限制&#xff1a;1.000 S标准输入输出 题目类…