将未知格式转换为字符串Oracle sql

时间:2017-06-16 09:07:21

标签: sql oracle 4d-database

我有一个查询,我正在检查where COURSE_NUMBER子句

中的字符串
select * from CC cc inner join AB_COURSE_ENROLL ab on cc.DCID=ab.LOCAL_ID where cc.STUDENTID=34700 and cc.COURSE_NUMBER IN (TO_CHAR(FOD1050));

问题在于,如果我将FOD1050放在单引号中,则查询可以正常工作,但在我的项目中,我无法将FOD1050括在单引号或双引号中。有没有其他方法告诉编译器传入的值是否在字符串中? 我正在使用Oracle

1 个答案:

答案 0 :(得分:0)

如果您需要硬编码值,可以将其构建为单个字符的串联,由ASCII代码标识。

例如:

SQL> select chr(70) || chr(79) || chr(68) || chr(49) || chr(48) || chr(53) || chr(48) as str
  2  from dual;

STR
-------
FOD1050

要了解您需要的代码,DUMP可能很有用:

SQL> select dump('FOD1050') from dual;

DUMP('FOD1050')
----------------------------------
Typ=96 Len=7: 70,79,68,49,48,53,48