diff --git a/src/pl/ob_pl_stmt.cpp b/src/pl/ob_pl_stmt.cpp index 405c13a41a3f89c8c4e83fbfa1d2f90879ff2a29..d0e57228d1329443dda5866ffb45f774088b52c2 100644 --- a/src/pl/ob_pl_stmt.cpp +++ b/src/pl/ob_pl_stmt.cpp @@ -3067,12 +3067,12 @@ int ObPLBlockNS::get_cursor_by_name(const ObExprResolveContext &ctx, CK (OB_NOT_NULL(get_symbol_table())); for (int64_t i = 0; OB_SUCC(ret) && i < get_cursor_table()->get_count() && !found; i++) { const ObPLCursor *cur = get_cursor_table()->get_cursor(i); - CK (OB_NOT_NULL(cur)); - CK (OB_NOT_NULL(get_symbol_table()->get_symbol(cur->get_index()))); - if (OB_SUCC(ret) && 0 == get_symbol_table()->get_symbol(cur->get_index()) - ->get_name().case_compare(cursor_name)) { - cursor = cur; - found = true; + if (OB_NOT_NULL(cur)) { + const ObPLVar *var = get_symbol_table()->get_symbol(cur->get_index()); + if (OB_NOT_NULL(var) && 0 == var->get_name().case_compare(cursor_name)) { + cursor = cur; + found = true; + } } } if (OB_SUCC(ret) && !found && NULL != pre_ns_) {