电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

詳解如何校驗(yàn)MySQL及Oracle時(shí)間字段合規(guī)性

瀏覽:5日期:2023-08-02 20:12:38
目錄背景信息Oracle 時(shí)間數(shù)據(jù)校驗(yàn)方法創(chuàng)建測(cè)試表并插?測(cè)試數(shù)據(jù)創(chuàng)建對(duì)該表的錯(cuò)誤日志記錄創(chuàng)建并插入數(shù)據(jù)到臨時(shí)表,驗(yàn)證時(shí)間數(shù)據(jù)有效性校驗(yàn)錯(cuò)誤記錄MySQL 數(shù)據(jù)庫(kù)的方法創(chuàng)建測(cè)試表模擬低版本不規(guī)范數(shù)據(jù)創(chuàng)建臨時(shí)表進(jìn)行數(shù)據(jù)規(guī)范性驗(yàn)證數(shù)據(jù)比對(duì)一個(gè)取巧的小方法關(guān)于 SQLESQLE 獲取背景信息

在數(shù)據(jù)遷移或者數(shù)據(jù)庫(kù)低版本升級(jí)到高版本過(guò)程中,經(jīng)常會(huì)遇到一些由于低版本數(shù)據(jù)庫(kù)參數(shù)設(shè)置過(guò)于寬松,導(dǎo)致插入的時(shí)間數(shù)據(jù)不符合規(guī)范的情況而觸發(fā)報(bào)錯(cuò),每次報(bào)錯(cuò)再發(fā)現(xiàn)處理起來(lái)較為麻煩,是否有提前發(fā)現(xiàn)這類不規(guī)范數(shù)據(jù)的方法,以下基于 Oracle 和 MySQL 各提供一種可行性方案作為參考。

Oracle 時(shí)間數(shù)據(jù)校驗(yàn)方法創(chuàng)建測(cè)試表并插?測(cè)試數(shù)據(jù)CREATE TABLE T1(ID NUMBER,CREATE_DATE VARCHAR2(20));INSERT INTO T1 SELECT 1, '2007-01-01' FROM DUAL;INSERT INTO T1 SELECT 2, '2007-99-01' FROM DUAL; -- 異常數(shù)據(jù)INSERT INTO T1 SELECT 3, '2007-12-31' FROM DUAL;INSERT INTO T1 SELECT 4, '2007-12-99' FROM DUAL; -- 異常數(shù)據(jù)INSERT INTO T1 SELECT 5, '2005-12-29 03:-1:119' FROM DUAL; -- 異常數(shù)據(jù)INSERT INTO T1 SELECT 6, '2015-12-29 00:-1:49' FROM DUAL; -- 異常數(shù)據(jù)創(chuàng)建對(duì)該表的錯(cuò)誤日志記錄Oracle 可以調(diào)用 DBMS_ERRLOG.CREATE_ERROR_LOG 包對(duì) SQL 的錯(cuò)誤進(jìn)行記錄,用來(lái)記錄下異常數(shù)據(jù)的情況,十分好用。

參數(shù)含義如下

T1 為表名T1_ERROR 為對(duì)該表操作的錯(cuò)誤記錄臨時(shí)表DEMO 為該表的所屬用戶EXEC DBMS_ERRLOG.CREATE_ERROR_LOG('T1','T1_ERROR','DEMO');創(chuàng)建并插入數(shù)據(jù)到臨時(shí)表,驗(yàn)證時(shí)間數(shù)據(jù)有效性-- 創(chuàng)建臨時(shí)表做數(shù)據(jù)校驗(yàn)CREATE TABLE T1_TMP(ID NUMBER,CREATE_DATE DATE);-- 插入數(shù)據(jù)到臨時(shí)表驗(yàn)證時(shí)間數(shù)據(jù)有效性(增加LOG ERRORS將錯(cuò)誤信息輸出到錯(cuò)誤日志表)INSERT INTO T1_TMP SELECT ID, TO_DATE(CREATE_DATE, 'YYYY-MM-DD HH24:MI:SS')FROM T1 LOG ERRORS INTO T1_ERROR REJECT LIMIT UNLIMITED;校驗(yàn)錯(cuò)誤記錄SELECT * FROM DEMO.T1_ERROR;

其中 ID 列為該表的主鍵,可用來(lái)快速定位異常數(shù)據(jù)行。

MySQL 數(shù)據(jù)庫(kù)的方法創(chuàng)建測(cè)試表模擬低版本不規(guī)范數(shù)據(jù)-- 創(chuàng)建測(cè)試表SQL> CREATE TABLE T_ORDER( ID BIGINT AUTO_INCREMENT PRIMARY KEY, ORDER_NAME VARCHAR(64), ORDER_TIME DATETIME);-- 設(shè)置不嚴(yán)謹(jǐn)?shù)腟QL_MODE允許插入不規(guī)范的時(shí)間數(shù)據(jù)SQL> SET SQL_MODE='STRICT_TRANS_TABLES,ALLOW_INVALID_DATES';SQL> INSERT INTO T_ORDER(ORDER_NAME,ORDER_TIME) VALUES ('MySQL','2022-01-01'),('Oracle','2022-02-30'),('Redis','9999-00-04'),('MongoDB','0000-03-00');-- 數(shù)據(jù)示例SQL> SELECT * FROM T_ORDER;+----+------------+---------------------+| ID | ORDER_NAME | ORDER_TIME |+----+------------+---------------------+| 1 | MySQL | 2022-01-01 00:00:00 || 2 | Oracle | 2022-02-30 00:00:00 || 3 | Redis | 9999-00-04 00:00:00 || 4 | MongoDB | 0000-03-00 00:00:00 |+----+------------+---------------------+創(chuàng)建臨時(shí)表進(jìn)行數(shù)據(jù)規(guī)范性驗(yàn)證-- 創(chuàng)建臨時(shí)表,只包含主鍵ID和需要校驗(yàn)的時(shí)間字段SQL> CREATE TABLE T_ORDER_CHECK( ID BIGINT AUTO_INCREMENT PRIMARY KEY, ORDER_TIME DATETIME);-- 設(shè)置SQL_MODE為5.7或8.0高版本默認(rèn)值SQL> SET SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';-- 使用INSERT IGNORE語(yǔ)法插入數(shù)據(jù)到臨時(shí)CHECK表,忽略插入過(guò)程中的錯(cuò)誤SQL> INSERT IGNORE INTO T_ORDER_CHECK(ID,ORDER_TIME) SELECT ID,ORDER_TIME FROM T_ORDER;數(shù)據(jù)比對(duì)

將臨時(shí)表與正式表做關(guān)聯(lián)查詢,比對(duì)出不一致的數(shù)據(jù)即可。

SQL> SELECT T.ID, T.ORDER_TIME AS ORDER_TIME, TC.ORDER_TIME AS ORDER_TIME_TMPFROM T_ORDER T INNER JOIN T_ORDER_CHECK TC ON T.ID=TC.IDWHERE T.ORDER_TIME<>TC.ORDER_TIME;+----+---------------------+---------------------+| ID | ORDER_TIME | ORDER_TIME_TMP |+----+---------------------+---------------------+| 2 | 2022-02-30 00:00:00 | 0000-00-00 00:00:00 || 3 | 9999-00-04 00:00:00 | 0000-00-00 00:00:00 || 4 | 0000-03-00 00:00:00 | 0000-00-00 00:00:00 |+----+---------------------+---------------------+一個(gè)取巧的小方法

對(duì)時(shí)間字段用正則表達(dá)式匹配,對(duì)有嚴(yán)謹(jǐn)性要求的情況還是得用以上方式,正則匹配燒腦。

-- Oracle 數(shù)據(jù)庫(kù)SELECT * FROM T1 WHERE NOT REGEXP_LIKE(CREATE_DATE,'^((?:19|20)\d\d)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$'); ID CREATE_DATE---------- -------------------- 2 2007-99-01 4 2007-12-99 5 2005-12-29 03:-1:119 6 2015-12-29 00:-1:49-- MySQL 數(shù)據(jù)庫(kù)-- 略,匹配規(guī)則還在調(diào)試中關(guān)于 SQLE

愛(ài)可生開(kāi)源社區(qū)的 SQLE 是一款面向數(shù)據(jù)庫(kù)使用者和管理者,支持多場(chǎng)景審核,支持標(biāo)準(zhǔn)化上線流程,原生支持 MySQL 審核且數(shù)據(jù)庫(kù)類型可擴(kuò)展的 SQL 審核工具。

SQLE 獲取類型地址版本庫(kù)https://github.com/actiontech/sqle文檔https://actiontech.github.io/sqle-docs/發(fā)布信息https://github.com/actiontech/sqle/releases數(shù)據(jù)審核插件開(kāi)發(fā)文檔https://actiontech.github.io/sqle-docs-cn/3.modules/3.7_audit...

以上就是詳解如何校驗(yàn)MySQL及Oracle時(shí)間字段合規(guī)性的詳細(xì)內(nèi)容,更多關(guān)于MySQL Oracle時(shí)間字段合規(guī)性的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: MySQL 數(shù)據(jù)庫(kù)
主站蜘蛛池模板: LED灯杆屏_LED广告机_户外LED广告机_智慧灯杆_智慧路灯-太龙智显科技(深圳)有限公司 | 真空干燥烘箱_鼓风干燥箱 _高低温恒温恒湿试验箱_光照二氧化碳恒温培养箱-上海航佩仪器 | 山楂片_雪花_迷你山楂片_山楂条饼厂家-青州市丰源食品厂 | 单机除尘器 骨架-脉冲除尘器设备生产厂家-润天环保设备 | 丹尼克尔拧紧枪_自动送钉机_智能电批_柔性振动盘_螺丝供料器品牌 | 真石漆,山东真石漆,真石漆厂家,真石漆价格-山东新佳涂料有限公司 | 贴片电容-贴片电阻-二三极管-国巨|三星|风华贴片电容代理商-深圳伟哲电子 | 断桥铝破碎机_铝合金破碎机_废铁金属破碎机-河南鑫世昌机械制造有限公司 | 【MBA备考网】-2024年工商管理硕士MBA院校/报考条件/培训/考试科目/提前面试/考试/学费-MBA备考网 | 废气处理_废气处理设备_工业废气处理_江苏龙泰环保设备制造有限公司 | 铝机箱_铝外壳加工_铝外壳厂家_CNC散热器加工-惠州市铂源五金制品有限公司 | 耐破强度测试仪-纸箱破裂强度试验机-济南三泉中石单品站 | 雷蒙磨,雷蒙磨粉机,雷蒙磨机 - 巩义市大峪沟高峰机械厂 | 纯化水设备-纯水设备-超纯水设备-[大鹏水处理]纯水设备一站式服务商-东莞市大鹏水处理科技有限公司 | 河南道路标志牌_交通路标牌_交通标志牌厂家-郑州路畅交通 | 橡胶接头_橡胶软接头_套管伸缩器_管道伸缩器厂家-巩义市远大供水材料有限公司 | 安徽华耐泵阀有限公司-官方网站 安德建奇火花机-阿奇夏米尔慢走丝|高维|发那科-北京杰森柏汇 | RO反渗透设备_厂家_价格_河南郑州江宇环保科技有限公司 | 磁力链接搜索神器_BT磁力狗_CILIMAO磁力猫_高效磁力搜索引擎2024 | 冷轧机|两肋冷轧机|扁钢冷轧机|倒立式拉丝机|钢筋拔丝机|收线机-巩义市华瑞重工机械制造有限公司 | 同步带轮_同步带_同步轮_iHF合发齿轮厂家-深圳市合发齿轮机械有限公司 | 江苏密集柜_电动_手动_移动_盛隆柜业江苏档案密集柜厂家 | H型钢切割机,相贯线切割机,数控钻床,数控平面钻,钢结构设备,槽钢切割机,角钢切割机,翻转机,拼焊矫一体机 | 协议书_协议合同格式模板范本大全 | 北京租车牌|京牌指标租赁|小客车指标出租 | 香蕉筛|直线|等厚|弧形|振动筛|香蕉筛厂家-洛阳隆中重工 | 巨野电机维修-水泵维修-巨野县飞宇机电维修有限公司 | ◆大型吹塑加工|吹塑加工|吹塑代加工|吹塑加工厂|吹塑设备|滚塑加工|滚塑代加工-莱力奇塑业有限公司 | Honsberg流量计-Greisinger真空表-气压计-上海欧臻机电设备有限公司 | 并离网逆变器_高频UPS电源定制_户用储能光伏逆变器厂家-深圳市索克新能源 | 衡阳耐适防护科技有限公司——威仕盾焊接防护用品官网/焊工手套/焊接防护服/皮革防护手套 | 通辽信息港 - 免费发布房产、招聘、求职、二手、商铺等信息 www.tlxxg.net | 国标白水泥,高标号白水泥,白水泥厂家-淄博华雪建材有限公司 | 加气混凝土砌块设备,轻质砖设备,蒸养砖设备,新型墙体设备-河南省杜甫机械制造有限公司 | 北京律师事务所_房屋拆迁律师_24小时免费法律咨询_云合专业律师网 | 纯水电导率测定仪-万用气体检测仪-低钠测定仪-米沃奇科技(北京)有限公司www.milwaukeeinst.cn 锂辉石检测仪器,水泥成分快速分析仪-湘潭宇科分析仪器有限公司 手术室净化装修-手术室净化工程公司-华锐手术室净化厂家 | 废气处理设备-工业除尘器-RTO-RCO-蓄热式焚烧炉厂家-江苏天达环保设备有限公司 | 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 聚合氯化铝_喷雾聚氯化铝_聚合氯化铝铁厂家_郑州亿升化工有限公司 | 扬子叉车厂家_升降平台_电动搬运车|堆高车-扬子仓储叉车官网 | VI设计-LOGO设计公司-品牌设计公司-包装设计公司-导视设计-杭州易象设计 | 除尘器布袋骨架,除尘器滤袋,除尘器骨架,电磁脉冲阀膜片,卸灰阀,螺旋输送机-泊头市天润环保机械设备有限公司 |