oceanbase

问题是什么

数据库报错 Error 1366 (HY000): Incorrect string value

具体情况复现

插入语句

insert ignore into user(
    name, 
    disc_content
) 
select
    t1.name,
    group_concat(
        concat('{"评论人":"', t1.author, '","解决人":"', t1.resolved_name, '","评论时间":"', t1.note_time, '","评论内容":"', t1.body, '"}')
        ) as disc_content,
    from
        date_detail as t1
    group by user_id

出现错误原因

concat()函数默认1024字节,超过1024,可能导致数据截断。从而使出现一些OceanBase不能插入的字符(mysql并不会出现同样原因)

解决方案

使用json_object()函数替换

insert ignore into user(
    name, 
    disc_content
) 
select
    t1.name,
    json_arrayagg(
        json_object(
            '评论人', t1.author,
            '解决人', t1.resolved_name,
            '评论时间', t1.note_time,
            '评论内容', t1.body
        )
    ) as disc_content,
    from
        date_detail as t1
    group by user_id

2023-12-02 18:16:11 星期六

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vegetariangelatin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值