最后检查varchar2硬币是否包含CHR(10)

时间:2018-10-01 08:07:17

标签: oracle plsql

我需要很多行的CSV。我需要检查是否每行末尾都有CHR(10)。 我尝试过:

IF (SUBSTR(line, -2) == CHR(10)) THEN
    DBMS_OUTPUT.PUT_LINE('THERE IS!');
END IF;

但是不起作用! 有任何想法吗? 谢谢

2 个答案:

答案 0 :(得分:4)

您必须使用-1,而不是-2作为substr的第二个参数: 这个例子很好用。

此外...等式比较是“ =”,而不是“ ==”。

declare
    test_string varchar2(100) := 'text ending with newiline'||chr(10);
begin
   IF (SUBSTR(test_string, -1) = CHR(10)) THEN
      DBMS_OUTPUT.PUT_LINE('THERE IS!');
   END IF;
end;

答案 1 :(得分:0)

一种选择是使用REGEXP_INSTR来具体检查最终字符:

IF (REGEXP_INSTR(line, CHR(10) || '$') > 0) THEN
    DBMS_OUTPUT.PUT_LINE('THERE IS!');
END IF;