DBMS_LOB.CONVERTTOBLOB @ remote(....)を使用しようとしましたか
ただし、リモートCLOBのある種のチェックサムを取得して、元の外部ソースから挿入/更新されたときに文字セット変換を取得しているかどうかを確認することをお勧めします。つまり、挿入が行われたときにクライアントの文字セットがデータベースの文字セットと異なる場合は、選択を行う前に問題がすでに発生している可能性があります。
追加するために編集しました。
私が思いつくことができる最も近いものは、リンクのもう一方の端にいくつかのオブジェクトを必要とします。まず、リモートエンドで変換を行う関数。次に、データの「BLOB」ビューを表示するビュー。これはダミーテーブルを使用します(これは私が見つけた最初のCLOBであったためv $ sqlに基づいています)。CLOBをパラメーターとして関数に単純に渡すことができないことがわかる理由はありません。
create or replace function ret_blob return blob is
cursor c_1 is
select sql_fulltext, sql_id, length(sql_fulltext)
from v_sql
where sql_id = 'bzmb01whp36wt';
rec_c1 c_1%rowtype;
--
v_blob blob;
v_dest number := 1;
v_src number := 1;
v_lang number := 0;
v_warn number;
--
begin
open c_1;
fetch c_1 into rec_c1;
close c_1;
dbms_lob.createtemporary(v_blob, TRUE);
--
dbms_lob.CONVERTTOBLOB (v_blob, rec_c1.sql_fulltext, DBMS_LOB.LOBMAXSIZE,
v_dest, v_src, DBMS_LOB.DEFAULT_CSID, v_lang, v_warn);
--
dbms_output.put_line(':'||v_warn||'>'||length(v_blob));
--
return v_blob;
end;
/
create view rblob as select ret_blob from dual;
次に、ローカルデータベースから、
create table t as select ret_blob from rblob@remote