ob425oracle租户dblink访问oracle19c的xmltype数据类型的数据失败

【 使用环境 】测试环境
【 需求 】排查原因,如果是产品问题,是否有排期修复?
【 OB or 其他组件 】observer4250 oracle租户(单机),oracle19c
【问题描述】ob创建到oracle的dblink,无法访问oracle的xmltype类型的数据,报错:ERROR-64130: Unknown error

oracle19c的建表语句和插入数据sql
CREATE TABLE employees (
emp_id NUMBER PRIMARY KEY,
emp_info XMLType
);

INSERT INTO employees (emp_id, emp_info) VALUES (
1,
XMLType(‘John DoeHR’)
);

而创建一个tt表(id int),插入(1),能通过dblink查询。证明dblink可以使用。

【复现路径】
【附件及日志】
查询employees报错日志
[root@ob1 log]# grep YB42C0A8025B-00064A9432FF29BA-0-0 observer.log
[2026-02-12 06:59:33.724309] WDIAG [LIB.OCI] get_oci_path (ob_oci_environment.cpp:1043) [7253][T1002_L0_G0][T1002][YB42C0A8025B-00064A9432FF29BA-0-0] [lt=4][errcode=0] LD_LIBRARY PATH: (ObString(env_str)=/home/admin/oceanbase/lib:)
[2026-02-12 06:59:34.263836] WDIAG [LIB.OCI] get_next (ob_oci_resultset.cpp:391) [7253][T1002_L0_G0][T1002][YB42C0A8025B-00064A9432FF29BA-0-0] [lt=27][errcode=-4008] oci result failed to get row(ret=-4008)
[2026-02-12 06:59:34.265011] INFO [LIB.OCI] create_dblink_pool (ob_oracle_oci_connection.cpp:541) [7253][T1002_L0_G0][T1002][YB42C0A8025B-00064A9432FF29BA-0-0] [lt=46] new dblink pool created(host_name=192.168.2.69, config_.sqlclient_per_observer_conn_limit_=256)
[2026-02-12 06:59:34.362798] WDIAG [SQL.ENG] combine_link_stmt (ob_link_op.cpp:324) [7253][T1002_L0_G0][T1002][YB42C0A8025B-00064A9432FF29BA-0-0] [lt=12][errcode=0] succ to combine link sql(stmt_buf_=0x7ff522280a20, stmt_buf_pos_=155, ObString(stmt_buf_pos_, stmt_buf_)=select /*+ QUERY_TIMEOUT(10000000) FLASHBACK_READ_TX_UNCOMMITTED */“FORDBA”.“EMPLOYEES”.“EMP_ID”,“FORDBA”.“EMPLOYEES”.“EMP_INFO” from “FORDBA”.“EMPLOYEES”)
[2026-02-12 06:59:34.392212] WDIAG [LIB.OCI] report_error (ob_oci_environment.cpp:1009) [7253][T1002_L0_G0][T1002][YB42C0A8025B-00064A9432FF29BA-0-0] [lt=44][errcode=1406] failed to get error msg(ret=1406, ObString(err_ctx.err_msg_)=ORA-01406: fetched column value was truncated
[2026-02-12 06:59:34.392266] WDIAG [LIB.OCI] inner_get_row (ob_oci_resultset.cpp:113) [7253][T1002_L0_G0][T1002][YB42C0A8025B-00064A9432FF29BA-0-0] [lt=52][errcode=1406] call oci api failed(ret=1406)
[2026-02-12 06:59:34.392281] WDIAG [LIB.OCI] get_next (ob_oci_resultset.cpp:391) [7253][T1002_L0_G0][T1002][YB42C0A8025B-00064A9432FF29BA-0-0] [lt=14][errcode=1406] oci result failed to get row(ret=1406)
[2026-02-12 06:59:34.392286] WDIAG [LIB.OCI] next (ob_dblink_oracle_result.cpp:60) [7253][T1002_L0_G0][T1002][YB42C0A8025B-00064A9432FF29BA-0-0] [lt=4][errcode=1406] failed to get result(ret=1406)
[2026-02-12 06:59:34.392291] WDIAG [SQL.ENG] fetch_row (ob_link_scan_op.cpp:410) [7253][T1002_L0_G0][T1002][YB42C0A8025B-00064A9432FF29BA-0-0] [lt=5][errcode=1406] failed to get next row(ret=1406)
[2026-02-12 06:59:34.392296] WDIAG [SQL.ENG] inner_get_next_batch (ob_link_scan_op.cpp:499) [7253][T1002_L0_G0][T1002][YB42C0A8025B-00064A9432FF29BA-0-0] [lt=4][errcode=1406] inner get next row failed(ret=1406)
[2026-02-12 06:59:34.392302] WDIAG [SQL.ENG] get_next_batch (ob_operator.cpp:1156) [7253][T1002_L0_G0][T1002][YB42C0A8025B-00064A9432FF29BA-0-0] [lt=4][errcode=1406] get next batch failed(ret=1406, eval_ctx={batch_idx:0, batch_size:16, max_batch_size:16, frames_:0x7ff5222798a0}, id=0, op_name=“PHY_LINK_SCAN”)
[2026-02-12 06:59:34.392313] WDIAG [SQL.ENG] get_next_row (ob_operator.cpp:1459) [7253][T1002_L0_G0][T1002][YB42C0A8025B-00064A9432FF29BA-0-0] [lt=10][errcode=1406] get next batch failed(ret=1406)
[2026-02-12 06:59:34.392318] WDIAG [SQL] inner_get_next_row (ob_result_set.cpp:481) [7253][T1002_L0_G0][T1002][YB42C0A8025B-00064A9432FF29BA-0-0] [lt=3][errcode=1406] get next row from exec result failed(ret=1406)
[2026-02-12 06:59:34.392323] WDIAG [SERVER] response_query_result (ob_query_driver.cpp:332) [7253][T1002_L0_G0][T1002][YB42C0A8025B-00064A9432FF29BA-0-0] [lt=5][errcode=1406] fail to iterate and response(ret=1406, row_num=0, can_retry=true)
[2026-02-12 06:59:34.392330] WDIAG [SERVER] response_result (ob_sync_plan_driver.cpp:104) [7253][T1002_L0_G0][T1002][YB42C0A8025B-00064A9432FF29BA-0-0] [lt=6][errcode=1406] response query result fail(ret=1406)
[2026-02-12 06:59:34.392337] WDIAG [SERVER] after_func (ob_query_retry_ctrl.cpp:1043) [7253][T1002_L0_G0][T1002][YB42C0A8025B-00064A9432FF29BA-0-0] [lt=4][errcode=1406] [RETRY] check if need retry(v={force_local_retry:false, stmt_retry_times:0, local_retry_times:0, err_:1406, err_:“Unknown error”, retry_type:0, client_ret:1406}, need_retry=false)
[2026-02-12 06:59:34.392346] WDIAG [SERVER] response_result (ob_sync_plan_driver.cpp:116) [7253][T1002_L0_G0][T1002][YB42C0A8025B-00064A9432FF29BA-0-0] [lt=8][errcode=1406] result response failed, check if need retry(ret=1406, cli_ret=1406, retry_ctrl_.need_retry()=0)
[2026-02-12 06:59:34.392410] WDIAG [SERVER] response_result (ob_sync_plan_driver.cpp:126) [7253][T1002_L0_G0][T1002][YB42C0A8025B-00064A9432FF29BA-0-0] [lt=4][errcode=1406] close result set fail(cret=1406)
[2026-02-12 06:59:34.392488] INFO [SERVER] send_error_packet (obmp_packet_sender.cpp:380) [7253][T1002_L0_G0][T1002][YB42C0A8025B-00064A9432FF29BA-0-0] [lt=10] sending error packet(ob_error=1406, client error=-1, extra_err_info=NULL, lbt()=“0x17d83636 0xc5d53e0 0xc577835 0x21e1d8d6 0x21e81f8a 0x21fc8eb2 0x21ff0b12 0x22355172 0xc4ac054 0x220d9a8a 0x7ff62080cea5 0x7ff62053596d”)
[2026-02-12 06:59:34.392545] WDIAG [SERVER] do_process (obmp_query.cpp:834) [7253][T1002_L0_G0][T1002][YB42C0A8025B-00064A9432FF29BA-0-0] [lt=39][errcode=1406] execute query fail(ret=1406, timeout_timestamp=1770850783724081)
[2026-02-12 06:59:34.392646] WDIAG [SQL.PC] common_free (ob_lib_cache_object_manager.cpp:141) [7253][T1002_L0_G0][T1002][YB42C0A8025B-00064A9432FF29BA-0-0] [lt=7][errcode=0] set logical del time(cache_obj->get_logical_del_time()=5113532893, cache_obj->added_lc()=false, cache_obj->get_object_id()=566, cache_obj->get_tenant_id()=1002, lbt()=“0x17d83636 0xd11822e 0x21e3942c 0x21e836db 0x21fc8eb2 0x21ff0b12 0x22355172 0xc4ac054 0x220d9a8a 0x7ff62080cea5 0x7ff62053596d”)
[root@ob1 log]#

查询tt表成功日志
[root@ob1 log]# grep YB42C0A8025B-00064A9432FF2D6C-0-0 observer.log
[2026-02-12 07:08:44.928648] WDIAG [LIB.OCI] get_next (ob_oci_resultset.cpp:391) [7263][T1002_L0_G0][T1002][YB42C0A8025B-00064A9432FF2D6C-0-0] [lt=44][errcode=-4008] oci result failed to get row(ret=-4008)
[2026-02-12 07:08:44.932300] WDIAG [SQL.ENG] combine_link_stmt (ob_link_op.cpp:324) [7263][T1002_L0_G0][T1002][YB42C0A8025B-00064A9432FF2D6C-0-0] [lt=45][errcode=0] succ to combine link sql(stmt_buf_=0x7ff53087ff00, stmt_buf_pos_=105, ObString(stmt_buf_pos_, stmt_buf_)=select /*+ QUERY_TIMEOUT(10000000) FLASHBACK_READ_TX_UNCOMMITTED */“FORDBA”.“TT”.“ID” from “FORDBA”.“TT”)
[2026-02-12 07:08:44.945817] WDIAG [LIB.OCI] get_next (ob_oci_resultset.cpp:391) [7263][T1002_L0_G0][T1002][YB42C0A8025B-00064A9432FF2D6C-0-0] [lt=45][errcode=-4008] oci result failed to get row(ret=-4008)
[2026-02-12 07:08:44.946002] WDIAG [SQL.PC] common_free (ob_lib_cache_object_manager.cpp:141) [7263][T1002_L0_G0][T1002][YB42C0A8025B-00064A9432FF2D6C-0-0] [lt=49][errcode=0] set logical del time(cache_obj->get_logical_del_time()=5664086273, cache_obj->added_lc()=false, cache_obj->get_object_id()=645, cache_obj->get_tenant_id()=1002, lbt()=“0x17d83636 0xd11822e 0x21e3942c 0x21e836db 0x21fc8eb2 0x21ff0b12 0x22355172 0xc4ac054 0x220d9a8a 0x7ff62080cea5 0x7ff62053596d”)
[root@ob1 log]#

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

您好,您提的这个技术问题可能牵涉到 OceanBase 企业版范围内的功能细节;针对此类问题,建议你通过以下方式寻求帮助:

  1. 如你所在的企业客户已签署 OceanBase 企业版销售合同,请你联系客户经理;

  2. 如你所在的企业客户尚未签署 OceanBase 企业版销售合同,你可通过OceanBase官网商务咨询页面留下你的联系方式,OceanBase企业版的业务顾问会在一个工作日内与你联系。

另外,我们欢迎你使用社区版,并在论坛/社群中分享你对社区版本的想法、经验和问题,与其他社区成员共同交流。

(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)

3 个赞

创建dblink语句
CREATE DATABASE LINK emp CONNECT TO FORDBA@oracle IDENTIFIED BY 123456 OCI HOST ‘192.168.2.69:1521/alben’;

2 个赞

插入sql更正为下图
注:是/name,不是换行,是/department,不是换行

1 个赞

这里有明确的报错,搜了下这个报错是返回的结果超过缓冲区长度,你用substr截取部分结果试试呢

https://www.oceanbase.com/knowledge-base/oceanbase-database-20000045543

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001500309

1 个赞