我是oracle pl sql的新手。 有一个带有blob列的表(tableA),我想获取此列,使用utl_compress.lz_compress(blob_column)压缩它,然后使用过程将此列插入' tableB'中。 我尝试了一些方法来做到这一点,但我得到的不好的论点'错误。 非常感谢你。
编辑:我需要这样的事情
procedure myProcedure as
begin
FOR myrectype IN (SELECT * FROM tableA)
LOOP
insert into tableB(id,blob_column) values(myrectype.id,utl_compress.lz_compress(myrectype.blob_column));
END LOOP
end myProcedure;
例外:
29261. 00000 - "bad argument"
*Cause: A bad argument was passed to the PL/SQL API.
*Action: Check the arguments passed to the PL/SQL API and retry the call.
others exception with code : -29261
others exception with mssg : ORA-29261: bad argumen
答案 0 :(得分:0)
我解决了这个问题。需要先将utl_compress.lz_compress(myrectype.blob_column)存储在变量中。我将程序更改为:
procedure myProcedure as
v_blob_column blob;
begin
FOR myrectype IN (SELECT * FROM tableA)
LOOP
v_blob_column := utl_compress.lz_compress(myrectype.blob_column);
insert into tableB(id,blob_column) values(myrectype.id,v_blob_column);
END LOOP
end myProcedure;
由于