ORACLE 迁移到 MogDB 之存储过程改造:字符串分割函数
源库(ORACLE)字符串分割函数
源库SQL-ORACLE
功能:将输入的字符串以分隔符默认是’,’分割进行输出表格的形式。这里还用到了自定义的类型如下:
1 | create or replace TYPE "STRSPLIT_TYPE" IS TABLE OF VARCHAR2 (4000) |
1 | create or replace function strsplit(p_value varchar2, |
执行效果:
1 | SQL> select * from table(strsplit('hahha:dfdfdf,ffff,2f,3d,4e',',')); |
目标库(MogDB)改造后的字符串分割函数
目标库SQL:MogDB
MogDB 自带regexp_split_to_table
函数,进行改造如下,然后直接查询即可。
1 | CREATE OR REPLACE FUNCTION strsplit(p_value text, p_split text DEFAULT ','::text) |
1 | liups=> select strsplit('hahha:dfdfdf,ffff,2f,3d,4e',':'); |
目标库(MogDB)里 存储过程中调用字符串分割函数的改造
源库SQL-ORACLE
1 | FOR C IN (SELECT COLUMN_VALUE SQLS FROM TABLE(strsplit(SQL_STMT, ';'))) LOOP |
目标库SQL:MogDB
MogDB 直接通过 select 直接查询就可以了。
1 | FOR C IN (SELECT * FROM strsplit(SQL_STMT, ';')) LOOP |
原文作者: Hi.MogDB
原文链接: https://hi.mogdb.org/posts/d331825a/
许可协议: 知识共享署名-非商业性使用 4.0 国际许可协议