ORACLE 查询条件出现特殊字符(关键字):&_
SQL
select 1 from dual WHERE xxx IN ('AAA&SSS')
编译器提示
原因和解决方法
在Oracle SQL查询中,如果查询条件包含特殊字符如&
,通常需要进行转义处理,以确保查询语句能被正确解析
&
在Oracle中可能被视作替换变量的一部分,因此直接使用时可能导致查询出错
为了正常查询包含&
的字符串,你可以使用CHR(38)
来替换&
,因为CHR(38)
返回的就是&
字符
1.转义的SQL
SELECT ASCII('&') FROM dual; SELECT CHR(38) FROM dual;
2.LIKE 使用关键字ESCAPE
-- ESCAPE '\' 指定 \ 作为转义字符,使得 \_ 被解释为实际的下划线字符,而不是通配符 SELECT 1 FROM DUAL WHERE 'ASD' LIKE '%\_A\_%' ESCAPE '\'
3.禁用变量替换
-- 在SQL*Plus/SQLcl中执行 SET DEFINE OFF; CREATE DATABASE LINK my_dblink CONNECT TO username IDENTIFIED BY "pwd&123#" USING 'tns_service_name';
分类:
DB
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现