oracle数据库中表字段类型有Long型怎么备份

时间:2021-09-27 03:59:02
   我现在要备份数据库表里的一个表,可是这个表里有个字段是Long的,我按原始的那种命令备份出来之后,这个字段里的值全是空的,我怎么才能将我这个表里的所有信息都备份出来?Long的这个字段是个很长的sql拼装起来的,怎么能完成的把这个表备份出来? 
   我现在在另一台机子上想建造一个和上面那个表一样的表,怎么才能备份出上面那个表来?还请高手指点,谢谢!

20 个解决方案

#1


你用的什么命令备份?exp可以导出long类型

#2


我按原始的那种命令备份出来之后,这个字段里的值全是空的 

你是如何备的,又是如何看的。

#3


9i以及以前的版本解决不了这个问题,10G可以用expdb这个工具

pl/sql develeper这个工具自带的导出导入工具可以备份这个数据

#4


exp是可以导出long的,不过由于long的限制诸多,所以导出导入的时候会出现一些错误,

把你的错误贴出来看看,或者把你的buffer设置的大一些试试。

#5


我是用exp导出的,是Oracle 9数据库,由于是远程操作,不能使用pl/sql develeper工具,只好用命令操作,我用的就是exp username/password,导出数据的时候不报错,等我导完之后远程ftp到我本地导入我本地库的时候,这个表里的值就是空的了。

#6


如果备份时候是备份到数据库服务器上,Long数据时可以备份出来的,有可能是俩个数据库版本不一致的问题。

#7


可是数据库里其他字段都是可以备份的,唯独就这一个字段是不行的,是不是我规定这个字段的太小了导致的?那个buffer应该设置多大?默认的不是4096吗?我那个表里一共有200多条记录,370多M,几乎每个记录都是这个Long占大小。

#8


是不是低版本导出 导入到高版本了?

#9


是的,远程数据库是9,我本地库是10,不过所有的都能导,就这一个导不过,好像在本地用plsql也是导不了的,当初本地的库就是那边的人导过来带回来的,唯独这张表导不了就没导,到底是什么原因呢?

#10


如果源表字段是Long类型,目的表字段应为Clob类型。
如果源表字段是LongRaw类型,目的表字段应为Blob类型。
二者通过To_Lob函数转换。

#11


你好,可以再说的详细一点吗?你的意思是我本地库里的这个表还得我自己创建,而把Long类型的那个字段设置成Clob类型?可是我远程库里的数据还是备份不出来呀,Long类型的那个字段怎么备份他才能有数据?

#12


如果源表字段是Long类型,目的表(新建的表,表结构和源表相同,用Clob类型字段对应源表Long类型字段)字段应为Clob类型。
如果源表字段是LongRaw类型,目的表((新建的表,表结构和源表相同,用Blob类型字段对应源表LongRaw类型字段))字段应为Blob类型。
二者通过To_Lob函数转换。
我说的表之间备份。insert A1,B1 TableName --TableName 为新建的表。
               select A,to_lob(B) from TableName0--TableName0为源表

#13


可以考虑写个简单的Job。

#14


可以考虑把long去掉。改为其它数据类型。我最讨厌这个字段了。。

#15


可能是版本的问题

#16


是不是ftp传输造成的,你传输之前用md5加密,传输后再解密看看是否文件损坏了

#17


我备份之后的那个文件里就没有这个Long字段的值,ftp下载之后的文件和远程服务器上的文件是一样大小的。

#18


把这个表的值拷出来,手动导进去吧

#19


谢谢大家,不过我今天看的时候发现我的这个字段竟然导进来了,呵呵。现在这个表已经导到我本地了。

#20


请问楼主到底是怎么回事?

#1


你用的什么命令备份?exp可以导出long类型

#2


我按原始的那种命令备份出来之后,这个字段里的值全是空的 

你是如何备的,又是如何看的。

#3


9i以及以前的版本解决不了这个问题,10G可以用expdb这个工具

pl/sql develeper这个工具自带的导出导入工具可以备份这个数据

#4


exp是可以导出long的,不过由于long的限制诸多,所以导出导入的时候会出现一些错误,

把你的错误贴出来看看,或者把你的buffer设置的大一些试试。

#5


我是用exp导出的,是Oracle 9数据库,由于是远程操作,不能使用pl/sql develeper工具,只好用命令操作,我用的就是exp username/password,导出数据的时候不报错,等我导完之后远程ftp到我本地导入我本地库的时候,这个表里的值就是空的了。

#6


如果备份时候是备份到数据库服务器上,Long数据时可以备份出来的,有可能是俩个数据库版本不一致的问题。

#7


可是数据库里其他字段都是可以备份的,唯独就这一个字段是不行的,是不是我规定这个字段的太小了导致的?那个buffer应该设置多大?默认的不是4096吗?我那个表里一共有200多条记录,370多M,几乎每个记录都是这个Long占大小。

#8


是不是低版本导出 导入到高版本了?

#9


是的,远程数据库是9,我本地库是10,不过所有的都能导,就这一个导不过,好像在本地用plsql也是导不了的,当初本地的库就是那边的人导过来带回来的,唯独这张表导不了就没导,到底是什么原因呢?

#10


如果源表字段是Long类型,目的表字段应为Clob类型。
如果源表字段是LongRaw类型,目的表字段应为Blob类型。
二者通过To_Lob函数转换。

#11


你好,可以再说的详细一点吗?你的意思是我本地库里的这个表还得我自己创建,而把Long类型的那个字段设置成Clob类型?可是我远程库里的数据还是备份不出来呀,Long类型的那个字段怎么备份他才能有数据?

#12


如果源表字段是Long类型,目的表(新建的表,表结构和源表相同,用Clob类型字段对应源表Long类型字段)字段应为Clob类型。
如果源表字段是LongRaw类型,目的表((新建的表,表结构和源表相同,用Blob类型字段对应源表LongRaw类型字段))字段应为Blob类型。
二者通过To_Lob函数转换。
我说的表之间备份。insert A1,B1 TableName --TableName 为新建的表。
               select A,to_lob(B) from TableName0--TableName0为源表

#13


可以考虑写个简单的Job。

#14


可以考虑把long去掉。改为其它数据类型。我最讨厌这个字段了。。

#15


可能是版本的问题

#16


是不是ftp传输造成的,你传输之前用md5加密,传输后再解密看看是否文件损坏了

#17


我备份之后的那个文件里就没有这个Long字段的值,ftp下载之后的文件和远程服务器上的文件是一样大小的。

#18


把这个表的值拷出来,手动导进去吧

#19


谢谢大家,不过我今天看的时候发现我的这个字段竟然导进来了,呵呵。现在这个表已经导到我本地了。

#20


请问楼主到底是怎么回事?

#21