あなたは一時的にローカル・インスタンスへのCLOBの上に引っ張ってOracleのグローバル一時表を使用することができます。次に、DBMS_LOB.COMPAREファンクションを使用してCLOB列を比較できます。
この問合せで行が戻された場合、CLOBは異なる(多少の文字数、改行など)か、行の1つがインスタンスの1つのみに存在します。
--Create temporary table to store the text in
CREATE GLOBAL TEMPORARY TABLE X.TEMP_TEXT_TABLE
ON COMMIT DELETE ROWS
AS
SELECT * FROM [email protected]_DB;
--Use this statement if you need to refresh the TEMP_TEXT_TABLE table
INSERT INTO X.TEMP_TEXT_TABLE
SELECT * FROM [email protected]_DB;
--Do the comparision
SELECT DISTINCT
TARGET.NAME TARGET_NAME
,SOURCE.NAME SOURCE_NAME
,DBMS_LOB.COMPARE (TARGET.TEXT, SOURCE.TEXT) AS COMPARISON
FROM (SELECT ID, NAME, TEXT FROM X.TEMP_TEXT_TABLE) TARGET
FULL OUTER JOIN
(SELECT ID, NAME, TEXT FROM X.TEXT_TABLE) SOURCE
ON TARGET.ID = SOURCE.ID
WHERE DBMS_LOB.COMPARE (TARGET.TEXT, SOURCE.TEXT) <> 0
OR DBMS_LOB.COMPARE (TARGETTEXT, SOURCE.TEXT) IS NULL;
私はDMBS_SQLHASHパッケージでEXECUTEが許可されていませんが、効率性については賞賛されています! – JordanBean