Suc*_*tha 1 oracle plsql dynamic-sql
以下查询中的感叹号(!)标记是什么?
l_sql := q'!
SELECT CASE WHEN FILTER_CNT = 0 THEN NULL ELSE FILTER_LIST END AS FILTER_LIST
FROM
(
SELECT 'TABLE_NAME NOT LIKE ' || LISTAGG(''''||EXCLUSION_CRITERIA||'''', ' AND TABLE_NAME NOT LIKE ') WITHIN GROUP (ORDER BY ROWNUM) AS FILTER_LIST, COUNT(*) AS FILTER_CNT
FROM !'|| p_after_owner ||q'!.UT_TABLE_EXCLUSION
WHERE EXCLUSION_TYPE = 'P'
)
!';
Run Code Online (Sandbox Code Playgroud)
q引用字符串的方法意味着您不必在字符串中转义单引号.
根据文档,它的工作原理如下:
q'<single character delimiter><text><single character delimiter>'
Run Code Online (Sandbox Code Playgroud)
因此,!示例字符串中的s充当引号分隔符.
例如,如果要Don't worry, be happy在旧样式引用中使用字符串,那将成为:
'Don''t worry, be happy'
Run Code Online (Sandbox Code Playgroud)
但新的引用机制将是:
q'!Don't worry, be happy!'
Run Code Online (Sandbox Code Playgroud)
要么
q'{Don't worry, be happy}'
Run Code Online (Sandbox Code Playgroud)
等等
| 归档时间: |
|
| 查看次数: |
265 次 |
| 最近记录: |