Oracle 10g SQL中q

59次阅读
没有评论

共计 1976 个字符,预计需要花费 5 分钟才能阅读完成。

这篇文章给大家分享的是有关 Oracle 10g SQL 中 q -quote 怎么用的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,一起跟随丸趣 TV 小编过来看看吧。

  在 Oracle 中,字符串的字面量如果含有单引号,那么必须转义,而且转义符是单引号 , 这样加上表示字符串字面量的外层 , 那么势必要写很多单引号,不仅可读性降低,而且容易出错。当然,使用 chr(39), 也可以代替引号,可能比写多个单引号更好,可读性强,但是毕竟这种写法不是很常见。SO, 在 10g 中,Oracle 引入了 q -quote 的用法。
  常规字符字面量内单引号的使用:

dingjun123@ORADB select str from dual;
ERROR:
ORA-01756: 引号内的字符串没有正确结束

– 要使用转义,两个单引号表示一个单引号
dingjun123@ORADB select str from dual;
S

dingjun123@ORADB select a str from dual;
STR

a

  另外可以使用 CHR(39)作为引号来拼凑,比较简洁。

dingjun123@ORADB SELECT It ||chr(39)|| a cat str FROM dual;
STR
———
It a cat

    虽然使用 chr(39), 但是看起来还是很麻烦,所以 10g 引入了 q -quote 特性。允许按照指定规则也就是 Q 或 q 开头(如果是 national character literals, 那就是 N 或 n 放在 Q 或 q 之前),然后 界定符号原始字面量界定符号 , 使用规则很简单:

1) q-quote 界定符可以是除了 TAB, 空格,回车外的任何单字节或多字节字符。
2)  除了单字节的的开始界定符是 [,{, ,(,那么结束界定符必须是],}, ,)   其他开始界定符与结束界定符必须一致
如:

–4 个特殊单字节开始界定符是[,{, ,(,结束界定符必须是],}, ,)
dingjun123@ORADB SELECT q [a bc] str FROM dual;
STR
—-
a bc

dingjun123@ORADB SELECT q {a bc} str FROM dual;
STR
—-
a bc

dingjun123@ORADB SELECT q str FROM dual;
STR
—-
a bc

dingjun123@ORADB SELECT q (a bc) str FROM dual;
STR
—-
a bc

– 因为【开始界定付是多字节,所以必须一致,特殊的就 4 个单字节界定符
dingjun123@ORADB SELECT q【a bc[FROM dual;
ERROR:
ORA-01756: 引号内的字符串没有正确结束

dingjun123@ORADB SELECT q【a bc【FROM dual;
Q【
—-
a bc

– 因为]不是 4 个特殊界定符的开始界定符
dingjun123@ORADB SELECT q ]a bc[FROM dual;
ERROR:
ORA-01756: 引号内的字符串没有正确结束

dingjun123@ORADB SELECT q ]a bc] FROM dual;
Q ]A
—-
a bc

– 其他非特殊的 4 个开始界定符的要求开始与结束一致
–a 是界定符
dingjun123@ORADB SELECT q ab cda str FROM dual;
STR
—-
b cd

–A 是界定符,但是结束的是 a, 不一致
dingjun123@ORADB SELECT q Ab cda str FROM dual;
ERROR:
ORA-01756: 引号内的字符串没有正确结束

dingjun123@ORADB SELECT q Ab cdA str FROM dual;
STR
—-
b cd

–+ 号是界定符
dingjun123@ORADB SELECT q +b cd+ str FROM dual;
STR
—-
b cd

– 单引号是界定符
dingjun123@ORADB select q ab c from dual;
Q A
—-
ab c

–National character literals
dingjun123@ORADB SELECT nq str from dual;
STR
———-
a b c

dingjun123@ORADB SELECT Nq str from dual;
STR
———-
a b c

dingjun123@ORADB SELECT NQ str from dual;
STR
———-
a b c

dingjun123@ORADB SELECT nQ str from dual;
STR
———-
a b c

    一般使用的时候,都是使用 4 个特殊字符作为界定符,这样前后界定符包含了原生态字符串,可读性更好。

感谢各位的阅读!关于“Oracle 10g SQL 中 q -quote 怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-24发表,共计1976字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)