Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 如何将BLOB作为SQL插入从表中导出数据_Oracle_Plsql_Export_Blob_Plsqldeveloper - Fatal编程技术网

Oracle 如何将BLOB作为SQL插入从表中导出数据

Oracle 如何将BLOB作为SQL插入从表中导出数据,oracle,plsql,export,blob,plsqldeveloper,Oracle,Plsql,Export,Blob,Plsqldeveloper,我需要从一个模式导出数据并将其导入另一个模式。但是在第二个模式中有不同名称、不同属性名称等的表,但这些表适用于第一个模式中的数据。因此,我将数据导出为SQL插入,并在此插入中手动重写名称等 我的问题是表的列类型为BLOB。PL/SQL开发人员抛出错误: 但是,当我使用PL/sqldeveloper格式(.pde)时,它是某种原始字节数据,我无法更改我需要的内容 是否有任何解决方案来管理此问题 注意:我使用的是PL/sqldeveloper10.0.5.1710和oracledatabase12c

我需要从一个模式导出数据并将其导入另一个模式。但是在第二个模式中有不同名称、不同属性名称等的表,但这些表适用于第一个模式中的数据。因此,我将数据导出为SQL插入,并在此插入中手动重写名称等

我的问题是表的列类型为BLOB。PL/SQL开发人员抛出错误:

但是,当我使用PL/sqldeveloper格式(
.pde
)时,它是某种原始字节数据,我无法更改我需要的内容

是否有任何解决方案来管理此问题


注意:我使用的是
PL/sqldeveloper10.0.5.1710
oracledatabase12c

您不能有超过32k的文本值(因为您在此之前使用的是12c;4k),因此如果您的blob大于32k,您就不能有一个简单的
insert
(即使使用较小的值处理原始数据,也很混乱)。如果架构在同一个数据库中,为什么不设置权限以允许在它们之间插入一个简单的
insert…select
?@AlexPoole我知道设置权限是什么意思。这是令人悲伤的,但它是一些疯狂的想法,有人在我之上。我只需要做这项工作:(你提到当我有小于32k的BLOB时,我可以做
insert
。如何处理?有没有处理原始数据的指南(我知道这很疯狂,但无论如何我很好奇,而且我还必须用某种方式:D)取决于LOB中的内容。如果是字符串,您可以尝试
dbms\u LOB.substr
,并将其转换为文本和文本;但限制为32K。最后,我只是迁移了数据,而无需导出,只需使用
INSERT-INTO-table\u-Name\u-to-T(T.column1,T.column2,…)直接从一个表导入到另一个表即可从S;
的表_Name_中选择S.column1,S.column2,…。这不是我的问题的答案,因为它不是导出,但它对我来说是解决方案,因为数据被迁移了。你不能有任何超过32k的文字值(因为在此之前你在12c;4k),所以如果你有大于32k的blob,你就不能有一个简单的
插入
(即使使用较小的值处理这样的原始数据也会很混乱)。如果架构在同一个数据库中,为什么不设置权限以允许在它们之间插入一个简单的
…选择
?@AlexPoole我知道你设置权限的意思。这很遗憾,但这是我之上的某个人的疯狂想法。我只需要做以下工作:(您提到,当我有小于32k的BLOB时,我可以执行
insert
。如何执行?是否有任何指导来处理原始数据(我知道这很疯狂,但无论如何我很好奇,而且我必须以某种方式执行:D)取决于LOB中的内容。如果是字符串,您可以尝试
dbms\u LOB.substr
,并将其转换为文本和文本;但限制为32K。最后,我只是迁移了数据,而无需导出,只需使用
INSERT-INTO-table\u-Name\u-to-T(T.column1,T.column2,…)直接从一个表导入到另一个表即可从表_Name_FROM S;
中选择S.column1,S.column2,…。它不是我问题的答案,因为它不是导出,但它是我的解决方案,因为数据已迁移。
Table MySchema.ENT_NOTIFICATIONS contains one or more BLOB columns.
Cannot export in SQL format, use PL/SQL Developer format instead.