Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
912 views
in Technique[技术] by (71.8m points)

oracle11g - Reverse of ascii function in Oracle

When I do following query

select asciistr(first_name) from person where id = 1

the result contains '200D'.

So what is the reverse function of converting a '200D' to character, so I can find all names with that specific character.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You want UNISTR (and, maybe, CAST it to a VARCHAR2). If you have the table:

CREATE TABLE person ( first_name, id ) AS
SELECT 'A', 1 FROM DUAL UNION ALL
SELECT CAST( UNISTR( '200D' ) AS VARCHAR2(20) ), 1 FROM DUAL;

Then the output from your query:

select first_name,
       asciistr(first_name)
from   person
where  id = 1

Is:

FIRST_NAME | ASCIISTR(FIRST_NAME)
:--------- | :-------------------
A          | A                   
?          | 200D               

db<>fiddle here


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...