博客
关于我
merge into 笔记
阅读量:799 次
发布时间:2023-02-08

本文共 2697 字,大约阅读时间需要 8 分钟。

为了确保数据库中的数据完整性和一致性,我们需要对相关表进行合理的数据处理和类型创建。以下是具体的步骤说明:

第一步:检查并删除旧类型

执行以下T-SQL语句确保类型已存在且准备删除:

    IF EXISTS (        SELECT 1 FROM sys.types t        JOIN sys.schemas s ON t.schema_id = s.schema_id        WHERE t.name = 'tp_AICMonthlyWarrantData' AND s.name = 'MIR'    )    DROP TYPE MIR.tp_AICMonthlyWarrantData    GO    

第二步:创建新类型

使用以下T-SQL语句创建需要的表类型:

    CREATE TYPE MIR.tp_AICMonthlyWarrantData AS TABLE    (        SecId CHAR(10) NOT NULL,        EffectiveDate DATE NOT NULL,        WarrantIssued INT NULL,        WarrantExercised INT NULL,        WarrantsCancelled INT NULL,        WarrantsExpired INT NULL,        Outstanding BIGINT NULL,        Note NVARCHAR(500) NULL    )    GO    

同时授予公众执行权限:

    GRANT EXECUTE ON TYPE::MIR.tp_AICMonthlyWarrantData TO PUBLIC    GO    

第三步:执行数据合并操作

对数据表进行合并操作,确保数据的一致性:

    MERGE INTO OperationData.MIR.AICMonthlyWarrantData a    USING @p_warrantTable b    ON a.SecId = b.SecId AND a.EffectiveDate = b.EffectiveDate    WHEN MATCHED THEN    SET a.Issued = b.WarrantIssued,        a.Exercised = b.WarrantExercised,        a.Repurchased = b.WarrantsCancelled,        a.Expired = b.WarrantsExpired,        a.Outstanding = b.Outstanding,        a.Note = b.Note    WHEN NOT MATCHED THEN    INSERT (SecId, EffectiveDate, Issued, Exercised, Repurchased, Expired, Outstanding, Note, LastUpdate)    VALUES (b.SecId, b.EffectiveDate, b.WarrantIssued, b.WarrantExercised, b.WarrantsCancelled, b.WarrantsExpired, b.Outstanding, b.Note, getdate())    GO    

第四步:执行可转换数据合并操作

对可转换数据表进行合并操作:

    MERGE INTO OperationData.MIR.AICMonthlyCovertibleData a    USING @p_convertibleTable b    ON a.SecId = b.SecId AND a.EffectiveDate = b.EffectiveDate    WHEN MATCHED THEN    SET a.Issued = b.ConvertibleIssued,        a.Repurchased = b.ConvertibleRepurchased,        a.Converted = b.ConvertibleConverted,        a.Redeemed = b.ConvertibleRedeemed,        a.Outstanding = b.Outstanding,        a.Note = b.Note,        a.ConvertibleTotalValue = b.ConvertibleConvertibleTotalValue,        a.ConvertibleFairValue = b.ConvertibleConvertibleFairValue    WHEN NOT MATCHED THEN    INSERT (SecId, EffectiveDate, Issued, Repurchased, Converted, Redeemed, Outstanding, Note, ConvertibleTotalValue, ConvertibleFairValue, LastUpdate)    VALUES (b.SecId, b.EffectiveDate, b.ConvertibleIssued, b.ConvertibleRepurchased, b.ConvertibleConverted, b.ConvertibleRedeemed, b.Outstanding, b.Note, b.ConvertibleConvertibleTotalValue, b.ConvertibleConvertibleFairValue, getdate())    GO    

以上操作完成后,数据将被正确合并到目标数据表中,确保数据的完整性和一致性。

转载地址:https://www.cnblogs.com/mibing/p/8609787.html

你可能感兴趣的文章
ORACLE Active dataguard 一个latch: row cache objects BUG
查看>>
oracle avg、count、max、min、sum、having、any、all、nvl的用法
查看>>
Oracle BEQ方式连接配置
查看>>
oracle Blob保存方式,oracle 存储过程操作blob
查看>>
Oracle BMW Racing sailing vessel帆船图
查看>>
ORACLE Bug 4431215 引发的血案—原因分析篇
查看>>
Oracle Business Intelligence Downloads
查看>>
Oracle cmd乱码
查看>>
Oracle Corp甲骨文公司推出Oracle NoSQL数据库2.0版
查看>>
【Docker知识】将环境变量传递到容器
查看>>
uniapp超全user-agent判断 包括微信开发工具 hbuilder mac windows 安卓ios端及本地识别
查看>>
Oracle DBA课程系列笔记(20)
查看>>
oracle dblink 创建使用 垮库转移数据
查看>>
oracle dblink结合同义词的用法 PLS-00352:无法访问另一数据库
查看>>
Oracle dbms_job.submit参数错误导致问题(ora-12011 无法执行1作业)
查看>>
oracle dg switchover,DG Switchover fails
查看>>
Oracle E-Business Suite软件 任意文件上传漏洞(CVE-2022-21587)
查看>>
Oracle EBS OPM 发放生产批
查看>>
Oracle EBS-SQL (BOM-15):检查多层BOM(含common BOM).sql
查看>>
Oracle EBS环境下查找数据源(OAF篇)
查看>>