Java 如何在ApacheCalcite中插入数据
我通过ApacheCalcite将数据表单SQL插入到文件中Java 如何在ApacheCalcite中插入数据,java,sql-server,jakarta-ee,apache-calcite,Java,Sql Server,Jakarta Ee,Apache Calcite,我通过ApacheCalcite将数据表单SQL插入到文件中 Class.forName("org.apache.calcite.jdbc.Driver"); Connection connection = DriverManager.getConnection("jdbc:calcite:"); CalciteConnection calciteConnection = connection.unwrap(CalciteConnection.class); SchemaPlus roo
Class.forName("org.apache.calcite.jdbc.Driver");
Connection connection = DriverManager.getConnection("jdbc:calcite:");
CalciteConnection calciteConnection = connection.unwrap(CalciteConnection.class);
SchemaPlus rootSchema = calciteConnection.getRootSchema();
JdbcSchema jdbcSchema = JdbcSchema.create(rootSchema, "TRUNKDB", dataSource, null, "dbo");
rootSchema.add("XXXX", jdbcSchema);
/*CSV Schema*/
File csvDir = new File("/home/nanobi/Drill/CSV/");
// SchemaPlus schema = rootSchema.add("s", new CsvSchema(csvDir,null));
rootSchema.add("CSV", new CsvSchema(csvDir, Flavor.SCANNABLE));
Statement statement = connection.createStatement();
int resultSet = statement.executeUpdate("INSERT into \"CSV\".\"p\"(\"Name\") select \"name\" from \"TRUNKDB\".\"nbmdc_nanomarts\"");
我犯了一个错误
Exception in thread "main" java.sql.SQLException: Error while executing SQL "INSERT into "CSV"."p"("Name") select 'p' from "TRUNKDB"."nbmdc_nanomarts"": Node [rel#29:Subset#3.ENUMERABLE.[]] could not be implemented; planner state:
Root: rel#29:Subset#3.ENUMERABLE.[]
Original rel:
Sets:
Set#0, type: RecordType(VARCHAR(45) row_id, VARCHAR(45) si_id, VARCHAR(500) name, VARCHAR(500) description, VARCHAR(255) icon_path,
VARCHAR(255) icon_content, VARCHAR(255) active_flag, TIMESTAMP(3)
created_datetime, VARCHAR(45) created_by_user_id, TIMESTAMP(3)
updated_datetime, VARCHAR(45) updated_by_user_id, VARCHAR(500)
nanomart_xml_filepath, VARCHAR(255) db_username, VARCHAR(255)
db_user_password, VARCHAR(255) dbase_name, VARCHAR(255) db_url,
VARCHAR(255) db_schema_name, CHAR(1) is_mandatory, CHAR(1)
is_load_lock, VARCHAR(45) mart_type, VARCHAR(255) db_driver,
VARCHAR(255) load_frequency, CHAR(1) is_date_table, CHAR(1) is_alias,
VARCHAR(500) nbmdc_n, VARCHAR(45) master_flag, VARCHAR(50)
nbmdm_repository_row_id, CHAR(1) is_hierarchical, VARCHAR(4000)
inplacedetail)
rel#8:Subset#0.JDBC.TRUNKDB.[], best=rel#0, importance=0.6561
rel#0:JdbcTableScan.JDBC.TRUNKDB.[](table=[TRUNKDB, nbmdc_nanomarts]), rowcount=100.0, cumulative cost={100.0 rows, 101.0
cpu, 0.0 io}
不幸的是方解石目前不支持修改CSV文件。仅对JDBC表进行了修改。statement.executeUpdate(“插入\“TRUNKDB\”table3\”(\“name\”)。从\“CSV\”branchmerge\“b”中选择b.BRANCH\u代码);现在我插入到MSSQL,它显示相同的错误抱歉,它不清楚。修改支持不是开箱即用的。在这方面已经做了一些工作,但支持还没有完成。我想知道现在我们是否可以执行插入和更新到CSV?