首页 > 新闻

Oracle 对单引号的处理规则

时间:2009-12-08 07:06:30  作者:  我要投稿
Linux初探欢迎您的投稿,投放方法请点击这里查看,我们会定期赠送精美小礼品给优秀的投稿作者。海纳百川 取则行远!LinuxGoo欢迎您的到来。
今天一同事需要添加一条数据到Oracle中,这条数据包含一个字段的找为sp'id,试了一下发现有规律,但是没搞清楚是什么规律,于是回来尝试了一下,做了以下实验.'a'''s'......

今天一同事需要添加一条数据到Oracle中,这条数据包含一个字段的找为sp'id,试了一下发现有规律,但是没搞清楚是什么规律,于是回来尝试了一下,做了以下实验.

'a'
''s''s''
'i am'' a db'd''''s'

加以上3条数据.

先是尝试

insert into users(userid) values(''' || a || '''); 失败

然后尝试

insert into users(userid) values('''a'''); 成功

于是以为'''代表'字符串.

然后用'''代表'字符串的思想加第二个.

insert into users(userid) values(''''''s''''''s''''''); 失败

接着在网上查了一下,发现一般在俩个字符中间加',比如a'a,是用''来表示'.又来试:

insert into users(userid) values(''''''s''''s''''''); 还是失败

最后尝试把''当作'来做实验.

insert into users(userid) values(''''s''''s''''); 还是失败(俩边是4个')

insert into users(userid) values('''''s''''s'''''); 却成功了.(俩边是5个')

insert into users(userid) values(''''''s''''s''''''); 失败(俩边是6个)

insert into users(userid) values('''''''s''''s'''''''); 成功(俩边是7个)结果为'''s''s'''

于是终于发现规律,规律如下:

2个'代表1个',最外面3个'代表1个'的原因是本身加字符串到数据库首先就需要''俩个来包含住里面的字符串,例如a,入库需要这样'a'

所以,要加'a'这样的字符串,首先作为添加字符串入库,就需要2个'包含里面的字符串,然后再在2个'中间加'a'字符串,于是2个'代表1个',就有这样的结果'''a'''.

最终尝试'i am'' a db'd''''s'这个超难的一次性成功

insert into users(userid) values('''i am'''' a db''d''''''''s'''); 成功.

洗了睡.

如果您需转载 Oracle 对单引号的处理规则,请注明来自LinuxGoo.com,其版权归原作者所有。请广大网友留言时遵纪守法,使用文明用语。如果您在应用中有什么问题,请在下面留言,我们会尽快解答。
来顶一下
近回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
相关文章
栏目热门