【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】社区版 4.3.5
【问题描述】创建语句的时候 使用了 or replace ,但对于已存在的outline仍旧会执行报错
麻烦老师看一下
【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】社区版 4.3.5
【问题描述】创建语句的时候 使用了 or replace ,但对于已存在的outline仍旧会执行报错
根据下面的步骤 提供一下日志
a.登录系统租户,打开enable_rich_error_msg 参数
alter system set enable_rich_error_msg=true;
b.登录业务租户,执行报错 SQL 语句,会直接返回执行节点 IP 和 trace_id 信息。
obclient [test]> select count(*) from t2;
ERROR 1146 (42S02): Table ‘test.t2’ doesn’t exist
[xx.xx.xx.1:2882] [2024-04-13 20:10:20.292087] [YB420BA1CC68-000615A0A8EA5E38-0-0]
c.去 xx.xx.xx.1 节点过滤日志,如果最新日志无法过滤到,可以正则匹配多个日志进行过滤
[root@x.x.x.1 ~]$ grep “YB420BA1CC68-000615A0A8EA5E38-0-0” rootservice.log
[root@x.x.x.1 ~]$ grep “YB420BA1CC68-000615A0A8EA5E38-0-0” observer.log
d.获取完日志信息后,关闭enable_rich_error_msg参数
alter system set enable_rich_error_msg=false;
不过这边发现你的sql存在不一致问题,一存在的outlin中的sql语句 *号前面少空格。
果然是这样的 老师 少打了一个空格
那按理来说 不应该是通过outline_name 来进行校验吗 不管SQL的内容是什么
不是 or replace的前提是outline name和sql text都相同的
好的谢谢