Snowflake cloud data platform 将Oracle查询转换为雪花

Snowflake cloud data platform 将Oracle查询转换为雪花,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,在将查询从Oracle转换为snowflake时,我遇到了一个问题。你能帮忙吗 Oracle查询示例: 替换(REGEXP_SUBSTR(col_name,(.*)([[:space:]]>[[:space:]].$)”,1,1),“>>”,“”)为test处理正则表达式的(.*)部分时,雪花的行为似乎有所不同。作为解决方法,您可以使用[^>]*或\w+代替(.*): 对于Oracle的REGEXP_SUBSTR,它们应该给出相同的结果(“test1”)。您可以发布一个示例输入和一个预期输出吗。

在将查询从Oracle转换为snowflake时,我遇到了一个问题。你能帮忙吗

Oracle查询示例:
替换(REGEXP_SUBSTR(col_name,(.*)([[:space:]]>[[:space:]].$)”,1,1),“>>”,“”)为test

处理正则表达式的(.*)部分时,雪花的行为似乎有所不同。作为解决方法,您可以使用[^>]*或\w+代替(.*):


对于Oracle的REGEXP_SUBSTR,它们应该给出相同的结果(“test1”)。

您可以发布一个示例输入和一个预期输出吗。因为作为con_name的abc>'似乎对我有效,所以我不确定你有什么你认为应该有效但不起作用的……欢迎来到这里!我认为您可以通过一个示例来提高获得答案的机会。您是否可以共享您的oracle输入示例。您想要第一个字段<代码>选择REGEXP_SUBSTR('test1>>test2>>test3','[^>]+',1)作为val谢谢,伙计,这是按照我的期望工作
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;