2013-10-28 9 views
0

Можно сравнить два столбца clob как сравнение обычных строк?Сравнивая два поля clob

clob1<>clob2 

Могу ли я сделать, как выше? или я сделать так:

dbms_lob.compare(lob_1 => lv_old_scope, 
          lob_2 => lv_new_scope) = '-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; 

Выход:

Equal.

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 
Смежные вопросы