diff --git a/plugins/org.jkiss.dbeaver.ext.db2/plugin.xml b/plugins/org.jkiss.dbeaver.ext.db2/plugin.xml
index fc06013edd30d75dc11e24a76c17dc47c6b475f0..7fa473e21db9d39a2362a48f436ea5f7be459295 100644
--- a/plugins/org.jkiss.dbeaver.ext.db2/plugin.xml
+++ b/plugins/org.jkiss.dbeaver.ext.db2/plugin.xml
@@ -156,12 +156,12 @@
visibleIf="object.dataSource.atLeastV9_7" >
-
+
-
+
diff --git a/plugins/org.jkiss.dbeaver.ext.hana/plugin.xml b/plugins/org.jkiss.dbeaver.ext.hana/plugin.xml
index 1a12e73e8cb817b2e9e85e5fcbfd17cc48f9d701..bed0e7db58e3829bf3debb662c67ee07d33a9529 100644
--- a/plugins/org.jkiss.dbeaver.ext.hana/plugin.xml
+++ b/plugins/org.jkiss.dbeaver.ext.hana/plugin.xml
@@ -67,7 +67,7 @@
-
+
@@ -77,7 +77,7 @@
-
+
diff --git a/plugins/org.jkiss.dbeaver.ext.oracle/OSGI-INF/l10n/bundle.properties b/plugins/org.jkiss.dbeaver.ext.oracle/OSGI-INF/l10n/bundle.properties
index a224c6a7ea21d28bcea1a48a0e1b7d7571d4a437..a4d989f1dd8c2700457f6acde921ceaccf11ea25 100644
--- a/plugins/org.jkiss.dbeaver.ext.oracle/OSGI-INF/l10n/bundle.properties
+++ b/plugins/org.jkiss.dbeaver.ext.oracle/OSGI-INF/l10n/bundle.properties
@@ -59,6 +59,8 @@ tree.packages.node.name=Packages
tree.package.node.name=Package
tree.procedures.node.name=Procedures
tree.procedure.node.name=Procedure
+tree.functions.node.name=Functions
+tree.function.node.name=Function
tree.synonyms.node.name=Synonyms
tree.synonym.node.name=Synonym
tree.database_links.node.name=Database Links
diff --git a/plugins/org.jkiss.dbeaver.ext.oracle/OSGI-INF/l10n/bundle_ru.properties b/plugins/org.jkiss.dbeaver.ext.oracle/OSGI-INF/l10n/bundle_ru.properties
index 4f4aa918dbfc3ce73e17d0e99ff54b4dc72ebfb9..78b95fdfce5ddae005fb7a50fe91ee17ca8490b9 100644
--- a/plugins/org.jkiss.dbeaver.ext.oracle/OSGI-INF/l10n/bundle_ru.properties
+++ b/plugins/org.jkiss.dbeaver.ext.oracle/OSGI-INF/l10n/bundle_ru.properties
@@ -42,6 +42,8 @@ tree.packages.node.name=\u041F\u0430\u043A\u0435\u0442\u044B
tree.package.node.name=\u041F\u0430\u043A\u0435\u0442
tree.procedures.node.name=\u041F\u0440\u043E\u0446\u0435\u0434\u0443\u0440\u044B
tree.procedure.node.name=\u041F\u0440\u043E\u0446\u0435\u0434\u0443\u0440\u0430
+tree.functions.node.name=\u0424\u0443\u043D\u043A\u0446\u0438\u0438
+tree.function.node.name=\u0424\u0443\u043D\u043A\u0446\u0438\u044F
tree.synonyms.node.name=\u0421\u0438\u043D\u043E\u043D\u0438\u043C\u044B
tree.synonym.node.name=\u0421\u0438\u043D\u043E\u043D\u0438\u043C
tree.database_links.node.name=\u0421\u0441\u044B\u043B\u043A\u0438 \u043D\u0430 \u0411\u0414
@@ -231,8 +233,8 @@ meta.org.jkiss.dbeaver.ext.oracle.model.OracleTable.nested.name=\u0412\u043B\u04
meta.org.jkiss.dbeaver.ext.oracle.model.OracleTable.nested.description=\u041E\u0431\u043E\u0437\u043D\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043E \u0442\u0430\u0431\u043B\u0438\u0446\u0430 - \u0432\u043B\u043E\u0436\u0435\u043D\u043D\u0430\u044F
meta.org.jkiss.dbeaver.ext.oracle.model.OracleTableBase.name.name=\u0418\u043C\u044F
meta.org.jkiss.dbeaver.ext.oracle.model.OracleTableBase.name.description=\u0418\u043C\u044F \u0442\u0430\u0431\u043B\u0438\u0446\u044B
-meta.org.jkiss.dbeaver.ext.oracle.model.OracleTableBase.comment.name=\u041A\u043E\u043C\u0435\u043D\u0442\u0440\u0438\u0439
-meta.org.jkiss.dbeaver.ext.oracle.model.OracleTableBase.comment.description=\u041A\u043E\u043C\u0435\u043D\u0442\u0440\u0438\u0439 \u0442\u0430\u0431\u043B\u0438\u0446\u044B
+meta.org.jkiss.dbeaver.ext.oracle.model.OracleTableBase.comment.name=\u041A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439
+meta.org.jkiss.dbeaver.ext.oracle.model.OracleTableBase.comment.description=\u041A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439 \u0442\u0430\u0431\u043B\u0438\u0446\u044B
meta.org.jkiss.dbeaver.ext.oracle.model.OracleTableBase.objectState.name=\u0421\u0442\u0430\u0442\u0443\u0441
meta.org.jkiss.dbeaver.ext.oracle.model.OracleTableColumn.fullTypeName.name=\u0422\u0438\u043F
meta.org.jkiss.dbeaver.ext.oracle.model.OracleTableColumn.fullTypeName.description=\u0422\u0438\u043F \u0434\u0430\u043D\u043D\u044B\u0445 \u043A\u043E\u043B\u043E\u043D\u043A\u0438
diff --git a/plugins/org.jkiss.dbeaver.ext.oracle/plugin.xml b/plugins/org.jkiss.dbeaver.ext.oracle/plugin.xml
index 927e0aa48f8c698ff1973462ed6d5c65b3cf86b1..c81449d0d0c7d9da2b88876de6027a654e0b5abc 100644
--- a/plugins/org.jkiss.dbeaver.ext.oracle/plugin.xml
+++ b/plugins/org.jkiss.dbeaver.ext.oracle/plugin.xml
@@ -165,7 +165,22 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -188,8 +203,8 @@
-
-
+
+
@@ -201,6 +216,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/model/OraclePackage.java b/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/model/OraclePackage.java
index 25a837c626b257f00d7e8fd04d6885b0c25dc597..0c8b70307821167261d44622ca447ab6e50bcbb6 100644
--- a/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/model/OraclePackage.java
+++ b/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/model/OraclePackage.java
@@ -40,11 +40,13 @@ import org.jkiss.dbeaver.model.struct.DBSObjectContainer;
import org.jkiss.dbeaver.model.struct.DBSObjectState;
import org.jkiss.dbeaver.model.struct.rdb.DBSPackage;
import org.jkiss.dbeaver.model.struct.rdb.DBSProcedureContainer;
+import org.jkiss.dbeaver.model.struct.rdb.DBSProcedureType;
import org.jkiss.utils.CommonUtils;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.*;
+import java.util.stream.Collectors;
/**
* GenericProcedure
@@ -116,13 +118,29 @@ public class OraclePackage extends OracleSchemaObject
}
@Association
- public Collection getProcedures(DBRProgressMonitor monitor) throws DBException {
- return proceduresCache.getAllObjects(monitor, this);
+ public Collection getDependencies(DBRProgressMonitor monitor) {
+ return OracleDependencyGroup.of(this);
}
@Association
- public Collection getDependencies(DBRProgressMonitor monitor) {
- return OracleDependencyGroup.of(this);
+ public Collection getProceduresOnly(DBRProgressMonitor monitor) throws DBException {
+ return getProcedures(monitor)
+ .stream()
+ .filter(proc -> proc.getProcedureType() == DBSProcedureType.PROCEDURE)
+ .collect(Collectors.toList());
+ }
+
+ @Association
+ public Collection getFunctionsOnly(DBRProgressMonitor monitor) throws DBException {
+ return getProcedures(monitor)
+ .stream()
+ .filter(proc -> proc.getProcedureType() == DBSProcedureType.FUNCTION)
+ .collect(Collectors.toList());
+ }
+
+ @Association
+ public Collection getProcedures(DBRProgressMonitor monitor) throws DBException {
+ return proceduresCache.getAllObjects(monitor, this);
}
@Override
diff --git a/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/model/OracleSchema.java b/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/model/OracleSchema.java
index a7676089f2f877934c738dbf6fd3524bdb07ccaa..f1cf1eaaacabf8c5f2bec5e7c3daee5e34715434 100644
--- a/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/model/OracleSchema.java
+++ b/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/model/OracleSchema.java
@@ -40,6 +40,7 @@ import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.struct.DBSEntity;
import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.dbeaver.model.struct.rdb.DBSProcedureContainer;
+import org.jkiss.dbeaver.model.struct.rdb.DBSProcedureType;
import org.jkiss.dbeaver.model.struct.rdb.DBSSchema;
import org.jkiss.utils.ArrayUtils;
import org.jkiss.utils.CommonUtils;
@@ -47,6 +48,7 @@ import org.jkiss.utils.CommonUtils;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.*;
+import java.util.stream.Collectors;
/**
* OracleSchema
@@ -252,6 +254,22 @@ public class OracleSchema extends OracleGlobalObject implements DBSSchema, DBPRe
return packageCache.getAllObjects(monitor, this);
}
+ @Association
+ public Collection getProceduresOnly(DBRProgressMonitor monitor) throws DBException {
+ return getProcedures(monitor)
+ .stream()
+ .filter(proc -> proc.getProcedureType() == DBSProcedureType.PROCEDURE)
+ .collect(Collectors.toList());
+ }
+
+ @Association
+ public Collection getFunctionsOnly(DBRProgressMonitor monitor) throws DBException {
+ return getProcedures(monitor)
+ .stream()
+ .filter(proc -> proc.getProcedureType() == DBSProcedureType.FUNCTION)
+ .collect(Collectors.toList());
+ }
+
@Association
public Collection getProcedures(DBRProgressMonitor monitor)
throws DBException