有没有办法在 Oracle 10g 中的数据库之间复制 BLOB 记录?
我们有一个生产表,其中有数百万行并包含 BLOB 字段,我想将这些记录中的一小部分复制到我们的开发数据库中,如果可能的话,无需 DBA 参与。我尝试了以下 COPY 命令,但收到CPY-0012:无法复制数据类型
COPY FROM user/password@prod_db TO user/password@dev_db -
INSERT TABLE_A (COL1, COL2, COL3, BLOB_COL) USING -
SELECT COL1, COL2, COL3, BLOB_COL -
FROM TABLE_A WHERE COL1='KEY'
有没有办法通过 SQL 在数据库之间复制带有 BLOB 字段的记录?
We have a production table that has millions of rows in it and contains a BLOB field, I would like to copy a smaller selection of these records into our development database without getting a DBA involved if possible. I tried the following COPY command but received a CPY-0012: Datatype cannot be copied
COPY FROM user/password@prod_db TO user/password@dev_db -
INSERT TABLE_A (COL1, COL2, COL3, BLOB_COL) USING -
SELECT COL1, COL2, COL3, BLOB_COL -
FROM TABLE_A WHERE COL1='KEY'
Is there a way to copy records with a BLOB field between databases via SQL?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
遗憾的是,您无法使用 COPY 命令复制 BLOB 值。
另一种方法是在源数据库上设置数据库链接,然后执行 SQL INSERT 语句:
Unfortunately you cannot copy
BLOB
values using theCOPY
command.An alternative is to set up a DB link on the source database, and execute a
SQL INSERT
statement:Oracle 的数据泵(从 10g+ 开始) 支持移动 BLOB 数据。
Oracle's Data Pump (started 10g+) supports moving BLOB data.
我想出了一个我喜欢的解决方案——这个版本对 CLOB 有 4000 个字符的限制。
1)在复制到数据库上:
2)然后运行复制命令
3)在复制到数据库上:
4)然后删除tmp表
我一直在努力解决这个限制,这个解决方案对我帮助很大。
I came up with a solution I like--this version has a 4000 character limitation on the CLOB.
1) on the COPY TO database:
2) then run the copy command
3) on the COPY TO database:
4) then drop the tmp table
I had been struggling with this limitation, and this solution has helped me alot.