X
xiaoli1740
Unregistered / Unconfirmed
GUEST, unregistred user!
如题,问题是这样的:
目前有一个表:CREATE TABLE BOOKFILE (id NUMBER, FILEDATA LONG RAW);
BOOKFILE 表中存有LONG RAW字段类型的文件,文件大小不定;表中记录数也不定;
我需要重新创建一个新表BOOKFILE2;要求BOOKFILE2中的结构、数据和BOOKFILE保持一致;
现在遇到的问题是不知道怎么把数据拷贝过来BOOKFILE2表中了?要求完全用sql脚本实现,请各位大虾指点一下,感谢!
说下我的拷贝数据的pl/sql:
Declare
CURSOR S_cur IS SELECT * from BOOKFILE;
S_rec S_cur%ROWTYPE; --这里直接定义为long raw也是一样的错误,没辙了~:(
BEGIN
insert into BOOKFILE2(ID ,FILEDATA ) select ID, null from BOOKFILE;
OPEN S_cur;
LOOP
FETCH S_cur INTO S_rec; --不知何故,总是在这里报错:ORA-06502: PL/SQL: 数字或值错误
EXIT WHEN S_cur%NOTFOUND;
update BOOKFILE2 set FILEDATA=S_rec.FILEDATA where id=S_rec.id;
END LOOP;
CLOSE S_cur;
END;
/
初步发现是因为文件太大的缘故,小文件可以处理,但怎么解决大文件的问题呢?
目前有一个表:CREATE TABLE BOOKFILE (id NUMBER, FILEDATA LONG RAW);
BOOKFILE 表中存有LONG RAW字段类型的文件,文件大小不定;表中记录数也不定;
我需要重新创建一个新表BOOKFILE2;要求BOOKFILE2中的结构、数据和BOOKFILE保持一致;
现在遇到的问题是不知道怎么把数据拷贝过来BOOKFILE2表中了?要求完全用sql脚本实现,请各位大虾指点一下,感谢!
说下我的拷贝数据的pl/sql:
Declare
CURSOR S_cur IS SELECT * from BOOKFILE;
S_rec S_cur%ROWTYPE; --这里直接定义为long raw也是一样的错误,没辙了~:(
BEGIN
insert into BOOKFILE2(ID ,FILEDATA ) select ID, null from BOOKFILE;
OPEN S_cur;
LOOP
FETCH S_cur INTO S_rec; --不知何故,总是在这里报错:ORA-06502: PL/SQL: 数字或值错误
EXIT WHEN S_cur%NOTFOUND;
update BOOKFILE2 set FILEDATA=S_rec.FILEDATA where id=S_rec.id;
END LOOP;
CLOSE S_cur;
END;
/
初步发现是因为文件太大的缘故,小文件可以处理,但怎么解决大文件的问题呢?