我在Oracle中有一个ETL,它转换数据并将数据与INSERT一起发送到DB2数据库中。对于行数较少的表来说,没有问题,但对于有400000行的两个表来说,有问题。
>
插入操作非常慢,平均每秒50/60行。我怀疑在DB2中,每行都有自动提交。
当最后一个循环结束时,该过程将无限期地继续执行。如果终止执行,所有行都会正确写入DB2 DB。然后,如果我尝试从oracle中选择Db2,SQL Dev it会告诉我连接已关闭。
我为我的英语感到抱歉,我希望你能帮助我。
DECLARE
V_MIN NUMBER := 1;
V_MAX NUMBER := 40000;
....
BEGIN
BEGIN
DELETE FROM DB2C.TABLE_DEST@RELMANAG;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line(sqlerrm);
END;
SELECT COUNT(*)
INTO V_CONT_ORCL_FS
FROM TABLE_ORIGIN;
WHILE V_MIN <= v_cont_orcl_fs LOOP
FOR I IN
(query_Cursor on TABLE_ORIGIN )
LOOP
insert into ....
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
DBMS_OUTPUT.PUT_LINE(SQLERRM);
END;
END LOOP; --FOR
V_MIN := V_MAX + 1;
V_MAX := V_MAX + 40000;
END LOOP; --WHILE
COMMIT;
END;
我可以尝试在SQL*PLUS上复制但不起作用
如果您想在DB2数据库中插入大量行,您可以使用load命令。
此命令将CSV文件中的数据加载到数据库中,这正是您在这种情况下所需要的。但是,您需要先从Oracle数据库中以适当的格式导出数据。
问题内容: 我要从Oracle数据库加载约1亿行并将其插入远程MySQL数据库服务器中,这是一个新挑战。 我将问题分为两部分: 服务器端REST服务器,负责将数据加载到MySQL服务器; 负责加载Oracle数据源的客户端Java应用程序。 在Java方面,我使用了普通的JDBC来加载分页内容并将其通过导线传输到服务器。这种方法效果很好,但是由于我自己使用Oracle的ROWNUM ..... W
很好的一天, 我想更改一些程序代码(主要是SQL代码),因为数据库已经从DB2更改为Oracle。 这里有一个例子,我成功地改变了,但我不是真的了解它,我无法从谷歌找到它。 以下是原始SQL查询代码(使用DB2): 以下是我编辑后的SQL查询代码(成功从Oracle获取数据): 当我分析时,如果我没有将rownum更改为rownum1,我会得到错误,错误是ORA-00923:FROM关键字未在预期
我使用flyway进行部署,并且由于flyway而构建的表都很好。我遇到的问题是schema_version表。无法查询表中的单个列。我只能执行select*。我得到的错误消息是: 10:35:49[选择-0行,0.000秒]1)[错误代码:-206,SQL状态:42703]DB2 SQL错误:SQLCode=-206,SQLState=42703,SQLERRMC=Script,Driver=4
问题内容: 我在使用DB2时遇到问题。我刚刚将db2安装为db2admin并使用了密码。当我尝试连接到数据库时,它已成功完成,并且在运行任何简单的选择查询时,都会出现以下错误:- DB2 SQL错误:SQLCODE = -204,SQLSTATE = 42704,SQLERRMC = DB2ADMIN.LOGIN,DRIVER = 3.57.82 我有一个名为onp的数据库,其中有一个名为“ lo
我对这两种数据类型非常着迷。根据Oracle文档,它们如下所示: BLOB:长度可变的二进制大对象字符串,最长可达2GB(2,147,483,647)长。主要用于保存非传统数据,如语音或混合媒体。BLOB字符串不与字符集相关联,就像FOR BIT数据字符串一样。 CLOB:可变长字符的大型对象字符串,最长可达2GB(2,147,483,647)长。CLOB可以存储单字节字符串或基于字符的多字节数据
我是Talendel的新手,正在使用Talend Open Studio for Big Data V6.2。 我开发了一个简单的Talend ETL作业,它从tFileInputExcel和tOracleInput(维度日期)中获取数据并将数据插入我的本地Oracle数据库。 以下是我的包裹外观: 此作业运行,但我得到0行插入到我的本地Oracle数据库