博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据从mysql迁移至oracle时知识点记录(一)
阅读量:5133 次
发布时间:2019-06-13

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

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

参考资料:

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、 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

你可能感兴趣的文章
20几个正则常用正则表达式
查看>>
TextArea中定位光标位置
查看>>
非常棒的Visual Studo调试插件:OzCode 2.0 下载地址
查看>>
判断字符串在字符串中
查看>>
hdu4374One hundred layer (DP+单调队列)
查看>>
类间关系总结
查看>>
properties配置文件读写,追加
查看>>
Linux环境下MySql安装和常见问题的解决
查看>>
lrzsz——一款好用的文件互传工具
查看>>
ZPL语言完成条形码的打印
查看>>
这20件事千万不要对自己做!
查看>>
Linux环境下Redis安装和常见问题的解决
查看>>
玩转小程序之文件读写
查看>>
HashPump用法
查看>>
cuda基础
查看>>
virutalenv一次行安装多个requirements里的文件
查看>>
Vue安装准备工作
查看>>
.NET 母版页 讲解
查看>>
Android Bitmap 和 Canvas详解
查看>>
最大权闭合子图
查看>>