0

我正在使用梁 2.19。当我尝试解析一些包含 CREATE EXTERNAL TABLE 的 BEAM Sql 时:

String sql = "CREATE EXTERNAL TABLE ext_table (value INTEGER) TYPE text LOCATION "
    + "'ext_table.csv' TBLPROPERTIES '{\"format: \"Excel\"}';\n"
    + "SELECT * ext_table;";
final SqlParser.ConfigBuilder configBuilder =
    SqlParser.configBuilder()
        .setQuoting(Quoting.BACK_TICK)
        .setUnquotedCasing(Casing.UNCHANGED)
        .setQuotedCasing(Casing.UNCHANGED);
final SqlParser.Config config = configBuilder.build();
SqlParser parser = SqlParser.create(sql, config);
SqlNode rootNode = parser.parseQuery();
System.out.println(rootNode.toString());

我得到了这个例外。

java.lang.RuntimeException: org.apache.calcite.sql.parser.SqlParseException: Encountered "CREATE" at line 1, column 1.
Was expecting one of:
    "ABS" ...
    "ALTER" ...
    "ARRAY" ...
  ....etc

所以我想知道用其中的外部表声明解析 SQL 的正确方法是什么。

4

0 回答 0