diff --git a/src/sql/resolver/dml/ob_insert_resolver.cpp b/src/sql/resolver/dml/ob_insert_resolver.cpp index 6318462c4a..e7e05aa899 100644 --- a/src/sql/resolver/dml/ob_insert_resolver.cpp +++ b/src/sql/resolver/dml/ob_insert_resolver.cpp @@ -408,11 +408,6 @@ int ObInsertResolver::resolve_insert_field(const ParseNode &insert_into, TableIt OB_ISNULL(ref_stmt = table_item->ref_query_)) { ret = OB_ERR_UNEXPECTED; LOG_WARN("get unexpected error", K(table_item), K(ref_stmt), K(ret)); - } else if (OB_UNLIKELY(ref_stmt->get_from_items().count() != 1)) { - //这里是为了兼容oracle的报错行为,对于直接向子查询插入数据时如果子查询中from项不为1项时,报错这种子查询是非法的, - //其他情形同update view类似判断,这里不再重复判断 - ret = OB_ERR_ILLEGAL_VIEW_UPDATE; - LOG_WARN("not updatable", K(ret)); } else if (OB_FAIL(set_base_table_for_view(*table_item))) { LOG_WARN("set base table for insert view failed", K(ret)); } else {/*do nothing*/} diff --git a/src/sql/resolver/dml/ob_update_resolver.cpp b/src/sql/resolver/dml/ob_update_resolver.cpp index 50aa902b25..a71ee12dcf 100644 --- a/src/sql/resolver/dml/ob_update_resolver.cpp +++ b/src/sql/resolver/dml/ob_update_resolver.cpp @@ -441,19 +441,8 @@ int ObUpdateResolver::resolve_table_list(const ParseNode &parse_tree) LOG_WARN("table node is null"); } else if (OB_FAIL(ObDMLResolver::resolve_table(*table_node, table_item))) { LOG_WARN("failed to resolve table", K(ret)); - //这里是为了兼容oracle的报错行为,对于直接向子查询更新数据时如果子查询中from项不为1项时,报错这种子查询是非法的, - //其他情形同update view类似判断,这里不再重复解决 } else if (OB_FAIL(resolve_foreign_key_constraint(table_item))) { LOG_WARN("failed to resolve foreign key constraint", K(ret), K(table_item->ref_id_)); - } else if (is_oracle_mode() && table_node->num_child_ == 2) { - if (OB_ISNULL(table_item) || (!table_item->is_generated_table() && !table_item->is_temp_table()) || - OB_ISNULL(ref_stmt = table_item->ref_query_)) { - int ret = OB_ERR_UNEXPECTED; - LOG_WARN("get unexpected error", K(table_item), K(ref_stmt), K(ret)); - } else if (OB_UNLIKELY(ref_stmt->get_from_items().count() != 1)) { - ret = OB_ERR_ILLEGAL_VIEW_UPDATE; - LOG_WARN("not updatable", K(ret)); - } else {/*do nothing*/} } else {/*do nothing*/} if (OB_SUCC(ret)) { if (OB_FAIL(column_namespace_checker_.add_reference_table(table_item))) {