Oracle Escape Characters:oracle 跳脱字符

旧时模样 提交于 2019-12-25 20:51:32

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

一、Oracle 对于查询中间的的一些特殊字符,如果让它按照字面上去解释而不是当作特殊字符呢


Oracle allows the assignment of special escape characters to tell Oracle that the character is interpreted literally.  Certain characters such as the underscore ?_? are not interpreted literally because they have special meaning within Oracle.

In the example below, we want to find all Oracle parameter that relate to I/O, so we are tempted to use the filter LIKE  ?%_io_%?.  Below we will select from the x$ksppi fixed table, filtering with the LIKE clause:

select ksppinm 
from x$ksppi 
where ksppinm like '%_io_%';


 

KSPPINM                                                                        

--------------------------------           

sessions                                                                        

license_max_sessions                                                           

license_sessions_warning                                                       

_session_idle_bit_latches                                                       

_enable_NUMA_optimization                                                      

java_soft_sessionspace_limit                                                   

java_max_sessionspace_size                                                     

_trace_options                                                                 

_io_slaves_disabled                                                            

dbwr_io_slaves                                                                 

_lgwr_io_slaves

As you can see above, we did not get the answer we expected.  The SQL displayed all values that contained ?io?, and not just those with an underscore.  To remedy this problem, Oracle SQL supports an ESCAPE clause to tell Oracle that the character is to be interpreted literally:

select ksppinm 
from x$ksppi 
where ksppinm like '%\_io\_%' ESCAPE '\';


 

KSPPINM                                                                        

--------------------------------------           

_io_slaves_disabled                                                            

dbwr_io_slaves                                                                 

_lgwr_io_slaves                                                                

_arch_io_slaves                                                                

_backup_disk_io_slaves                                                         

backup_tape_io_slaves                                                          

_backup_io_pool_size                                                            

_db_file_direct_io_count                                                       

_log_io_size                                                                   

fast_start_io_target                                                            

_hash_multiblock_io_count                                                      

_smm_auto_min_io_size                                                          

_smm_auto_max_io_size                                                           

_ldr_io_size 

 


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!