我是oracle的新手,对Oracle的Instr功能感到困惑。
我在clob文本中搜索特殊的特殊字符形成(不是正则表达式)。
例如POS := INSTR(L_STR_DATA, '|^|', 1, 1);
,但结果给了我' |'在文本中而不是' | ^ |',
然后我尝试用以下示例测试Instr函数。
SELECT SYSDATE, INSTR(TO_CHAR(SYSDATE), ':', 1, 1) FROM DUAL;
,结果为0。 任何人都可以解释.....
答案 0 :(得分:0)
来自docs:
无论position的值如何,返回值都相对于string的开头,并以字符表示。 如果搜索不成功(如果子字符串未出现在字符串的位置字符之后的出现次数),则返回值为0. [Emphasis mine]
没有":"字符串表示日期的字符。
编辑:因此,您的问题并不是Oracle的INSTR,实际上您的日期的默认字符代表是{ {1}}没有显示时间 - 只显示日期。 Here's对Oracle日期格式的引用。
答案 1 :(得分:0)
SELECT TO_CHAR(SYSDATE,'DD-MON-YYYY HH24:MI:SS',
INSTR(TO_CHAR(SYSDATE,'DD-MON-YYYY HH24:MI:SS'),':',1,1)
FROM DUAL
您的TO_CHAR()
日期应具有一致结果的格式,因为NLS_DATE_FORMAT
(默认日期格式)在所有会话中可能不相同。