snowflake-cloud-data-platform - 将 Oracle 查询转换为雪花
问题描述
我在将查询从 Oracle 转换为雪花时遇到问题。你能帮忙吗?
示例 Oracle 查询:replace(REGEXP_SUBSTR( col_name,'(.*?)([[:space:]]>>[[:space:]]|$)', 1,1 ) , '>> ','' ) 作为测试
解决方案
在处理正则表达式的 (.*?) 部分时,Snowflake 的行为似乎有所不同。作为一种解决方法,您可以使用 [^>]* 或 \w+ 代替 (.*?):
SELECT
replace(REGEXP_SUBSTR( 'test1 >> test2 >> test3','([^>]*)([[:space:]]>>[[:space:]]|$)', 1,1 ) , ' >> ','') as test;
SELECT
replace(REGEXP_SUBSTR( 'test1 >> test2 >> test3','\\w+([[:space:]]>>[[:space:]]|$)', 1,1) , ' >> ','') as test;
这些应该与 Oracle 的 REGEXP_SUBSTR 给出相同的结果(“test1”)。
推荐阅读
- html - 在 HTML 中为浏览器呈现(和重新呈现)更快的是:表格或 flex-box
- linux - 是否可以使用 pybluez“授权服务”?
- midi - Audiokit MIDI 线程安全
- android - 设置项目 Android Studio
- c# - C# - 当我尝试创建构造函数时,出现 CS7036 错误
- python - 获取源代码不可见的网页内容
- javascript - 如何在javascript中更新数组的特定对象值
- excel - 查看隐藏工作表,无法设置工作表类的可见属性错误
- python - 获取多维数组中的最大值、最小值和最后一个索引值
- docker - 当我尝试执行我的 Docker 容器时为什么会出现这个错误?绑定:地址已经在使用中