diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractDatabaseFetchProcessor.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractDatabaseFetchProcessor.java index e13f9de836..3da8a73f18 100644 --- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractDatabaseFetchProcessor.java +++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractDatabaseFetchProcessor.java @@ -260,7 +260,7 @@ public abstract class AbstractDatabaseFetchProcessor extends AbstractSessionFact if (StringUtils.isEmpty(sqlQuery)) { query = dbAdapter.getSelectStatement(tableName, maxValueColumnNames, "1 = 0", null, null, null); } else { - StringBuilder sbQuery = getWrappedQuery(sqlQuery, tableName); + StringBuilder sbQuery = getWrappedQuery(dbAdapter, sqlQuery, tableName); sbQuery.append(" WHERE 1=0"); query = sbQuery.toString(); @@ -312,8 +312,8 @@ public abstract class AbstractDatabaseFetchProcessor extends AbstractSessionFact } } - protected static StringBuilder getWrappedQuery(String sqlQuery, String tableName){ - return new StringBuilder("SELECT * FROM (" + sqlQuery + ") AS " + tableName); + protected static StringBuilder getWrappedQuery(DatabaseAdapter dbAdaper, String sqlQuery, String tableName) { + return new StringBuilder("SELECT * FROM (" + sqlQuery + ") " + dbAdaper.getTableAliasClause(tableName)); } protected static String getMaxValueFromRow(ResultSet resultSet, diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/QueryDatabaseTable.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/QueryDatabaseTable.java index f0efbb031e..1923e2c1ba 100644 --- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/QueryDatabaseTable.java +++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/QueryDatabaseTable.java @@ -461,7 +461,7 @@ public class QueryDatabaseTable extends AbstractDatabaseFetchProcessor { if (StringUtils.isEmpty(sqlQuery)) { query = new StringBuilder(dbAdapter.getSelectStatement(tableName, columnNames, null, null, null, null)); } else { - query = getWrappedQuery(sqlQuery, tableName); + query = getWrappedQuery(dbAdapter, sqlQuery, tableName); } List whereClauses = new ArrayList<>(); diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/DatabaseAdapter.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/DatabaseAdapter.java index 211d4c89f8..e1251c4767 100644 --- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/DatabaseAdapter.java +++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/DatabaseAdapter.java @@ -67,4 +67,8 @@ public interface DatabaseAdapter { default String unwrapIdentifier(String identifier) { return identifier == null ? null : identifier.replaceAll("\"", ""); } + + default String getTableAliasClause(String tableName) { + return "AS " + tableName; + } } diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/impl/Oracle12DatabaseAdapter.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/impl/Oracle12DatabaseAdapter.java index c128ed17d0..18f3ceb209 100644 --- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/impl/Oracle12DatabaseAdapter.java +++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/impl/Oracle12DatabaseAdapter.java @@ -88,4 +88,9 @@ public class Oracle12DatabaseAdapter implements DatabaseAdapter { return query.toString(); } + + @Override + public String getTableAliasClause(String tableName) { + return tableName; + } } diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/impl/OracleDatabaseAdapter.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/impl/OracleDatabaseAdapter.java index 5a1f099024..bfaac8bcbb 100644 --- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/impl/OracleDatabaseAdapter.java +++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/db/impl/OracleDatabaseAdapter.java @@ -102,4 +102,9 @@ public class OracleDatabaseAdapter implements DatabaseAdapter { return query.toString(); } + + @Override + public String getTableAliasClause(String tableName) { + return tableName; + } }