REGEXP_REPLACE does not exist
时间: 2023-08-06 12:06:36 浏览: 373
回答: 在MySQL 8.0版本之前的MySQL客户端执行REGEXP_REPLACE函数会报错,提示"FUNCTION regexp_replace does not exist"。[2]这是因为MySQL 8.0版本才引入了regexp_replace函数,而在低于此版本的MySQL客户端中并不支持该函数。如果你需要使用正则表达式替换字符串的功能,可以考虑升级到MySQL 8.0或以上版本,或者使用其他替代的方法来实现相同的功能。
相关问题
#!/bin/sh sleep 180 hive -e "select day_id, regexp_replace(work_order_id, '\\\\t', ''), regexp_replace(order_assess_id, '\\\\t', ''), regexp_replace(contact_type, '\\\\t', ''), regexp_replace(scene_type, '\\\\t', ''), regexp_replace(assess_mode, '\\\\t', ''), regexp_replace(join_mode, '\\\\t', ''), regexp_replace(mobile_phone, '\\\\t', ''), regexp_replace(complaint_phone, '\\\\t', ''), regexp_replace(check_assess_result, '\\\\t', ''), regexp_replace(date_format(assesssendtime, 'MM/dd/yyyy HH:mm:ss'), '\\\\t', ''), regexp_replace(date_format(usersubtime, 'MM/dd/yyyy HH:mm:ss'), '\\\\t', ''), regexp_replace(is_evaluation, '\\\\t', ''), regexp_replace(issolve, '\\\\t', ''), regexp_replace(check_assess_score, '\\\\t', ''), regexp_replace(reason, '\\\\t', '') from db_dws_jt.dws_jscp_result_bus43032 where day_id='${begin_date}';" > /data1/u_eda_lx_grp01/wwd/in_2010/dws_db_dws_in_2012_touch_10000_d.dat sed -i 's/NULL//g' /data1/u_eda_lx_grp01/wwd/in_2010/dws_db_dws_in_2012_touch_10000_d.dat sed -i 's/\t/|@|/g' /data1/u_eda_lx_grp01/wwd/in_2010/dws_db_dws_in_2012_touch_10000_d.dat sleep 120 ftp -i -n<<! open 10.7.6.118 user infaope Dc27-Fhna bin cd /ftpdata/receive/eda_in/in_2010/ lcd /data1/u_eda_lx_grp01/wwd/in_2010 prompt put dws_db_dws_in_2012_touch_10000_d.dat close bye ! 这段代码什么意思
这段代码是一个Shell脚本,功能类似于上面的例子。它将从Hive表中查询指定日期的数据,并将结果导出到文件,然后通过FTP上传到远程服务器。
首先,脚本暂停执行180秒。
接下来,使用Hive命令从表`db_dws_jt.dws_jscp_result_bus43032`中查询指定日期的数据,并将结果输出到文件`/data1/u_eda_lx_grp01/wwd/in_2010/dws_db_dws_in_2012_touch_10000_d.dat`。
在查询结果中,使用`regexp_replace`函数对各个字段进行处理,将其中的制表符替换为空格。
然后,使用`sed`命令对文件进行处理,将其中的NULL字符串替换为空格,并将制表符替换为特殊字符串"|@|"。
然后,脚本再次暂停执行120秒。
最后,使用FTP命令连接到远程服务器,通过用户名和密码进行验证。然后切换到指定目录`/ftpdata/receive/eda_in/in_2010/`,设置本地目录为`/data1/u_eda_lx_grp01/wwd/in_2010`,启用被动模式。接着,将文件`dws_db_dws_in_2012_touch_10000_d.dat`上传到远程服务器。最后,关闭FTP连接。
这段代码的作用是将Hive表中指定日期的数据导出到文件,并通过FTP上传到远程服务器。
UPDATE origin1 SET jineng = CASE WHEN jineng LIKE "[%" THEN regexp_replace(regexp_replace(regexp_replace(jineng, '\\[\\{"技能要求":"', ' '), '"\\}\\{"技能要求":"', ','), '"\\}\\]', '') ELSE regexp_replace(regexp_replace(jineng, '\\[\\{"技能要求":"', ''), '"\\}\\{"技能要求":"', ',') END;像这样写
是的,这样写是可以将类似于 "[{"技能要求":"就近分配"},{"技能要求":"商业保险"},{"技能要求":"上门维修"},{"技能要求":"高提成"}]" 的字符串中的技能要求提取出来,并以逗号分隔的形式更新到 `origin1` 表的 `jineng` 列中。
需要注意的是,这里使用了 `regexp_replace` 函数来替换字符串中的特定字符。同时,也需要确保 SQL 语句的表名、列名和数据匹配,否则可能会导致更新失败或更新到错误的位置。
阅读全文