PLSQL检查变量是否只包含Char(10)s而不包含其他值



嗨,我正在尝试比较两个VARCHAR2变量——new_valueold_value。我使用Replace()来检查是否有公共值,并将它们从new_value中删除。问题出现在:

old value = Test 1
Test 2
new_value = Test 1
Test 2
Char(10)

在这种情况下,Replace()将删除除新行之外的所有值。我需要检查变量中是否只有换行符和/或空格。

您可以使用ASCII函数来获取替换后剩余数据的ASCII值,然后很容易地检查它是空格还是换行符,如下所示:

SQL> SELECT ASCII(REPLACE(N,O)) FROM
2  (SELECT
3      'Test 1
4       Test 2' AS O,
5      'Test 1
6       Test 2'
7       || CHR(10) AS N
8  FROM
9      DUAL);
ASCII(REPLACE(N,O))
-------------------
10 -- it means, it is new line
SQL>

最新更新