odc icon indicating copy to clipboard operation
odc copied to clipboard

[Bug]: failed to export result set

Open yhilmare opened this issue 1 year ago • 1 comments

ODC version

4.3.2

OB version

not related

What happened?

I type a query and try to export the result set of it

select *,utl_raw.cast_to_varchar2(DBMS_LOB.SUBSTR(RETMESSAGE,2000,1)) from bj_hxlog where def1 = 'QUERY_PUB' and TRANDATE like '%2024-10-25%'  order by TRANDATE desc ;

and I failed to export this query, the exception is as follow: 截屏2024-10-30 20 31 26

2024-10-30 20:28:23 [INFO] Result set export task starts, working directory:data/RESULT_SET/1000183
2024-10-30 20:28:23 [WARN] Error occurred when start task.
com.oceanbase.odc.core.shared.exception.OBException: Query result metadata failed, please try again, message=SQLException: ORA-00900: invalid SQL statement
	at com.oceanbase.odc.core.shared.exception.OBException.executeFailed(OBException.java:69) ~[odc-core-4.3.2-20241017.jar!/:?]
	at com.oceanbase.odc.service.resultset.ResultSetExportTask.setColumnConfig(ResultSetExportTask.java:263) ~[odc-service-4.3.2-20241017.jar!/:?]
	at com.oceanbase.odc.service.resultset.ResultSetExportTask.convertParam2TransferConfig(ResultSetExportTask.java:217) ~[odc-service-4.3.2-20241017.jar!/:?]
	at com.oceanbase.odc.service.resultset.ResultSetExportTask.<init>(ResultSetExportTask.java:113) ~[odc-service-4.3.2-20241017.jar!/:?]
	at com.oceanbase.odc.service.resultset.DumperResultSetExportTaskManager.start(DumperResultSetExportTaskManager.java:137) ~[odc-service-4.3.2-20241017.jar!/:?]
	at com.oceanbase.odc.service.resultset.ResultSetExportFlowableTask.start(ResultSetExportFlowableTask.java:57) ~[odc-service-4.3.2-20241017.jar!/:?]
	at com.oceanbase.odc.service.resultset.ResultSetExportFlowableTask.start(ResultSetExportFlowableTask.java:35) ~[odc-service-4.3.2-20241017.jar!/:?]
	at com.oceanbase.odc.service.flow.task.BaseODCFlowTaskDelegate.lambda$initCallable$1(BaseODCFlowTaskDelegate.java:236) ~[odc-service-4.3.2-20241017.jar!/:?]
	at com.oceanbase.odc.service.flow.task.BaseRuntimeFlowableDelegate.run(BaseRuntimeFlowableDelegate.java:128) ~[odc-service-4.3.2-20241017.jar!/:?]
	at com.oceanbase.odc.service.flow.task.BaseODCFlowTaskDelegate.run(BaseODCFlowTaskDelegate.java:164) ~[odc-service-4.3.2-20241017.jar!/:?]
	at com.oceanbase.odc.core.flow.BaseFlowableDelegate.execute(BaseFlowableDelegate.java:47) ~[odc-core-4.3.2-20241017.jar!/:?]
	at com.oceanbase.odc.service.flow.task.BaseRuntimeFlowableDelegate.execute(BaseRuntimeFlowableDelegate.java:144) ~[odc-service-4.3.2-20241017.jar!/:?]
	at com.oceanbase.odc.service.flow.task.FlowTaskSubmitter.lambda$execute$2(FlowTaskSubmitter.java:86) ~[odc-service-4.3.2-20241017.jar!/:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_422]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_422]
	at com.oceanbase.odc.common.trace.TraceDecorator.lambda$decorate$0(TraceDecorator.java:40) ~[odc-common-4.3.2-20241017.jar!/:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_422]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_422]
	at java.lang.Thread.run(Thread.java:750) [?:1.8.0_422]

What did you expect to happen?

export the result set normally

How can we reproduce it (as minimally and precisely as possible)?

  1. prepare a table:
CREATE TABLE "BJ_HXLOG" (
  "PK_BJ_HXLOG" CHAR(20) CONSTRAINT "BJ_HXLOG_OBNOTNULL_1704276125686593" NOT NULL ENABLE,
  "CONSUMERSEQNO" VARCHAR2(100),
  "SENDMESSAGE" BLOB,
  "RETCODE" VARCHAR2(100),
  "DEF1" VARCHAR2(202),
  "RETMESSAGE" BLOB,
  "DEF2" VARCHAR2(202),
  "DEF3" VARCHAR2(512),
  "DEF4" VARCHAR2(202),
  "DEF5" VARCHAR2(202),
  "SERVICECODE" VARCHAR2(100),
  "TRANDATE" VARCHAR2(100),
  "TRANTIMESTAMP" VARCHAR2(100),
  "CODEBATCH" VARCHAR2(100),
  "VBILLNO" VARCHAR2(100),
  "PK_GROUP" VARCHAR2(40) DEFAULT '~',
  "PK_ORG" VARCHAR2(40) DEFAULT '~',
  "PK_ORG_V" VARCHAR2(40) DEFAULT '~',
  "ORGCODE" VARCHAR2(100),
  "CREATOR" VARCHAR2(40) DEFAULT '~',
  "CREATIONTIME" CHAR(19),
  "MODIFIER" VARCHAR2(40) DEFAULT '~',
  "MODIFIEDTIME" CHAR(19),
  "CODE" VARCHAR2(100),
  "NAME" VARCHAR2(100),
  "TS" CHAR(19),
  "DR" NUMBER(*,0) DEFAULT 0
) COMPRESS FOR ARCHIVE REPLICA_NUM = 1 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE TABLET_SIZE = 134217728 PCTFREE = 0;
  1. mock data on this table, remember the col DEF1 should be set to 'QUERY_PUB' and the col TRANDATE should be a random date value (from 2024-10-20 ~ 2024-10-31)

Anything else we need to know?

No response

yhilmare avatar Oct 30 '24 12:10 yhilmare

This would be fixed after upgrading ob-loader-dumper to 4.3.x

LuckyPickleZZ avatar Nov 01 '24 08:11 LuckyPickleZZ