您现在的位置是:网站首页> 编程资料编程资料
oracle通过存储过程上传list保存功能_oracle_
2023-05-27
449人已围观
简介 oracle通过存储过程上传list保存功能_oracle_
一、创建oracle 需要保存的数据类型type和存储过程produce
create TYPE "AL01TYPE" as object ( -- 描述 : 档案批量转出 -- 作者 : dt -- 时间 : 2021-05-10 -- 版本 :dev-1.0.1 aac003 NVARCHAR2(100), aac002 NVARCHAR2(50), aat001 NVARCHAR2(50), aat002 NVARCHAR2(50), aat013 NVARCHAR2(20), aae011 NVARCHAR2(20), aae036 NVARCHAR2(20), aah002 NVARCHAR2(100) ); create type AL01TYPELIST as table of AL01TYPE; -- auto-generated definition create PROCEDURE SP_HFSZHDA_DOUPLOADAL01(LIST IN AL01TYPELIST, po_message OUT VARCHAR) IS --描述:档案转出excel上传 --作者:dt --时间:2021-05-10 --版本:dev-1.0.1 v_object AL01TYPE; le_error EXCEPTION; P_renum number(20); v_aah002 VARCHAR(100); ls_count number; ls_aaf025 VARCHAR(50); BEGIN P_renum := 0; --初始化 FOR I IN 1 .. LIST.count LOOP P_renum := 1 + P_renum; v_object := LIST(I); select replace(utl_raw.cast_to_varchar2(utl_raw.cast_to_raw(v_object.aah002)),unistr('\0000')) into v_aah002 from dual; begin Select count(0) into ls_count from az03 where aat001 = v_object.aat001 AND aat012 = '1'; if ls_count=0 then po_message := '号:'||v_object.aat001||' 状态异常请核对后再上传!'; RAISE le_error; end if; Select count(0) into ls_count From AL01 where aaj022='1' and aat001=v_object.aat001 and aah002=v_aah002; if ls_count =0 then -- 开始插入信息 select SQ_AAF025.nextval into ls_aaf025 from dual; insert into AL01( aaf025, aat012, aat001, aac003, aac002, aat002, aat013, aaj022, aaj026, aae011, aae036, aah002)values( ls_aaf025, '1', v_object.aat001, v_object.aac003 , v_object.aac002 , v_object.aat002 , v_object.aat013, '1', 'excel上传数据', v_object.aae011, v_object.aae036, v_aah002 ); end if; IF P_renum >1000 THEN commit; P_renum:=0; END IF; po_message :='ok'; EXCEPTION WHEN le_error THEN NULL; WHEN OTHERS THEN ROLLBACK; po_message := '上传失败' || SQLCODE || SQLERRM; end; END LOOP; COMMIT; END SP_HFSZHDA_DOUPLOADAL01;二、通过过程上传list
package com.cominfo.elecfile.utils; import oracle.jdbc.OracleConnection; import oracle.sql.ARRAY; import oracle.sql.ArrayDescriptor; import oracle.sql.STRUCT; import oracle.sql.StructDescriptor; import org.springframework.jdbc.support.nativejdbc.C3P0NativeJdbcExtractor; import java.sql.Connection; import java.util.List; /** * 描述 * * @Auther: dt * @Date: 2021/5/10 0027 09:00 */ public class OracleUtil { /** * 根据数据库中你的type将List组装成Array * @param con * @param OracleObj * @param Oraclelist * @param objlist * @return * @throws Exception */ public static ARRAY getArray(Connection con, String OracleObj, String Oraclelist, ListList
到此这篇关于oracle通过存储过程上传list保存功能的文章就介绍到这了,更多相关oracle保存list内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
您可能感兴趣的文章:
相关内容
- oracle基础语法详解_oracle_
- 使用springboot暴露oracle数据接口的问题_oracle_
- mybatis使用oracle进行添加数据的方法_oracle_
- Oracle设置DB、监听和EM开机启动的方法_oracle_
- oracle表分区的概念及操作_oracle_
- SQL PLUS基本命令的使用方法示例_oracle_
- ORACLE数据库对long类型字段进行模糊匹配的解决思路_oracle_
- 解决plsql因事务未提交造成的锁表问题_oracle_
- oracle中commit之后进行数据回滚的方法_oracle_
- Oracle进阶DECODE函数使用详解_oracle_
