我需要很多行的CSV。我需要检查是否每行末尾都有CHR(10)。 我尝试过:
IF (SUBSTR(line, -2) == CHR(10)) THEN
DBMS_OUTPUT.PUT_LINE('THERE IS!');
END IF;
但是不起作用! 有任何想法吗? 谢谢
答案 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;