feat: 支持oracle

This commit is contained in:
taojinlong 2021-06-30 14:01:46 +08:00
parent b57e71cee6
commit 3c58ffbac3
2 changed files with 4 additions and 5 deletions

View File

@ -26,6 +26,7 @@ public class OracleQueryProvider extends QueryProvider {
public Integer transFieldType(String field) {
switch (field) {
case "CHAR":
case "VARCHAR2":
case "VARCHAR":
case "TEXT":
case "TINYTEXT":
@ -69,7 +70,7 @@ public class OracleQueryProvider extends QueryProvider {
@Override
public String createSQLPreview(String sql, String orderBy) {
return "SELECT * FROM (" + sqlFix(sql) + ") AS tmp ORDER BY null " + " LIMIT 0,1000";
return "SELECT * FROM (" + sqlFix(sql) + ") AS tmp " + " WHERE rownum <= 1000";
}
@Override
@ -102,7 +103,7 @@ public class OracleQueryProvider extends QueryProvider {
}
return stringBuilder.toString();
}).toArray(String[]::new);
return MessageFormat.format("SELECT {0} FROM {1} ORDER BY null", StringUtils.join(array, ","), table);
return MessageFormat.format("SELECT {0} FROM {1} ", StringUtils.join(array, ","), table);
}
@Override
@ -112,7 +113,7 @@ public class OracleQueryProvider extends QueryProvider {
@Override
public String createQuerySQLWithPage(String table, List<DatasetTableField> fields, Integer page, Integer pageSize, Integer realSize) {
return createQuerySQL(table, fields) + " LIMIT " + (page - 1) * pageSize + "," + realSize;
return createQuerySQL(table, fields) + " where rownum <= " + page * realSize + " minus " + createQuerySQL(table, fields) + " where rownum <= " + (page - 1) * pageSize;
}
@Override

View File

@ -649,8 +649,6 @@ public class ExtractDataService {
break;
case oracle:
OracleConfigration oracleConfigration = new Gson().fromJson(datasource.getConfiguration(), OracleConfigration.class);
System.out.println(new Gson().toJson(oracleConfigration));
System.out.println(oracleConfigration.getConnectionType().equalsIgnoreCase("serviceName"));
if(oracleConfigration.getConnectionType().equalsIgnoreCase("serviceName")){
String database = "(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = ORACLE_HOSTNAME)(PORT = ORACLE_PORT))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = ORACLE_SERVICE_NAME )))".replace("ORACLE_HOSTNAME", oracleConfigration.getHost()).replace("ORACLE_PORT", oracleConfigration.getPort().toString()).replace("ORACLE_SERVICE_NAME", oracleConfigration.getDataBase());
dataMeta = new DatabaseMeta("db", "ORACLE", "Native", "", database, "-1", oracleConfigration.getUsername(), oracleConfigration.getPassword());