Skip to content

Conversation

@ting-lan-wang
Copy link
Contributor

@ting-lan-wang ting-lan-wang commented Oct 29, 2025

Description

Fixes the failing pipeline in main.

After pull request #103 was merged, the column type of the struct field datatypes.JSON correctly changed from VARCHAR2(4000) to JSON.
However, since JSON is not yet supported in PL/SQL collections during bulk insert or merge operations, we’ve updated the logic so that the json case falls through to use the same types as the string case.

Below is an example showing the behavior before and after the change:

Before:

CREATE TABLE "batch_json_records" ("record_id" NUMBER(20) GENERATED BY DEFAULT AS IDENTITY,"doc" VARCHAR2(4000),PRIMARY KEY ("record_id")) TABLESPACE SYSAUX

After:

CREATE TABLE "batch_json_records" ("record_id" NUMBER(20) GENERATED BY DEFAULT AS IDENTITY,"doc" JSON,PRIMARY KEY ("record_id")) TABLESPACE SYSAUX

Both before and after generate the following PL/SQL string:

DECLARE
  TYPE t_record IS RECORD (
    "record_id" "batch_json_records"."record_id"%TYPE,
    "doc" "batch_json_records"."doc"%TYPE
  );
  TYPE t_records IS TABLE OF t_record;
  l_inserted_records t_records;
  TYPE t_col_0_array IS TABLE OF VARCHAR(4000);
  l_col_0_array t_col_0_array;
<trimmed>

Type of change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)

@oracle-contributor-agreement oracle-contributor-agreement bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label Oct 29, 2025
@ting-lan-wang ting-lan-wang merged commit bf6e164 into main Oct 31, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

OCA Verified All contributors have signed the Oracle Contributor Agreement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants