
liquibase.ext.ora.merge.MergeChange Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of liquibase-oracle Show documentation
Show all versions of liquibase-oracle Show documentation
Some tags to work on Oracle DB.
package liquibase.ext.ora.merge;
import liquibase.change.AbstractChange;
import liquibase.change.ChangeMetaData;
import liquibase.change.DatabaseChange;
import liquibase.database.Database;
import liquibase.statement.SqlStatement;
@DatabaseChange(name="merge", description = "Merge", priority = ChangeMetaData.PRIORITY_DEFAULT)
public class MergeChange extends AbstractChange {
private String sourceTableName;
private String sourceSchemaName;
private String targetSchemaName;
private String targetTableName;
private String onCondition;
private String updateCondition;
private String deleteCondition;
private String insertCondition;
private String insertColumnsNameList;
private String insertColumnsValueList;
private String updateList;
public String getSourceTableName() {
return sourceTableName;
}
public void setSourceTableName(String sourceTableName) {
this.sourceTableName = sourceTableName;
}
public String getSourceSchemaName() {
return sourceSchemaName;
}
public void setSourceSchemaName(String sourceSchemaName) {
this.sourceSchemaName = sourceSchemaName;
}
public String getTargetSchemaName() {
return targetSchemaName;
}
public void setTargetSchemaName(String targetSchemaName) {
this.targetSchemaName = targetSchemaName;
}
public String getTargetTableName() {
return targetTableName;
}
public void setTargetTableName(String targetTableName) {
this.targetTableName = targetTableName;
}
public String getOnCondition() {
return onCondition;
}
public void setOnCondition(String onCondition) {
this.onCondition = onCondition;
}
public String getUpdateCondition() {
return updateCondition;
}
public void setUpdateCondition(String updateCondition) {
this.updateCondition = updateCondition;
}
public String getDeleteCondition() {
return deleteCondition;
}
public void setDeleteCondition(String deleteCondition) {
this.deleteCondition = deleteCondition;
}
public String getInsertCondition() {
return insertCondition;
}
public void setInsertCondition(String insertCondition) {
this.insertCondition = insertCondition;
}
public String getInsertColumnsNameList() {
return insertColumnsNameList;
}
public void setInsertColumnsNameList(String insertColumnsNameList) {
this.insertColumnsNameList = insertColumnsNameList;
}
public String getInsertColumnsValueList() {
return insertColumnsValueList;
}
public void setInsertColumnsValueList(String insertColumnsValueList) {
this.insertColumnsValueList = insertColumnsValueList;
}
public String getUpdateList() {
return updateList;
}
public void setUpdateList(String updateList) {
this.updateList = updateList;
}
public SqlStatement[] generateStatements(Database database) {
String sourceSchemaName = getSourceSchemaName() == null ? database.getDefaultSchemaName() : getSourceSchemaName();
String targetSchemaName = getTargetSchemaName() == null ? database.getDefaultSchemaName() : getTargetSchemaName();
MergeStatement statement = new MergeStatement(getSourceTableName(), sourceSchemaName, getTargetTableName(),
targetSchemaName);
statement.setOnCondition(getOnCondition());
statement.setDeleteCondition(getDeleteCondition());
statement.setInsertCondition(getInsertCondition());
statement.setUpdateCondition(getUpdateCondition());
statement.setInsertColumnsNameList(getInsertColumnsNameList());
statement.setInsertColumnsValueList(getInsertColumnsValueList());
statement.setUpdateList(getUpdateList());
return new SqlStatement[]{statement};
}
public String getConfirmationMessage() {
return "Tables " + getSourceTableName() + " & " + getTargetTableName() + " merged";
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy