我想從sql server上的varchar2(8000)文本字段插入數據。我在oracle數據庫上創建了一個類似的列,但是clob數據類型。你能幫我解決不一致的數據類型問題並提高查詢的性能嗎? 請讓我知道是否有其他更好的方法來插入多行的大文本文件。當我在sql server和oracle db上運行相同的查詢(即從TBL_NOTES @ PPRLEG選擇「註釋」)時,結果會很快被檢索到。當我嘗試插入數據時,需要花費很多時間並且不會結束。我應該只在這裏給出包含clobs的列,並且它應該處理剩下的部分。通過數據庫鏈接在Oracle數據庫中插入CLOB數據類型
CREATE OR REPLACE FUNCTION get_clob_data
(id in TBL_NOTES.id%TYPE,
REPORT_ID in TBL_NOTES.REPORT_ID%type,
UNIQUE_ID in TBL_NOTES.UNIQUE_ID%type,
USER_ID in TBL_NOTES.USER_ID%type,
DTS in TBL_NOTES.USERROLE%type,
USEREIN in TBL_NOTES.USERROLE%type
)
RETURN varchar2
IS
l_text varchar2(4000);
Type t_note_txt IS TABLE OF TBL_NOTES.NOTE%type;
v_notes t_note_txt;
BEGIN
SELECT ltrim(rtrim("NOTE"))NOTE
bulk collect into v_notes
FROM [email protected];
for indx in 1..v_notes.count
loop
l_text := l_text || ' ' ||v_notes(indx);
end loop;
RETURN l_text;
END;
/
afaik sql server沒有varchar2數據類型。你爲什麼在這裏使用一個函數?這個功能如何工作,你將輸出限制爲4000個字符,但選擇整個遠程表?如果你想提供更多的細節,幫助會更容易。遠程表的定義,行數,你試圖完成什麼。 –
我們正在嘗試將sql server數據2008 R2遷移到Oracle 11 g數據庫。我們試圖使用dblink插入行(count-379012),但是在sql server上有大文本的字段,它有一個性能問題。我們爲一個這樣的表創建了CLOB數據類型(TBL_NOTES),並且我們試圖執行批量收集這裏的操作.SQL服務器上的字段「Note」是文本數據類型,Oracle端的字段是CLOB數據類型。我對這種遷移非常陌生,因此尋找對此的修復。請注意,我們有非常大的文本文件和多個clob數據類型。 – user3296391
TBL_NOTES - 注 - sql服務器上的文本數據類型。 TBL_NOTES-注意 - Oracle379012上的CLOB數據類型是sql server中的行數。定義遠程表 - ID-int,REPORT_ID- int,UNIQUE_ID- varchar,user_id -int,NOTE-text,DTS-datetime, SalesNote-text,userrole-varchar,userein-varchar – user3296391