diff --git a/src/sql/resolver/dml/ob_dml_resolver.cpp b/src/sql/resolver/dml/ob_dml_resolver.cpp index 1c04fbe26f11ab84211131dc78c2c4124b402218..5b4530a1482e3707493dcd30230848db87c96ec8 100644 --- a/src/sql/resolver/dml/ob_dml_resolver.cpp +++ b/src/sql/resolver/dml/ob_dml_resolver.cpp @@ -6004,7 +6004,7 @@ int ObDMLResolver::deduce_generated_exprs(ObIArray& exprs) { int ret = OB_SUCCESS; ObSEArray generate_exprs; - for (int64_t i = 0; OB_SUCC(ret) && i < exprs.count(); ++i) { + for (int64_t i = 0; OB_SUCC(ret) && !params_.is_from_create_view_ && i < exprs.count(); ++i) { ObRawExpr* expr = exprs.at(i); if (OB_ISNULL(expr)) { ret = OB_ERR_UNEXPECTED; diff --git a/src/sql/resolver/expr/ob_raw_expr_util.cpp b/src/sql/resolver/expr/ob_raw_expr_util.cpp index e277e1b41523d6bc98fb7c857a6c8700daeb2033..4dbe6b52eba919065daf3f74e5e8fc1026fba109 100644 --- a/src/sql/resolver/expr/ob_raw_expr_util.cpp +++ b/src/sql/resolver/expr/ob_raw_expr_util.cpp @@ -1939,6 +1939,7 @@ int ObRawExprUtils::create_substr_expr(ObRawExprFactory& expr_factory, ObSQLSess ret = OB_ERR_UNEXPECTED; LOG_WARN("to_type is null"); } else { + out_expr->set_func_name(N_SUBSTR); if (NULL == third_expr) { if (OB_FAIL(out_expr->set_param_exprs(first_expr, second_expr))) { LOG_WARN("add param expr failed", K(ret));