1、数组 作为oracle存储过程参数的 实践今天做了一个关于短消息批量删除的功能, 刚开始准备在后台用循环来逐条删除,后来因为其它功能模块也会用到大批量删除数据。 所以就决定用 数组作为存储过程的参数进行传值,在存储过程中批量删除。说实话这个选择有点得不偿失,本来以为上午就能搞定,谁知道从摸索到实现,居然发了大半天时间。 rem删除选中短信息CREATEORREPLACEPACKAGEMSGPAG AS TYPEMSG_ARRAYISTABLEOFVARCHAR2(20)INDEXBYBINARY_INTEGER;--先定义包,这个就相当于一个数组PR
2、OCEDUREDELMSG(M_ARRAYINMSG_ARRAY);ENDMSGPAG;/CREATEORREPLACEPACKAGEBODYMSGPAG AS PROCEDUREDELMSG(M_ARRAYINMSG_ARRAY) AS INUMBER:=1;--这个可以不写BEGIN SAVEPOINTSP1; FOR IIN1..M_ARRAY.COUNTLOOP DELETEFROMT_MESSAGEWHEREFID=TO_NUMBER(M_ARRAY(I)); ENDLOOP;COMMIT;EXCEPTION WHE