婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > oracle通過存儲過程上傳list保存功能

oracle通過存儲過程上傳list保存功能

熱門標簽:如何辦理400客服電話 地圖標注百度競價 西藏地圖標注改進點 外呼系統線路經常出問題嗎 安陽手機自動外呼系統原理是什么 外呼系統怎樣才能不封號 神行者百貨商場地圖標注 地圖標注什么軟件好用 地圖標注專員入駐

一、創建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, ListObject[]> objlist) throws Exception {
        ARRAY array=null;
        C3P0NativeJdbcExtractor cp30NativeJdbcExtractor = new C3P0NativeJdbcExtractor();
        OracleConnection connection = (OracleConnection) cp30NativeJdbcExtractor.getNativeConnection(con);
 
 
        if (objlist != null  objlist.size() > 0) {
            StructDescriptor structdesc = new StructDescriptor(OracleObj, connection);
            STRUCT[] structs = new STRUCT[objlist.size()];
            for (int i = 0; i  objlist.size(); i++) {
                Object[] result= (Object[]) objlist.get(i);
                structs[i] = new STRUCT(structdesc, connection, result);
            }
            ArrayDescriptor desc = ArrayDescriptor.createDescriptor(Oraclelist,connection);
            array = new ARRAY(desc, connection, structs);
        }
 
        return array;
    }
 
}
 ListObject[]> arrList = new ArrayList>();
        //解析數據datamap
        for (MapString, String> dataMap : dataMaps) {
            //創建保存對象
            Object[] objects =new Object[]{
 
                    dataMap.get("aac003"),
                    dataMap.get("aac002"),
                    dataMap.get("aat001").trim(),
                    dataMap.get("aat002"),
                    dataMap.get("aat013"),
                    'admin',
                    DateUtil.getCurrentTimeStr(),
                    'ec-20210510-wcdedgk2091',
 
            };
            arrList.add(objects);
 
        }
 
 
 
//開始調用過程
        long startTime=System.currentTimeMillis();
        Connection connection = null;
        CallableStatement sqlres = null;
        String sql = "call SP_HFSZHDA_DOUPLOADAL01(?,?)";
        String msg = "";
        try {
            connection = dataSource.getConnection();
            ARRAY paramArr = OracleUtil.getArray(connection,"AL01TYPE","AL01TYPELIST",arrList);
 
            sqlres = connection.prepareCall(sql);
            sqlres.setArray(1, paramArr);
            sqlres.registerOutParameter(2, Types.VARCHAR);
            sqlres.execute();
            msg = sqlres.getString(2);
 
            long endTime=System.currentTimeMillis()-startTime;
            System.out.println("上傳后獲取的返回參數為:"+msg+"||耗時:"+endTime/1000+"秒");
 
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            try {
                if (sqlres != null) {
                    sqlres.close();
                }
                if (connection != null) {
                    connection.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            if (!"ok".equals(msg)){
                throw new BusinessException("上傳失敗!"+msg);
            }
        }

到此這篇關于oracle通過存儲過程上傳list保存功能的文章就介紹到這了,更多相關oracle保存list內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • oracle 存儲過程返回 結果集 table形式的案例
  • 解決PL/SQL修改Oracle存儲過程編譯就卡死的問題
  • 關于Oracle存儲過程和調度器實現自動對數據庫過期數據清除的問題
  • Oracle如何批量將表中字段名全轉換為大寫(利用簡單存儲過程)
  • Spring boot調用Oracle存儲過程的兩種方式及完整代碼
  • oracle調試存儲過程的過程詳解
  • Oracle如何使用PL/SQL調試存儲過程
  • Oracle存儲過程案例詳解

標簽:衡水 酒泉 AXB 阜陽 張掖 萍鄉 貴港 雞西

巨人網絡通訊聲明:本文標題《oracle通過存儲過程上傳list保存功能》,本文關鍵詞  oracle,通過,存儲,過程,上傳,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《oracle通過存儲過程上傳list保存功能》相關的同類信息!
  • 本頁收集關于oracle通過存儲過程上傳list保存功能的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲精品在线网站| 91蜜桃视频在线| 久久国内精品自在自线400部| 亚洲五码中文字幕| 国产精品 欧美精品| 久久av资源站| 国产精品一区在线观看乱码 | 日韩高清不卡一区二区三区| 国产在线视频精品一区| 欧美综合一区二区三区| 欧美国产丝袜视频| 国内欧美视频一区二区| 欧美精品乱码久久久久久| 久久婷婷色综合| 在线观看av不卡| 国产精品久久久久aaaa樱花 | 欧美激情在线一区二区三区| 亚洲乱码国产乱码精品精小说| 欧美日韩免费在线视频| 欧美日韩视频在线观看一区二区三区 | 国产精品99久久久久久有的能看| 韩国欧美国产1区| 2021久久国产精品不只是精品| 天堂va蜜桃一区二区三区| 欧美日韩一区在线观看| 成人午夜视频网站| 国产伦理精品不卡| 欧洲另类一二三四区| 亚洲综合999| 福利91精品一区二区三区| 国产精品久久久久久久浪潮网站 | 老色鬼精品视频在线观看播放| 国产a区久久久| 国产精品一线二线三线| 老司机午夜精品99久久| 日本不卡中文字幕| 午夜精品久久久久| 一二三区精品福利视频| 夜夜揉揉日日人人青青一国产精品| 欧美国产精品v| 日韩理论片中文av| 精品视频资源站| 另类小说图片综合网| 亚洲高清在线视频| 视频一区二区国产| 日韩欧美亚洲国产另类| 91精品午夜视频| 丁香六月久久综合狠狠色| 国产在线不卡视频| 性感美女极品91精品| 亚洲国产精品一区二区久久| 国产亚洲精品aa午夜观看| 国产一区在线观看视频| 精品粉嫩aⅴ一区二区三区四区| 色www精品视频在线观看| 亚洲欧洲av在线| 久久伊人蜜桃av一区二区| 欧美视频一区二区三区四区| 成人小视频在线| 国产成人精品免费一区二区| 看片的网站亚洲| 亚洲成人精品一区二区| 欧美丝袜丝交足nylons图片| 成人污视频在线观看| 中文字幕不卡三区| 欧洲激情一区二区| 美女视频免费一区| 视频一区二区中文字幕| 婷婷久久综合九色综合伊人色| 欧美一区二区三区人| 欧美性受xxxx黑人xyx| 91福利精品第一导航| 免费观看一级特黄欧美大片| 久久久精品国产99久久精品芒果| xnxx国产精品| 中日韩av电影| 色美美综合视频| 欧洲一区二区三区在线| 国产福利一区在线观看| 一区二区在线看| 偷窥少妇高潮呻吟av久久免费| 亚洲一级二级在线| 蜜臀av性久久久久蜜臀aⅴ流畅| 美日韩一区二区三区| 国产在线不卡一卡二卡三卡四卡| 亚洲综合在线电影| 国产人成亚洲第一网站在线播放 | 亚洲综合一区二区精品导航| 亚洲免费观看在线视频| 日韩经典一区二区| 风流少妇一区二区| 色偷偷一区二区三区| 久久九九久久九九| 国产曰批免费观看久久久| 91精品福利在线一区二区三区| 午夜伊人狠狠久久| 欧美日韩在线亚洲一区蜜芽| 日韩一区二区精品在线观看| 午夜不卡在线视频| 亚洲国产精品二十页| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲品质自拍视频网站| 日本女优在线视频一区二区| 欧美日韩国产区一| 美腿丝袜在线亚洲一区| 欧美精品一区二区三区高清aⅴ | 日韩午夜激情免费电影| 日本一区二区免费在线| 一区二区三区四区中文字幕| 久99久精品视频免费观看| 日韩精品欧美成人高清一区二区| 亚洲伦在线观看| 成人一级黄色片| 一本色道久久综合亚洲精品按摩| 欧美videos大乳护士334| 亚洲一二三四区不卡| 日韩不卡在线观看日韩不卡视频| 成人少妇影院yyyy| 99国产精品久久久久| 久久久噜噜噜久久人人看| 蜜桃一区二区三区在线| 91.com视频| 久久99国产精品麻豆| 日韩欧美一区二区不卡| 天堂一区二区在线免费观看| 精品中文av资源站在线观看| 欧美日韩五月天| 日韩中文字幕麻豆| 91麻豆精品国产综合久久久久久| 青青草国产精品97视觉盛宴| 久久机这里只有精品| 69精品人人人人| 国产一区二区三区免费在线观看 | 欧美不卡123| 国产麻豆视频精品| 91免费国产视频网站| 亚洲欧美综合网| 欧美日韩一区视频| 国产乱人伦精品一区二区在线观看 | 亚洲一区二区中文在线| 欧美综合一区二区| 精品一区二区在线看| 亚洲国产精品av| 欧美无砖专区一中文字| 午夜久久久久久久久久一区二区| 久色婷婷小香蕉久久| 欧美性感一区二区三区| 99精品欧美一区二区三区小说| 亚洲欧洲综合另类| 亚洲欧美另类图片小说| 国产精品久久久一本精品 | 青娱乐精品视频| 麻豆国产精品一区二区三区| 手机精品视频在线观看| 精品国产电影一区二区| 日韩午夜三级在线| 色婷婷综合五月| 色噜噜夜夜夜综合网| 色综合天天综合网天天狠天天| 欧美综合欧美视频| 国产精品1024久久| 91玉足脚交白嫩脚丫在线播放| 另类的小说在线视频另类成人小视频在线| 久久精品男人的天堂| 欧美日韩一卡二卡| 成人免费视频一区| 欧美专区日韩专区| 精品欧美乱码久久久久久 | 成人av免费在线| 一本久久精品一区二区| 成人小视频在线| 亚洲妇女屁股眼交7| 欧美一区二区视频免费观看| 欧美精品xxxxbbbb| 91精品国产一区二区人妖| 在线一区二区观看| 69精品人人人人| 久久综合国产精品| 久久精品综合网| 欧美日韩一区成人| 欧美成人精品1314www| 亚洲日本韩国一区| 国产suv精品一区二区6| 欧美一区二区三级| 久久先锋资源网| 成人免费小视频| 日韩网站在线看片你懂的| 日韩欧美区一区二| 欧洲精品在线观看| 日韩免费性生活视频播放| 久久精品人人做人人爽人人| 亚洲国产经典视频| 在线成人免费视频| 精品三级av在线| 亚洲另类在线一区| 国产精品久久久久一区| 亚洲午夜久久久久久久久电影院 | 国产精品美女一区二区| 国产在线播放一区三区四| 亚洲6080在线|