惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

爱范儿
爱范儿
WordPress大学
WordPress大学
C
Check Point Blog
GbyAI
GbyAI
U
Unit 42
Google DeepMind News
Google DeepMind News
B
Blog RSS Feed
Blog — PlanetScale
Blog — PlanetScale
J
Java Code Geeks
I
InfoQ
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Hugging Face - Blog
Hugging Face - Blog
Vercel News
Vercel News
博客园 - 【当耐特】
美团技术团队
小众软件
小众软件
S
SegmentFault 最新的问题
Jina AI
Jina AI
阮一峰的网络日志
阮一峰的网络日志
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
The Cloudflare Blog
Last Week in AI
Last Week in AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Visual Studio Blog

博客园 - zbjice

mybatis-plus saveBatch方法java.lang.NullPointerException MacOS打开应用后反复提示“XXX将对你的电脑造成伤害。你应该将它移到废纸篓”的解决办法 charles代理证书更新 cron表达式里日期和星期关系 oracle设置与数据源的 JDBC 连接 JDK升级问题记录 加载spring的xsd文件失败,导致发布失败 图片压缩优化 APP中https证书有效性验证引发安全问题(例Fiddler可抓https包) Fullgc引发redis超时异常 maven父子模块deploy 问题 lua post参数获取,参数截断 PhpStorm, XDebug, and DBGp Proxy Dia Diagram Mac OSX Yosemite Fix 闪退 xterm sql优化-隐形转换危害 mybatis 关联映射传递多参数方法 分页栏页码输入框校验 使用a标签或form的submit做下载按钮,然后通过js调用其click事件去下载时经常出现的异常 eclipse、tomcat搭建时出现异常
oracle中查询或插入特殊字符
zbjice · 2012-10-23 · via 博客园 - zbjice

如单引号(''或')与符号(&)等

1.单引号:select '''' from aa01    结果为'

    select '''''' from aa01  结果为''

    select ''''||'xx'||'''' from aa01 结果为'xx'

    如果直接查询select ''' from aa01 会报错

    同样也可以用chr(39)函数将39ASCII码转换为对应的字符,即select chr(39)||'xx'||chr(39) from aa01

2.与符号:select '&&x=' from aa01 结果为&x=

    如果直接使用select '&x=' from aa01 则会报错

    同样也可以使用chr(38)转换,即select chr(38)||'x=' from aa01

针对'&'同样网上也提出这种解决方法:
在SQL*PLUS默认环境里会把'&字符'当成变量来处理. 有些时候我们也需要在SQL>的符号下输入'&字符', 只需要改变SQL*PLUS下一个环境变量define即可. SQL> set define off;是把默认的&绑定变量的功能取消, 可以把'&字符'当成普通字符处理 SQL> set define on;打开&绑定变量的功能, &后面的字符串当变量使用. SQL> show define;查看当前SQL*PLUS的define状态 举例说明: --------------------------------------------------------------- SQL> CREATE TABLE TEST3 ( ID NUMBER (2) PRIMARY KEY, NAME VARCHAR2 (20)); SQL> show define; define "&" (hex 26) SQL> insert into test3 values(1,'sgs&a&n'); Enter value for a: abc Enter value for n: 456 old 1: insert into test3 values(1,'sgs&a&n') new 1: insert into test3 values(1,'sgsabc456') 1 row created. SQL> commit; Commit complete. SQL> set define off; SQL> insert into test3 values(2,'sgs&a&n'); 1 row created. SQL> commit; Commit complete. SQL> select * from test3; ID NAME -- -------------------- 1 sgsabc456 2 sgs&a&n

但是针对以上网办法也有人提出异议如下:

SQL> truncate table demo;
Table truncated.

SQL> select * from demo;
no rows selected

SQL> desc demo;
Name Null? Type
----------------------------------------- -------- ----------------------
X CHAR(20)
SQL> insert into demo values ('scott&'||'tiger');
1 row created.

SQL> select * from demo;
X
--------------------
scott&tiger
SQL>