我想从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