diff --git a/src/pl/ob_pl_user_type.cpp b/src/pl/ob_pl_user_type.cpp index a94e881081..39ae365823 100644 --- a/src/pl/ob_pl_user_type.cpp +++ b/src/pl/ob_pl_user_type.cpp @@ -3570,10 +3570,20 @@ int ObPLCollection::deep_copy(ObPLCollection *src, ObIAllocator *allocator, bool } else if (ignore_del_element && !is_associative_array()) { set_first(1); set_last(k); +#ifdef OB_BUILD_ORACLE_PL + } else if (PL_ASSOCIATIVE_ARRAY_TYPE == src->get_type()) { + set_first(static_cast(src)->get_first()); + set_last(static_cast(src)->get_last()); +#endif } else { set_first(src->get_first()); set_last(src->get_last()); } +#ifdef OB_BUILD_ORACLE_PL + } else if (PL_ASSOCIATIVE_ARRAY_TYPE == src->get_type()) { + set_first(static_cast(src)->get_first()); + set_last(static_cast(src)->get_last()); +#endif } else { set_first(src->get_first()); set_last(src->get_last());