首页 > 解决方案 > PLSQL 检查变量是否仅包含 Char(10)s 而没有其他值

问题描述

您好我正在尝试比较两个 VARCHAR2 变量 - new_value, old_value. 我Replace()用来检查是否存在共同值并将它们从new_value. 问题出现在:

old value = Test 1
            Test 2

new_value = Test 1
            Test 2
            Char(10)

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

标签: oracleplsqloracle12c

解决方案


您可以使用该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>

推荐阅读