0

我可以像比较普通行一样比较两个 clob 列吗?

clob1<>clob2

我可以像上面那样做吗?或者我必须这样做:

dbms_lob.compare(lob_1 => lv_old_scope,
                             lob_2 => lv_new_scope) = '-1'
4

1 回答 1

1

您可以在 PL/SQL 上下文中使用等式/不等式运算符来比较 LOB,但不能在 SQL 上下文中使用。

PL/SQL

DECLARE
  v_clob1 CLOB;
  v_clob2 CLOB;
BEGIN
  v_clob1 := 'TEST';
  v_clob2 := 'TEST';

  IF v_clob1 = v_clob2 THEN
    dbms_output.put_line('Equal.');
  ELSE
    dbms_output.put_line('NOT equal.');
  END IF;
END;

输出:

平等的。

SQL

CREATE TABLE clob_test (
  col1 CLOB,
  col2 CLOB
);

SELECT *
  FROM clob_test
WHERE col1 = col2;

00932. 00000 -  "inconsistent datatypes: expected %s got %s"
*Cause:    
*Action:
Error at Line: 569 Column: 7
于 2013-10-28T08:33:03.217 回答