fix: oracel sql 参数报错

This commit is contained in:
taojinlong 2022-09-29 16:43:53 +08:00
parent 780fe87ef1
commit 42e5384fb5
3 changed files with 13 additions and 9 deletions

View File

@ -1123,7 +1123,7 @@ public class OracleQueryProvider extends QueryProvider {
whereValue = "'%" + value.get(0) + "%'";
} else if (StringUtils.containsIgnoreCase(request.getOperator(), "between")) {
if (request.getDatasetTableField().getDeType() == 1) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String startTime = simpleDateFormat.format(new Date(Long.parseLong(value.get(0))));
String endTime = simpleDateFormat.format(new Date(Long.parseLong(value.get(1))));
String st = String.format(OracleConstants.TO_DATE, "'" + startTime + "'", OracleConstants.DEFAULT_DATE_FORMAT);

View File

@ -675,7 +675,7 @@ public class ChartViewService {
if (sqlVariables.stream().map(SqlVariableDetails::getVariableName).collect(Collectors.toList()).contains(parameter)) {
hasParameters = true;
}
if (parameter.contains("|DE|") && table.getId().equals(parameter.split("|DE|")[0]) && sqlVariables.stream().map(SqlVariableDetails::getVariableName).collect(Collectors.toList()).contains(parameter.split("|DE|")[1])) {
if (parameter.contains("|DE|") && table.getId().equals(parameter.split("\\|DE\\|")[0]) && sqlVariables.stream().map(SqlVariableDetails::getVariableName).collect(Collectors.toList()).contains(parameter.split("\\|DE\\|")[1])) {
hasParameters = true;
}
}
@ -1611,13 +1611,13 @@ public class ChartViewService {
for (String parameter : chartExtFilterRequest.getParameters()) {
if(parameter.contains("|DE|")){
if(!parameter.split("|DE|")[0].equals(table.getId())){
if(!parameter.split("\\|DE\\|")[0].equals(table.getId())){
continue;
}
List<SqlVariableDetails> parameters = sqlVariables.stream().filter(item -> item.getVariableName().equalsIgnoreCase(parameter.split("|DE|")[1])).collect(Collectors.toList());
List<SqlVariableDetails> parameters = sqlVariables.stream().filter(item -> item.getVariableName().equalsIgnoreCase(parameter.split("\\|DE\\|")[1])).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(parameters)) {
String filter = qp.transFilter(chartExtFilterRequest, parameters.get(0));
sql = sql.replace("${" + parameter.split("|DE|")[1] + "}", filter);
sql = sql.replace("${" + parameter.split("\\|DE\\|")[1] + "}", filter);
}
}else {
List<SqlVariableDetails> parameters = sqlVariables.stream().filter(item -> item.getVariableName().equalsIgnoreCase(parameter)).collect(Collectors.toList());

View File

@ -181,13 +181,17 @@ export default {
watch: {
'childViews.datasetParams': {
handler(newName, oldName) {
if (this.attrs.parameters.length > 0) {
if (this.attrs.parameters.length > 0 && this.attrs.parameters[0].indexOf('|DE|') === -1) {
const parameters = []
for (var i = 0; i < this.attrs.parameters.length; i++) {
for (var j = 0; j < this.childViews.datasetParams.length; j++) {
if (this.childViews.datasetParams[j].id.split('|DE|')[1] === this.attrs.parameters[i]) {
parameters.push(this.childViews.datasetParams[j].id)
if (this.attrs.parameters[i].indexOf('|DE|') === -1) {
for (var j = 0; j < this.childViews.datasetParams.length; j++) {
if (this.childViews.datasetParams[j].id.split('|DE|')[1] === this.attrs.parameters[i]) {
parameters.push(this.childViews.datasetParams[j].id)
}
}
} else {
parameters.push(this.attrs.parameters[i])
}
}
this.attrs.parameters = parameters