[20221123]19cDBA_EXPRESSION_STATISTICS查詢expression_text中字串帶雙引號的問題
[20221123]19cDBA_EXPRESSION_STATISTICS查詢expression_text中字串帶雙引號的問題.txt
--//今天遇到一個小問題,就是查詢DBA_EXPRESSION_STATISTICS檢視 expression_text中字串帶雙引號的問題.無法使用等於方式查詢,
--//而實際上的情況是字串結尾包含\0,透過例子說明問題:
1.環境:
SYS@192.168.100.235:1521/orcl> @ pr
==============================
PORT_STRING : x86_64/Linux 2.4.xx
VERSION : 19.0.0.0.0
BANNER : Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
BANNER_FULL : Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
BANNER_LEGACY : Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
CON_ID : 0
PL/SQL procedure successfully completed.
2.測試:
SYS@192.168.100.235:1521/orcl> SELECT *
FROM SYS.DBA_EXPRESSION_STATISTICS
WHERE last_modified >= trunc(sysdate)
AND table_name = 'LIS_TEST'
AND expression_text = '"TEST_NO"';
no rows selected
SYS@192.168.100.235:1521/orcl> SELECT *
FROM SYS.DBA_EXPRESSION_STATISTICS
WHERE last_modified >= trunc(sysdate)
AND table_name = 'LIS_TEST'
AND expression_text like '%TEST_NO%'
AND rownum = 1
2 @ pr
==============================
OWNER : LIS
TABLE_NAME : LIS_TEST
EXPRESSION_ID : 3602778108646932730
SNAPSHOT : LATEST
EVALUATION_COUNT : 13136741
FIXED_COST : .0000000268215720022949
DYNAMIC_COST :
EXPRESSION_TEXT : "TEST_NO"
CREATED : 2020-11-27 17:18:02
LAST_MODIFIED : 2022-11-23 10:38:37
PL/SQL procedure successfully completed.
SYS@192.168.100.235:1521/orcl> select expression_text,dump(expression_text) from SYS.DBA_EXPRESSION_STATISTICS where last_modified >=trunc(sysdate)and table_name='LIS_TEST' and expression_text like '%TEST_NO%' and rownum=1
2 @ pr
==============================
EXPRESSION_TEXT : "TEST_NO"
DUMP(EXPRESSION_TEXT) : Typ=1 Len=10: 34,84,69,83,84,95,78,79,34,0
PL/SQL procedure successfully completed.
--//注意看實際上結尾存在\0字元.改寫如下就ok了.
SYS@192.168.100.235:1521/orcl> select * from SYS.DBA_EXPRESSION_STATISTICS where last_modified >=trunc(sysdate)and table_name='LIS_TEST' and expression_text = '"TEST_NO"'||chr(0)
2 @ pr
==============================
OWNER : LIS
TABLE_NAME : LIS_TEST
EXPRESSION_ID : 3602778108646932730
SNAPSHOT : LATEST
EVALUATION_COUNT : 13136741
FIXED_COST : .0000000268215720022949
DYNAMIC_COST :
EXPRESSION_TEXT : "TEST_NO"
CREATED : 2020-11-27 17:18:02
LAST_MODIFIED : 2022-11-23 10:38:37
==============================
OWNER : LIS
TABLE_NAME : LIS_TEST
EXPRESSION_ID : 3602778108646932730
SNAPSHOT : CUMULATIVE
EVALUATION_COUNT : 25595018601
FIXED_COST : .0000000268215720022949
DYNAMIC_COST :
EXPRESSION_TEXT : "TEST_NO"
CREATED : 2020-11-27 17:18:02
LAST_MODIFIED : 2022-11-23 10:38:37
PL/SQL procedure successfully completed.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2924692/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Postgresql中DDL的雙引號問題SQL
- 字串中包含單引號和雙引號怎麼處理字串
- 斷號查詢問題
- Oracle中的 單引號 和 雙引號Oracle
- Linux Shell 中的反引號,單引號,雙引號Linux
- Laravel同時接收路由引數和查詢字串中的引數Laravel路由字串
- Oracle中單引號和雙引號的區別Oracle
- PHP中單引號和雙引號的區別PHP
- [譯]JavaScript:將字串兩邊的雙引號轉換成單引號JavaScript字串
- linux bash中的引號:單雙引號、反撇號Linux
- shell 指令碼中雙引號、單引號、反引號的區別指令碼
- Python中 單引號,雙引號和三引號的區別Python
- 模板中的名字查詢問題
- mysql 如何查詢逗號“,”分割的字串MySql字串
- escape函式處理帶加號字串問題函式字串
- python中單引號,雙引號,多引號區別Python
- Oracle中單引號與雙引號的區別分析Oracle
- shell中單引號、雙引號、反引號、反斜槓的區別
- js字串中的三種引號JS字串
- PHP中對單引號和雙引號的區別(好文)PHP
- Golang的單引號、雙引號與反引號Golang
- ORACLE 單引號 雙引號Oracle
- JS中缺少分號可能引發的問題JS
- lua獲取字串中單引號之間的字串字串
- js中關於單引號和雙引號的一點用法JS
- asp.net中關於雙引號和單引號的用法ASP.NET
- latex的雙引號 ``'
- 關於 mysql 中的 rand () 查詢問題MySql
- HTTP 請求中 Token 引數帶引號導致後臺無法識別問題HTTP
- 第二章 :查詢與排序-------2.18題目講解_在有空字串中的有序字串陣列中查詢排序字串陣列
- oracle 裡的單引號與雙引號Oracle
- linux 單引號,雙引號,反引號Linux
- smarty 雙引號中嵌入變數的方法變數
- HTML 單引號與雙引號HTML
- 物件點查詢和中括號查詢的區別物件
- 如何在SpringBoot/Tomcat的URL查詢字串中的支援括號?Spring BootTomcat字串
- oracle查詢結果外面新增引號Oracle
- shell中定義變數用雙引號和單引號以及不用引號的區別變數