暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MogDB 支持q quote转义字符

原创 MogDB 2024-08-06
195

可获得性

本特性自MogDB 5.0.0版本开始引入。

特性简介

本特性兼容Oracle中,使用q'对单个字符串进行全局单引号转义的用法,例如SELECT q'{I'm fine}';

客户价值

增强MogDB与Oracle的兼容性,减少应用程序的迁移代价。

特性约束

  • 由于jdbc本地字符检查的原因,当前暂时不支持jdbc执行该命令。

语法描述

该语法为一个字母q(不分大小写),一个单引号,一个定界符,字符串原文,一个定界符,一个单引号。

img

q'转义符通常后面使用! [] {} () <>等转义符号作为定界符,也可以使用\ ,也可以用字母、数字、=、+、-、*、&、$、%、#等,不可以使用空格,tab键。

定界符不可以为非英文、非数字、非特殊字符。如果中间字符串中包含定界符,需要确保定界符后面不是单引号。

定界符的范围包括特殊符号、英文字符、数字。

特殊字符:{},’,:,|,[],,|,<>,?,=,+,-,_,(),*,&,^,%,$,#,@,!,~,`,.,/, 包括逗号,双引号",单引号’

例如:SELECT q'{I'm }' fine}'使用{作为定界符,但是中间的字符串包含}并且后面跟着单引号,该语法不支持转义。

示例

SELECT q '{I'm fine}'; ?column? ---------- I 'm fine ( 1 row) SELECT q ''I'm fine''; ?column? ---------- I 'm fine ( 1 row) SELECT q '[I'm fine]'; ?column? ---------- I 'm fine ( 1 row) SELECT q '\I'm fine\'; ?column? ---------- I 'm fine ( 1 row) SELECT q '<I'm fine>'; ?column? ---------- I 'm fine ( 1 row) SELECT q '?I'm fine?'; ?column? ---------- I 'm fine ( 1 row) SELECT q 'aI'm finea'; ?column? ---------- I 'm fine ( 1 row) SELECT q '2I'm fine2'; ?column? ---------- I 'm fine ( 1 row) SELECT q '=I'm fine='; ?column? ---------- I 'm fine ( 1 row) SELECT q '-I'm fine-'; ?column? ---------- I 'm fine ( 1 row) SELECT q '(I'm fine)'; ?column? ---------- I 'm fine ( 1 row) SELECT q '*I'm fine*'; ?column? ---------- I 'm fine ( 1 row) SELECT q '&I'm fine&'; ?column? ---------- I 'm fine ( 1 row) SELECT q '^I'm fine^'; ?column? ---------- I 'm fine ( 1 row) SELECT q '%I'm fine%'; ?column? ---------- I 'm fine ( 1 row) SELECT q '$I'm fine$'; ?column? ---------- I 'm fine ( 1 row) SELECT q '#I'm fine#'; ?column? ---------- I 'm fine ( 1 row) SELECT q '@I'm fine@'; ?column? ---------- I 'm fine ( 1 row) SELECT q '!I'm fine!'; ?column? ---------- I 'm fine ( 1 row) SELECT q '~I'm fine~'; ?column? ---------- I 'm fine ( 1 row) SELECT q '`I'm fine`'; ?column? ---------- I 'm fine ( 1 row) SELECT q '{'s is good}'; ?column? ------------ 's is good ( 1 row) SELECT q '''s is good''; ?column? ------------ 's is good ( 1 row) SELECT q '['s is good]'; ?column? ------------ 's is good ( 1 row) SELECT q '\'s is good\'; ?column? ------------ 's is good ( 1 row) SELECT q '<'s is good>'; ?column? ------------ 's is good ( 1 row) SELECT q '?'s is good?'; ?column? ------------ 's is good ( 1 row) SELECT q 'a's is gooda'; ?column? ------------ 's is good ( 1 row) SELECT q '2's is good2'; ?column? ------------ 's is good ( 1 row) SELECT q '='s is good='; ?column? ------------ 's is good ( 1 row) SELECT q '-'s is good-'; ?column? ------------ 's is good ( 1 row) SELECT q '('s is good)'; ?column? ------------ 's is good ( 1 row) SELECT q '*'s is good*'; ?column? ------------ 's is good ( 1 row) SELECT q '&'s is good&'; ?column? ------------ 's is good ( 1 row) SELECT q '^'s is good^'; ?column? ------------ 's is good ( 1 row) SELECT q '%'s is good%'; ?column? ------------ 's is good ( 1 row) SELECT q '$'s is good$'; ?column? ------------ 's is good ( 1 row) SELECT q '#'s is good#'; ?column? ------------ 's is good ( 1 row) SELECT q '@'s is good@'; ?column? ------------ 's is good ( 1 row) SELECT q '!'s is good!'; ?column? ------------ 's is good ( 1 row) SELECT q '~'s is good~'; ?column? ------------ 's is good ( 1 row) SELECT q '`'s is good`'; ?column? ------------ 's is good ( 1 row)
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论