此处给出例子,具体根据业务需求


create or replace procedure P_CART_Sheet1(p_id in NUMBER) is
--车辆管理功能
v_str varchar2(4000);
v_building_id number;
begin
--获取 building_id
select t.expandtype into v_str from t_excel_import_datasrc t where t.id = p_id;
v_building_id := to_number(v_str);

--跨库查询注意授权: eg:grant select on t_bas_datadict to estate ,否则编译不通过
-- 查找并更新单元名称不存在的数据 --单元名称与单元id关联关系
update t_excel_import_generation t
set t.errormsg = '单元名称不存在'
where t.businessid = p_id and t.businesstype = 'CART_Sheet1' and t.errormsg is null
and t.cell1 not in (
SELECT U.NAME UNIT_NAME
FROM BAS_CART T
RIGHT JOIN BAS_BUILDING_UNIT U ON T.UNIT_ID=U.UNIT_ID
WHERE 1 = 1
AND U.STATE = '1' AND U.BUILDING_ID = v_building_id
);
commit;
--将单元名称更新为单元id
update t_excel_import_generation t
set t.cell1 = (
select distinct k.unit_id from (
SELECT U.NAME UNIT_NAME,U.Unit_Id
FROM BAS_CART T
RIGHT JOIN BAS_BUILDING_UNIT U ON T.UNIT_ID=U.UNIT_ID
WHERE 1 = 1 AND U.STATE = '1' AND U.BUILDING_ID = v_building_id
) k where k.unit_name = t.cell1
)
where t.businessid = p_id and t.businesstype = 'CART_Sheet1' and t.errormsg is null;
commit;

MERGE INTO BAS_CART t
USING (
select to_number(Cell1) Cell1,Cell2,Cell3,Cell4,Cell5,Cell6,Cell7
from t_excel_import_generation t
where t.errormsg is null and t.businesstype = 'CART_Sheet1' and t.businessid = p_id
) k
ON (t.lic_plate_no = k.cell2 and t.unit_id = k.Cell1)
WHEN MATCHED THEN
UPDATE SET
t.model = k.Cell3,
t.color = k.Cell4,
t.parking_space = k.Cell5,
t.update_time = sysdate,
t.link_man = k.Cell6,
t.link_phone = k.Cell7
WHEN NOT MATCHED THEN
INSERT (ID,UNIT_ID,LIC_PLATE_NO,MODEL,COLOR,PARKING_SPACE,UPDATE_TIME,DEL_FLAG,LINK_MAN,LINK_PHONE)
VALUES(
SEQ_BAS_CART_ID.NEXTVAL,k.Cell1,k.cell2,k.Cell3,k.Cell4,k.Cell5,sysdate,1, k.Cell6,k.Cell7
);

Exception
when others then
dbms_output.put_line('----------插入表失败啦---------表id: '||p_id);
dbms_output.put_line('原始错误信息: 行号:'||dbms_utility.format_error_backtrace()||' '||sqlerrm);
PKG_EXCEL_UTILS.p_log(p_id,sqlerrm,dbms_utility.format_error_backtrace(),'ERROR',SQLCODE);
raise;
end P_CART_Sheet1;


oracle xmltype导入并解析Excel数据 (五)中间表数据入库的更多相关文章

  1. oracle xmltype导入并解析Excel数据--前言

    通常,很多的时候,我们需要导入Excel数据到系统中,但是Excel数据需要我们去各种校验,比如身份证校验,手机号码校验等等. 校验失败的数据,提供Excel导出错误原因,提示给用户. 如此,如果校验 ...

  2. oracle xmltype导入并解析Excel数据 (四)特别说明

    1.Excel导出,此处没有给出 2.错误原因在中间表,T_EXCEL_IMPORT_GENERATION,其中errormsg不为空的数据 3,中间表入库过程: 需要自己实现,为一个存储过程,存储过 ...

  3. oracle xmltype导入并解析Excel数据 (三)解析Excel数据

    包声明 create or replace package PKG_EXCEL_UTILS is -- Author: zkongbai-- Create at: 2016-07-06-- Actio ...

  4. oracle xmltype导入并解析Excel数据 (一)创建表与序

    表说明: T_EXCEL_IMPORT_DATASRC: Excel数据存储表,(使用了xmltype存储Excel数据) 部分字段说明: BUSINESSTYPE: Excel模板类型,一个Exce ...

  5. oracle xmltype导入并解析Excel数据 (二)规则说明

    规则表字段说明如下: 其中RULE_FUNC_CUSTOMIZE表示,用户自己写函数,去判断数据是否合法,存储的是函数的名字 此函数的参数只有一个,该列的值,字段类型是Varchar2, 校验失败的话 ...

  6. 在论坛中出现的比较难的sql问题:9(触发器专题 插入数据自动更新表数据)

    原文:在论坛中出现的比较难的sql问题:9(触发器专题 插入数据自动更新表数据) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所 ...

  7. MySQL学习总结(五)表数据查询

    查询数据记录,是指从数据库对象表中获取所要查询的数据记录,该操作可以说是数据最基本的操作之一,也是使用频率最高.最重要的数据操作. 1.单表数据记录查询 1.1.简单数据查询 SELECT field ...

  8. mysql复制表数据,多表数据复制到一张表

    对于mysql 复制表数据可以使用 insert into select 方式 示例: $sql="insert into icarzoo.provider(providerId,provi ...

  9. 利用 js-xlsx 实现 Excel 文件导入并解析Excel数据成json格式的数据并且获取其中某列数据

    演示效果参考如下:XML转JSON 另一个搭配SQL实现:http://sheetjs.com/sexql/index.html 详细介绍: 1.首先需要导入js <script src=&qu ...

随机推荐

  1. Android实现圆形图片

     情景再现: 写Android程序也有一段时间了,今天突然被问怎么实现一个圆形图片,很多app图像是圆形的.但是用户上传的图像可不是圆的,所以问题就来了,需要我们代码实现圆形图片.但是大脑飞转想到第三 ...

  2. 在VC++6.0开发中实现全屏显示

    全屏显示是一些应用软件程序必不可少的功能.比如在用VC++编辑工程源文件或编辑对话框等资源时,选择菜单“View\Full Screen”,即可进入全屏显示状态,按“Esc”键后会退出全屏显示状态. ...

  3. oracle Net Manager 服务命名无法配置(无法新建、添加服务名)

    今天在配置oracle Net Manager 配置服务命名的时候总是无法配置,以前配置的服务名都显示不出来,然后点击绿色添加按钮也没反应,因为先前我修改了oracle\product\10.2.0\ ...

  4. JavaScript 面向对象(一) —— 基础篇

    学好JS的面向对象,能很大程度上提高代码的重用率,像jQuery,easyui等,这篇博客主要从细节上一步步讲JS中如何有效地创建对象,也可以看到常见的创建对象的方式,最后也会附上一些JS面向对象的案 ...

  5. Apache、NGINX支持中文URL

    Apache(32位):安装环境:CentOS 5.6 + Apache 2.2.15安装结果:安装后支持“中文图片.文件名”链接直接打开以下为安装过程:1.下载安装包 wget ftp://ftp. ...

  6. 当 jquery.unobtrusive-ajax.js 遇上Web API

    最近在熟悉Abp框架,其基于DDD领域驱动设计...前段可以绕过mvc直接调用根据app层动态生成的webapi,有点神奇~,Web API之前有简单接触过,WCF的轻量级版,一般用于做一写开发性的服 ...

  7. 微信JS SDK Demo 官方案例[转]

    摘要: 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统的能力,同时可以直接使用 ...

  8. 数据加密标准——DES

    DES算法和DESede算法统称DES系列算法.DES算法是对称加密算法领域中的典型算法,为后续对称加密算法的发展奠定了坚实的基础.但是DES算法密钥偏短,仅有56位,迭代次数偏少,受到诸如查分密码分 ...

  9. Practical Malware Analysis里有关inetsim\APATEDNS

    以前从未接触过linux,碰到了许多问题,按步骤: 1\安装VMWARE,安装ubuntu16.04 问题1:之前装的是VM10,装完后没有安装VMTOOLS,我点安装 VMTOOLS,它弹出“简易安 ...

  10. CTE递归查询

    WITH ctetest(AgencyID,ParentAgencyID,level)AS ( SELECT AgencyID,ParentAgencyID,0 level FROM dbo.Web_ ...