Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
873 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 Answer

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...