最近在做数据的迁移,再将数据从mysql迁移至oracle时,部分sql语句进行了修改,在此对部分知识点进行记录:

参考资料:https://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_substring-index

1、【mysql】find_in_set:

  语法:find_in_set(str,strList)  -----> Return the index position of the first argument within the second argument  

  功能:在字符串列表strList中查找字符串str,并返回str所在的索引位置。str要查找的字符串,strList以“,”分割的字符串。

  定义:

    1、Returns a value in the range of 1 to N if the string str is in the string list strlist consisting of N substrings.

      如果字符串str在由N个字符串组成的字符串列表strlist内,则返回1到N范围内的值。

    2、A string list is a string composed of substrings separated by , characters.

      字符串列表是由字符串分隔的子字符串组成的字符串。

    3、If the first argument is a constant string and the second is a column of type SET, the FIND_IN_SET() function is optimized to use bit arithmetic.

         如果第一个参数是常量字符串,第二个参数是SET类型的列,则FIND_IN_SET()函数被优化以使用位运算 

    4、Returns 0 if str is not in strlist or if strlist is the empty string.

      如果字符串str不在字符串列表strlist内或者字符串列表strlist是空字符串,则返回0。

    5、Returns NULL if either argument is NULL.

      如果任意参数为null,则返回null。

    6、This function does not work properly if the first argument contains a comma (,) character.

      如果第一个参数包含了逗号(,)字符,则此函数无法正常工作。

  实际应用:

    某表中某字段值由两部分以“|”连接组成,如:A|B,A表示某C类型的编号,B表示某D类型的编号。

    在查询时,按C类型编号和D类型编号作为两种条件进行查询:

    在mysql中使用find_in_str(?,REPLACE('A|B','|',','))可实现查询,而在oracle中该函数没有,那我们可以换种方式:

    用oracle中的 REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)函数 获取所需的部分 与条件值进行比对进行查询:

      如上述应用中可用 REGEXP_SUBSTR('A', '[^|]+', 1, 1) =? 作为C类型编号查询条件, REGEXP_SUBSTR('B', '[^|]+', 1, 2) =?作为D类型编号查询条件。

2、【mysql】substring_index (暂记录其中一种,其他后续补充)

  语法:substring_index(str,delim,count)  ------>Return a substring from a string before the specified number of occurrences of the delimiter

  功能:在指定的分隔符出现之前从字符串返回一个子字符串。str被截取的字符串,delim分隔符,count分隔符出现的次数。

  定义: 

    1、Returns the substring from string str before count occurrences of the delimiter delim. 

      在分隔符出现之前返回字符串str中的子字符串。

    2、If count is positive, everything to the left of the final delimiter (counting from the left) is returned.

      如果count为正数,则返回最终分隔符左侧的所有内容(从左侧计数)。即,从左边开始计数,获取第count个分隔符左侧的内容。

    3、If count is negative, everything to the right of the final delimiter (counting from the right) is returned.

      如果count为负数,则返回最终分隔符右侧的所有内容(从右侧计数)。即,从右边开始计数,获取第count个分隔符右侧的内容 。

    4、SUBSTRING_INDEX() performs a case-sensitive match when searching for delim.

     SUBSTRING_INDEX()在搜索delim时执行区分大小写匹配。

  实际应用:

     某表中某字段值由两部分以“|”连接组成,如:A|B,A表示某C类型的编号,B表示某D类型的编号。

     在查询时,查询出C类型编号和D类型编号并进行展示:

     在mysql中,我们可以使用substring_index(str,delim,count)函数来实现该需求,而在oracle中,我们依然可以通过REGEXP_SUBSTR(String, pattern, position, occurrence, modifier) 来实现该需求

3.【mysql】UUID:

  在实际应用当中,有时我们会用到UUID()函数来实现唯一值。

  在mysql中我们可以使用:select replace(uuid(),'-','') as uuid; 来获取唯一值,而在oracle中,我们得使用:select lower(sys_guid()) as uuid  from dual;来获取

  

转载于:https://www.cnblogs.com/shea/p/7507997.html

数据从mysql迁移至oracle时知识点记录(一)相关推荐

  1. Mysql迁移到Oracle方法

    目录 1简介... 1 2 准备... 1 2.1 环境说明... 1 3 安装... 2 4 配置... 2 5 使用... 2 5.1 验证实验... 2 5.2 问题分析... 4 6 延展.. ...

  2. 记一次基于mybatis的Springboot项目数据库从Mysql迁移至Oracle的全过程(超详细)

    前言 自己做了一个后端使用springboot,前端使用vue的前后端分离的知识图谱系统,图数据库用Neo4j,关系数据库用的mysql,在项目上线前一周,甲方爸爸要求关系数据库要使用Oracle11 ...

  3. oracle移植mysql方案_系统从MySQL迁移至ORACLE实现方案

    一.数据库脚本迁移 1.数据结构同步 打开Navicat Premium,点击菜单[工具]-[数据传输],在弹出的对话框中选择对应的源库和目标库. 为使用方便,请在TAB页[高级]中,将[转换对象名为 ...

  4. Mysql迁移到Oracle

    一.工具下载及安装(若有则忽略此步骤) 1. 下载并安装Mysql 5.7.x版本 参考:MySQL 安装 | 菜鸟教程 2. 下载并安装oracle 11g 参考:Oracle(11g)数据库安装详 ...

  5. 从小数据量 MySQL 迁移数据到 TiDB

    本文档介绍如何使用 TiDB DM (以下简称 DM)以全量+增量的模式数据到 TiDB.本文所称"小数据量"通常指 TiB 级别以下. 一般而言,受到表结构索引数目等信息.硬件以 ...

  6. 使用disruptor 将5百多万数据从mysql导入到oracle

    知道disruptor快1年多了,一直没有用武之地.这次正好要迁移数据.表结构由于完全不一样,导数据的时候还需要进行一些计算.果断用disruptor试试 1 public class Transfe ...

  7. date oracle 表中_从 MySQL 迁移数据到 Oracle 中的全过程

    一.前言 这里记录一次将MySQL数据库中的表数据迁移到Oracle数据库中的全过程 ,使用工具 Navicat,版本 12.0.11 操作环境及所用工具: mysql5.7 oracle18c wi ...

  8. 迁移程序mysql_程序从MYSQL迁移ORACLE注意事项之二

    程序从MYSQL迁移ORACLE注意事项之二 程序从Mysql迁移到Oracle的时候,需要注意到以下几个地方: 4. 长字符串的处理 长字符串的处理ORACLE也有它特殊的地方.INSERT和UPD ...

  9. Oracle同步数据到MySQL

    Oracle同步数据到MySQL 1.首先在TreeSoft数据库中配置两个数据源信息 2.配置数据同步任务,并执行任务 3.同步结果数据查看确认 4.目前TreeSoft支持以下数据同步方案 1.M ...

最新文章

  1. Linux下的网络远程安装
  2. kali渗透-基础篇
  3. Spring Boot工程支持HTTP和HTTPS,HTTP重定向HTTPS
  4. 查看当前服务器中的所有的topic,创建topic,删除topic,通过shell命令发送消息,通过shell消费消息,查看topic详情,对分区数进行修改
  5. 大数据导论章节答案_托福100+需要准备多久?考生大数据给你答案
  6. python服务器qt客户端_python3+PyQt5 创建多线程网络应用-TCP客户端和TCP服务器实例...
  7. lzw压缩 java_java实现的LZW 压缩算法源码 | 学步园
  8. jquery ajax调用服务器端指定的函数的三种方式
  9. 基于TCP协议的进程间通信
  10. Atitit.编程语言原理---方法重载的实现与设计 调用方法的原理
  11. [转载]taking photos with live image preview
  12. ui-grid 常用操作
  13. c语言硬币个数最小值,c语言 PTA day4 将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?...
  14. spring data JPA的使用
  15. 《王二丫的甜品店》技术支持网址
  16. 加权有限状态转录机(Weighted Finite-State Transducer/WFST)
  17. 焦点科技股份有限公司--软件测试--《社招、校招jd、公司介绍、培训发展、薪酬福利、公益慈善》整理
  18. 20220609 C++版的ends_with
  19. 文件上传黑名单和白名单校验
  20. android DevAppsDirect开源项目

热门文章

  1. Redis和Memcached在功能、性能以及内存使用效率上的对比
  2. java 读取office文件,java读取office文件
  3. setTimeout(〒︿〒) 请原谅我一直以来对你的忽视
  4. UIView layer 的对应关系
  5. ms sql server 多条件模糊查找
  6. 现成的CA证书签发工具
  7. 微软发布Visual Studio Mac预览版
  8. Android 利用缓存机制实现文件下载
  9. mysql workbench 导出查询结果_MySQL Workbench查询结果导出步骤
  10. postbody传参_java 测试post请求 在body里面传递参数怎么设置,怎么接收