Merge branch 'dev' into oracle-schema-export

This commit is contained in:
dawn
2024-03-25 14:58:43 +08:00
committed by GitHub
94 changed files with 2191 additions and 648 deletions

View File

@ -118,7 +118,7 @@ public class OracleMetaData extends DefaultMetaService implements MetaData {
tableColumn.setName(resultSet.getString("COLUMN_NAME"));
tableColumn.setColumnType(resultSet.getString("DATA_TYPE"));
Integer dataPrecision = resultSet.getInt("DATA_PRECISION");
if(dataPrecision!=null) {
if(resultSet.getString("DATA_PRECISION") != null) {
tableColumn.setColumnSize(dataPrecision);
}else {
tableColumn.setColumnSize(resultSet.getInt("DATA_LENGTH"));
@ -249,8 +249,9 @@ public class OracleMetaData extends DefaultMetaService implements MetaData {
return SQLExecutor.getInstance().execute(connection, String.format(TRIGGER_SQL_LIST, schemaName),
resultSet -> {
while (resultSet.next()) {
String triggerName = resultSet.getString("TRIGGER_NAME");
Trigger trigger = new Trigger();
trigger.setTriggerName(resultSet.getString("TRIGGER_NAME"));
trigger.setTriggerName(triggerName==null?"":triggerName.trim());
trigger.setSchemaName(schemaName);
trigger.setDatabaseName(databaseName);
triggers.add(trigger);
@ -263,6 +264,7 @@ public class OracleMetaData extends DefaultMetaService implements MetaData {
public Trigger trigger(Connection connection, @NotEmpty String databaseName, String schemaName,
String triggerName) {
String sql = String.format(TRIGGER_DDL_SQL, schemaName, triggerName);
return SQLExecutor.getInstance().execute(connection, sql, resultSet -> {
Trigger trigger = new Trigger();
@ -330,4 +332,10 @@ public class OracleMetaData extends DefaultMetaService implements MetaData {
public String getMetaDataName(String... names) {
return Arrays.stream(names).filter(name -> StringUtils.isNotBlank(name)).map(name -> "\"" + name + "\"").collect(Collectors.joining("."));
}
@Override
public List<String> getSystemSchemas() {
return systemSchemas;
}
}

View File

@ -2,14 +2,13 @@ package ai.chat2db.plugin.oracle.builder;
import ai.chat2db.plugin.oracle.type.OracleColumnTypeEnum;
import ai.chat2db.plugin.oracle.type.OracleIndexTypeEnum;
import ai.chat2db.spi.SqlBuilder;
import ai.chat2db.spi.jdbc.DefaultSqlBuilder;
import ai.chat2db.spi.model.Table;
import ai.chat2db.spi.model.TableColumn;
import ai.chat2db.spi.model.TableIndex;
import org.apache.commons.lang3.StringUtils;
public class OracleSqlBuilder extends DefaultSqlBuilder implements SqlBuilder {
public class OracleSqlBuilder extends DefaultSqlBuilder {
@Override
public String buildCreateTableSql(Table table) {
StringBuilder script = new StringBuilder();