开发者社区> 问答> 正文

sql parse 打印alter view语句有问题

druid : 1.2.4 and 1.2.5

String sql2 = "ALTER \n" + "ALGORITHM=UNDEFINED \n" + "SQL SECURITY DEFINER \n" + "View test2.v1 AS \n" + "select test_table1.id AS id,test_table1.value AS value from test_table1 ;";

    SQLStatementParser parser2 = SQLParserUtils.createSQLStatementParser(sql2,
            JdbcConstants.MYSQL , false);

    SQLStatement statement = parser2.parseStatement();

    System.out.println(SQLUtils.toSQLString(statement, DbType.mysql,
            new SQLUtils.FormatOption(false,false)));

输出结果:

atler algorithm = UNDEFINED sql security = DEFINER view test2.v1 as select test_table1.id as id, test_table1.value as value from test_table1

问题: (1) sql security = DEFINER 错误,mysql中是 sql security DEFINER,不需要 等号; (2)小写打印, alter 关键字输出有误,atler。

原提问者GitHub用户lawenyuan

展开
收起
山海行 2023-07-05 18:07:39 58 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    能是由于以下原因之一:

    ALTER VIEW 语句语法错误。在编写 ALTER VIEW 语句时,需要确保语法正确,并遵循数据库的语法规范。可以使用 SQL 解析器或者其他方式检查语法错误,并进行修正。

    SQL 解析器版本不兼容。在解析 ALTER VIEW 语句时,需要确保 SQL 解析器的版本支持所使用的语法和选项。如果版本不兼容,可能会导致解析错误。

    ALTER VIEW 语句中包含复杂的语法。如果 ALTER VIEW 语句中包含复杂的语法,例如子查询或者函数调用等,可能会导致解析错误。

    2023-07-30 20:17:21
    赞同 展开评论 打赏
  • 问题已修复,请用新版本

    https://github.com/alibaba/druid/releases/tag/1.2.6

    原回答者GitHub用户wenshao

    2023-07-06 10:43:36
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载