From 37ec39ff51c4e81249bc69be90ff9b8b4435977b Mon Sep 17 00:00:00 2001 From: LonwoLonwo Date: Fri, 6 Nov 2020 17:17:52 +0300 Subject: [PATCH] #9858 naming fixed, into German localized --- .../ui/internal/OracleUIMessages.properties | 6 +- .../internal/OracleUIMessages_de.properties | 13 + .../internal/OracleUIMessages_ru.properties | 4 +- .../ui/views/OracleConnectionExtraPage.java | 12 +- .../ext/oracle/model/OracleConstants.java | 454 +++++++++--------- .../ext/oracle/model/OracleSchema.java | 8 +- 6 files changed, 255 insertions(+), 242 deletions(-) diff --git a/plugins/org.jkiss.dbeaver.ext.oracle.ui/src/org/jkiss/dbeaver/ext/oracle/ui/internal/OracleUIMessages.properties b/plugins/org.jkiss.dbeaver.ext.oracle.ui/src/org/jkiss/dbeaver/ext/oracle/ui/internal/OracleUIMessages.properties index 1f734787e9..100a06b92c 100644 --- a/plugins/org.jkiss.dbeaver.ext.oracle.ui/src/org/jkiss/dbeaver/ext/oracle/ui/internal/OracleUIMessages.properties +++ b/plugins/org.jkiss.dbeaver.ext.oracle.ui/src/org/jkiss/dbeaver/ext/oracle/ui/internal/OracleUIMessages.properties @@ -80,11 +80,11 @@ edit_create_checkbox_content_group_show_description = Always shows DBA-related m edit_create_checkbox_content_group_use = Always use DBA_* views edit_create_checkbox_content_group_use_description = Use DBA_* views instead of ALL_* views wherever it is possible edit_create_checkbox_content_group_use_sys_schema = Use SYS schema prefix -edit_create_checkbox_content_group_use_sys_schema_description = Use SYS schema prefix in all metadataa queries. Otherwise use view names without explicit schema. +edit_create_checkbox_content_group_use_sys_schema_description = Use SYS schema prefix in all metadata queries. Otherwise use view names without explicit schema. edit_create_checkbox_content_group_use_simple_constraints = Simple constraint reading query edit_create_checkbox_content_group_use_simple_constraints_description = Use simple metadata queries. May work slower but it is more stable for all Oracle versions. -edit_create_checkbox_content_group_use_another_table_query = Use another table metadata query -edit_create_checkbox_content_group_use_another_table_query_description = Use another table metadata query. It helps in some cases speed up reading of table data +edit_create_checkbox_content_group_use_another_table_query = Use UNION for table metadata reading +edit_create_checkbox_content_group_use_another_table_query_description = Use legacy table metadata query. With UNION instead JOIN. It helps in some cases speed up reading of table data. dialog_controlgroup_performance = Performance edit_create_checkbox_group_use_rule = Use RULE hint for system catalog queries edit_create_checkbox_adds_rule_tool_tip_text = Adds RULE hint for some system catalog queries (like columns and constraints reading).\nIt significantly increases performance on some Oracle databases (and decreases on others). diff --git a/plugins/org.jkiss.dbeaver.ext.oracle.ui/src/org/jkiss/dbeaver/ext/oracle/ui/internal/OracleUIMessages_de.properties b/plugins/org.jkiss.dbeaver.ext.oracle.ui/src/org/jkiss/dbeaver/ext/oracle/ui/internal/OracleUIMessages_de.properties index 918b62cc86..feb1bcf497 100644 --- a/plugins/org.jkiss.dbeaver.ext.oracle.ui/src/org/jkiss/dbeaver/ext/oracle/ui/internal/OracleUIMessages_de.properties +++ b/plugins/org.jkiss.dbeaver.ext.oracle.ui/src/org/jkiss/dbeaver/ext/oracle/ui/internal/OracleUIMessages_de.properties @@ -46,6 +46,19 @@ dialog_connection_user_name = Benutzername dialog_connection_ver = v. +edit_create_checkbox_hide_empty_schemas = Leere Schemas ausblenden +edit_create_checkbox_hide_empty_schemas_tool_tip_text = \u00DCberpr\u00FCfen Sie das Vorhandensein von Objekten im Schema und zeigen Sie keine leeren Schemas im Baum an.\nStandardm\u00E4\u00DFig aktiviert, kann jedoch Leistungsprobleme bei Datenbanken mit sehr vielen Objekten verursachen. +edit_create_checkbox_content_group_show = Zeigen Sie immer DBA-Objekte an +edit_create_checkbox_content_group_show_description = Zeigt immer DBA-bezogene Metadatenobjekte im Baum an, auch wenn der Benutzer keine DBA-Rolle hat. +edit_create_checkbox_content_group_use = Verwenden Sie immer DBA_ * Ansichten +edit_create_checkbox_content_group_use_description = Verwenden Sie DBA_ * -Ansichten anstelle von ALL_ * -Ansichten, wo immer dies m\u00F6glich ist +edit_create_checkbox_content_group_use_sys_schema = Verwenden Sie das SYS-Schema-Pr\u00E4fix +edit_create_checkbox_content_group_use_sys_schema_description = Verwenden Sie das SYS-Schema-Pr\u00E4fix in allen Metadatenabfragen. Verwenden Sie andernfalls Ansichtsnamen ohne explizites Schema. +edit_create_checkbox_content_group_use_simple_constraints = Einfache Abfrage zum Lesen von Einschr\u00E4nkungen +edit_create_checkbox_content_group_use_simple_constraints_description = Verwenden Sie einfache Metadatenabfragen. Funktioniert m\u00F6glicherweise langsamer, ist jedoch f\u00FCr alle Oracle-Versionen stabiler. +edit_create_checkbox_content_group_use_another_table_query = Verwenden Sie UNION zum Lesen von Tabellenmetadaten +edit_create_checkbox_content_group_use_another_table_query_description = Verwenden Sie die Metadatenabfrage f\u00FCr Legacy-Tabellen. Mit UNION stattdessen beitreten. In einigen F\u00E4llen hilft es, das Lesen von Tabellendaten zu beschleunigen. + edit_oracle_constraint_manager_dialog_title = Einschr\u00E4nkung erstellen edit_oracle_data_type_manager_dialog_title = Paket diff --git a/plugins/org.jkiss.dbeaver.ext.oracle.ui/src/org/jkiss/dbeaver/ext/oracle/ui/internal/OracleUIMessages_ru.properties b/plugins/org.jkiss.dbeaver.ext.oracle.ui/src/org/jkiss/dbeaver/ext/oracle/ui/internal/OracleUIMessages_ru.properties index a17aacb606..a4533908cc 100644 --- a/plugins/org.jkiss.dbeaver.ext.oracle.ui/src/org/jkiss/dbeaver/ext/oracle/ui/internal/OracleUIMessages_ru.properties +++ b/plugins/org.jkiss.dbeaver.ext.oracle.ui/src/org/jkiss/dbeaver/ext/oracle/ui/internal/OracleUIMessages_ru.properties @@ -100,5 +100,5 @@ edit_create_checkbox_content_group_use_sys_schema = \u0418\u0441\u043F\u043E\u04 edit_create_checkbox_content_group_use_sys_schema_description = \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0441\u0445\u0435\u043C\u0443 SYS \u0432 \u0437\u0430\u043F\u0440\u043E\u0441\u0430\u0445 \u043C\u0435\u0442\u0430\u0434\u0430\u043D\u043D\u044B\u0445 edit_create_checkbox_group_use_metadata_optimizer = \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u043E\u043F\u0442\u0438\u043C\u0438\u0437\u0430\u0442\u043E\u0440 \u0437\u0430\u043F\u0440\u043E\u0441\u043E\u0432 \u043A \u043C\u0435\u0442\u0430\u0434\u0430\u043D\u043D\u044B\u043C edit_create_checkbox_group_use_metadata_optimizer_tip = \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435 \u043E\u043F\u0442\u0438\u043C\u0438\u0437\u0430\u0442\u043E\u0440\u0430 \u0437\u0430\u043F\u0440\u043E\u0441\u043E\u0432 \u043A \u043C\u0435\u0442\u0430\u0434\u0430\u043D\u043D\u044B\u043C.\n\u041C\u043E\u0436\u0435\u0442 \u0437\u043D\u0430\u0447\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u043F\u043E\u0432\u044B\u0441\u0438\u0442\u044C \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u0447\u0442\u0435\u043D\u0438\u044F \u043C\u0435\u0442\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0432 \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u0445 \u0441\u0438\u0441\u0442\u0435\u043C\u0430\u0445. -edit_create_checkbox_content_group_use_another_table_query = \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0434\u0440\u0443\u0433\u043E\u0439 \u0437\u0430\u043F\u0440\u043E\u0441 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u0442\u0430\u0431\u043B\u0438\u0447\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 -edit_create_checkbox_content_group_use_another_table_query_description = \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0434\u0440\u0443\u0433\u043E\u0439 \u0437\u0430\u043F\u0440\u043E\u0441 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u0442\u0430\u0431\u043B\u0438\u0447\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445.\n\u041F\u043E\u043C\u043E\u0433\u0430\u0435\u0442 \u0432 \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u0445 \u0441\u043B\u0443\u0447\u0430\u044F\u0445 \u0443\u0441\u043A\u043E\u0440\u0438\u0442\u044C \u0447\u0442\u0435\u043D\u0438\u0435 \u0442\u0430\u0431\u043B\u0438\u0447\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 +edit_create_checkbox_content_group_use_another_table_query = \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C UNION \u0432 \u0437\u0430\u043F\u0440\u043E\u0441\u0435 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u0442\u0430\u0431\u043B\u0438\u0447\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445 +edit_create_checkbox_content_group_use_another_table_query_description = \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C \u0430\u043B\u044C\u0442\u0435\u0440\u043D\u0430\u0442\u0438\u0432\u043D\u044B\u0439 \u0437\u0430\u043F\u0440\u043E\u0441 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u0442\u0430\u0431\u043B\u0438\u0447\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445.\n\u0417\u0430\u043F\u0440\u043E\u0441 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 UNION \u0432\u043C\u0435\u0441\u0442\u043E JOIN. \u041F\u043E\u043C\u043E\u0433\u0430\u0435\u0442 \u0432 \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u0445 \u0441\u043B\u0443\u0447\u0430\u044F\u0445 \u0443\u0441\u043A\u043E\u0440\u0438\u0442\u044C \u0447\u0442\u0435\u043D\u0438\u0435 \u0442\u0430\u0431\u043B\u0438\u0447\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445. diff --git a/plugins/org.jkiss.dbeaver.ext.oracle.ui/src/org/jkiss/dbeaver/ext/oracle/ui/views/OracleConnectionExtraPage.java b/plugins/org.jkiss.dbeaver.ext.oracle.ui/src/org/jkiss/dbeaver/ext/oracle/ui/views/OracleConnectionExtraPage.java index 263d402145..1db2eef1ae 100644 --- a/plugins/org.jkiss.dbeaver.ext.oracle.ui/src/org/jkiss/dbeaver/ext/oracle/ui/views/OracleConnectionExtraPage.java +++ b/plugins/org.jkiss.dbeaver.ext.oracle.ui/src/org/jkiss/dbeaver/ext/oracle/ui/views/OracleConnectionExtraPage.java @@ -52,7 +52,7 @@ public class OracleConnectionExtraPage extends ConnectionPageAbstract private Button useRuleHint; private Button useOptimizerHint; private Button useSimpleConstraints; - private Button useAnotherTableMetadataQuery; + private Button useAlternativeTableMetadataQuery; public OracleConnectionExtraPage() { @@ -126,8 +126,8 @@ public class OracleConnectionExtraPage extends ConnectionPageAbstract useSimpleConstraints = UIUtils.createCheckbox(contentGroup, OracleUIMessages.edit_create_checkbox_content_group_use_simple_constraints, OracleUIMessages.edit_create_checkbox_content_group_use_simple_constraints_description, false, 1); - useAnotherTableMetadataQuery = UIUtils.createCheckbox(contentGroup, OracleUIMessages.edit_create_checkbox_content_group_use_another_table_query, false); - useAnotherTableMetadataQuery.setToolTipText(OracleUIMessages.edit_create_checkbox_content_group_use_another_table_query_description); + useAlternativeTableMetadataQuery = UIUtils.createCheckbox(contentGroup, OracleUIMessages.edit_create_checkbox_content_group_use_another_table_query, false); + useAlternativeTableMetadataQuery.setToolTipText(OracleUIMessages.edit_create_checkbox_content_group_use_another_table_query_description); } setControl(cfgGroup); @@ -177,7 +177,7 @@ public class OracleConnectionExtraPage extends ConnectionPageAbstract useSimpleConstraints.setSelection(CommonUtils.getBoolean(providerProperties.get(OracleConstants.PROP_METADATA_USE_SIMPLE_CONSTRAINTS), false)); useRuleHint.setSelection(CommonUtils.getBoolean(providerProperties.get(OracleConstants.PROP_USE_RULE_HINT), false)); useOptimizerHint.setSelection(CommonUtils.getBoolean(providerProperties.get(OracleConstants.PROP_USE_META_OPTIMIZER), false)); - useAnotherTableMetadataQuery.setSelection(CommonUtils.getBoolean(providerProperties.get(OracleConstants.PROP_METADATA_USE_ANOTHER_TABLE_QUERY), false)); + useAlternativeTableMetadataQuery.setSelection(CommonUtils.getBoolean(providerProperties.get(OracleConstants.PROP_METADATA_USE_ALTERNATIVE_TABLE_QUERY), false)); } @Override @@ -230,8 +230,8 @@ public class OracleConnectionExtraPage extends ConnectionPageAbstract OracleConstants.PROP_USE_META_OPTIMIZER, String.valueOf(useOptimizerHint.getSelection())); providerProperties.put( - OracleConstants.PROP_METADATA_USE_ANOTHER_TABLE_QUERY, - String.valueOf(useAnotherTableMetadataQuery.getSelection())); + OracleConstants.PROP_METADATA_USE_ALTERNATIVE_TABLE_QUERY, + String.valueOf(useAlternativeTableMetadataQuery.getSelection())); } saveConnectionURL(dataSource.getConnectionConfiguration()); diff --git a/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/model/OracleConstants.java b/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/model/OracleConstants.java index acd9e959f8..9c7cc797c4 100644 --- a/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/model/OracleConstants.java +++ b/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/model/OracleConstants.java @@ -1,227 +1,227 @@ -/* - * DBeaver - Universal Database Manager - * Copyright (C) 2010-2020 DBeaver Corp and others - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jkiss.dbeaver.ext.oracle.model; - -import org.jkiss.dbeaver.model.DBConstants; -import org.jkiss.dbeaver.model.data.DBDPseudoAttribute; -import org.jkiss.dbeaver.model.data.DBDPseudoAttributeType; -import org.jkiss.dbeaver.model.struct.DBSEntityConstraintType; -import org.jkiss.dbeaver.model.struct.rdb.DBSIndexType; - -/** - * Oracle constants - */ -public class OracleConstants { - - public static final String CMD_COMPILE = "org.jkiss.dbeaver.ext.oracle.code.compile"; //$NON-NLS-1$ - - public static final int DEFAULT_PORT = 1521; - - public static final String SCHEMA_SYS = "SYS"; - public static final String VIEW_ALL_SOURCE = "ALL_SOURCE"; - public static final String VIEW_DBA_SOURCE = "DBA_SOURCE"; - public static final String VIEW_DBA_TAB_PRIVS = "DBA_TAB_PRIVS"; - - public static final String[] SYSTEM_SCHEMAS = { - "CTXSYS", - "DBSNMP", - "DMSYS", - "EXFSYS", - "IX", - "MDDATA", - "MDSYS", - "DMSYS", - "MGMT_VIEW", - "OLAPSYS", - "ORDPLUGINS", - "ORDSYS", - "ORDDATA", - "SI_INFORMTN_SCHEMA", - "OWBSYS", - "OWBSYS_AUDIT", - "OUTLN", - "ORACLE_OCM", - "SYS", - "SYSMAN", - "SYSTEM", - "TSMSYS", - "WMSYS", - "XDB", - }; - - public static final String PROP_CONNECTION_TYPE = DBConstants.INTERNAL_PROP_PREFIX + "connection-type@"; - public static final String PROP_SID_SERVICE = DBConstants.INTERNAL_PROP_PREFIX + "sid-service@"; - public static final String PROP_CONNECTION_TARGET = "connection_target"; - public static final String PROP_DRIVER_TYPE = DBConstants.INTERNAL_PROP_PREFIX + "driver-type@"; - public static final String PROP_INTERNAL_LOGON = DBConstants.INTERNAL_PROP_PREFIX + "internal-logon@"; - public static final String PROP_TNS_PATH = DBConstants.INTERNAL_PROP_PREFIX + "tns-path@"; - public static final String PROP_AUTH_LOGON_AS = "oracle.logon-as"; - - public static final String PROP_SESSION_LANGUAGE = DBConstants.INTERNAL_PROP_PREFIX + "session-language@"; - public static final String PROP_SESSION_TERRITORY = DBConstants.INTERNAL_PROP_PREFIX + "session-territory@"; - public static final String PROP_SESSION_NLS_DATE_FORMAT = DBConstants.INTERNAL_PROP_PREFIX + "session-nls-date-format@"; - public static final String PROP_SESSION_NLS_TIMESTAMP_FORMAT = "session-nls-timestamp-format"; - public static final String PROP_SESSION_NLS_LENGTH_FORMAT = "session-nls-length-format"; - public static final String PROP_SESSION_NLS_CURRENCY_FORMAT = "session-nls-currency-format"; - public static final String PROP_CHECK_SCHEMA_CONTENT = DBConstants.INTERNAL_PROP_PREFIX + "check-schema-content@"; - public static final String PROP_ALWAYS_SHOW_DBA = DBConstants.INTERNAL_PROP_PREFIX + "always-show-dba@"; - public static final String PROP_ALWAYS_USE_DBA_VIEWS = DBConstants.INTERNAL_PROP_PREFIX + "always-use-dba-views@"; - public static final String PROP_USE_RULE_HINT = DBConstants.INTERNAL_PROP_PREFIX + "use-rule-hint@"; - public static final String PROP_USE_META_OPTIMIZER = DBConstants.INTERNAL_PROP_PREFIX + "use-meta-optimizer@"; - public static final String PROP_METADATA_USE_SYS_SCHEMA = DBConstants.INTERNAL_PROP_PREFIX + "meta-use-sys-schema@"; - public static final String PROP_METADATA_USE_SIMPLE_CONSTRAINTS = DBConstants.INTERNAL_PROP_PREFIX + "meta-use-simple-constraints@"; - public static final String PROP_METADATA_USE_ANOTHER_TABLE_QUERY = DBConstants.INTERNAL_PROP_PREFIX + "meta-use-another-table-query@"; - - - public static final String OS_AUTH_PROP = DBConstants.INTERNAL_PROP_PREFIX + "os-authentication@"; - - public static final String DRIVER_TYPE_THIN = "THIN"; - public static final String DRIVER_TYPE_OCI = "OCI"; - - public static final String USER_PUBLIC = "PUBLIC"; - - public static final String YES = "YES"; - - public static final String TYPE_NAME_XML = "XMLTYPE"; - public static final String TYPE_FQ_XML = "SYS.XMLTYPE"; - public static final String TYPE_NAME_GEOMETRY = "PUBLIC.SDO_GEOMETRY"; - public static final String TYPE_FQ_GEOMETRY = "MDSYS.SDO_GEOMETRY"; - public static final String TYPE_NAME_BFILE = "BFILE"; - public static final String TYPE_NAME_DATE = "DATE"; - public static final String TYPE_NAME_TIMESTAMP = "TIMESTAMP"; - public static final String TYPE_NUMBER = "NUMBER"; - public static final String TYPE_NAME_REFCURSOR = "REFCURSOR"; - - public static final int TIMESTAMP_TYPE_LENGTH = 13; - public static final int DATE_TYPE_LENGTH = 7; - - public static final DBSIndexType INDEX_TYPE_NORMAL = new DBSIndexType("NORMAL", "Normal"); - public static final DBSIndexType INDEX_TYPE_BITMAP = new DBSIndexType("BITMAP", "Bitmap"); - public static final DBSIndexType INDEX_TYPE_FUNCTION_BASED_NORMAL = new DBSIndexType("FUNCTION-BASED NORMAL", "Function-based Normal"); - public static final DBSIndexType INDEX_TYPE_FUNCTION_BASED_BITMAP = new DBSIndexType("FUNCTION-BASED BITMAP", "Function-based Bitmap"); - public static final DBSIndexType INDEX_TYPE_DOMAIN = new DBSIndexType("DOMAIN", "Domain"); - - public static final String PROP_OBJECT_DEFINITION = "objectDefinitionText"; - public static final String PROP_OBJECT_BODY_DEFINITION = "extendedDefinitionText"; - - public static final String COL_OWNER = "OWNER"; - public static final String COL_TABLE_NAME = "TABLE_NAME"; - public static final String COL_CONSTRAINT_NAME = "CONSTRAINT_NAME"; - public static final String COL_CONSTRAINT_TYPE = "CONSTRAINT_TYPE"; - - public static final String XML_COLUMN_NAME = "XML"; - public static final String OBJECT_VALUE_COLUMN_NAME = "OBJECT_VALUE"; - - public static final DBDPseudoAttribute PSEUDO_ATTR_ROWID = new DBDPseudoAttribute( - DBDPseudoAttributeType.ROWID, - "ROWID", - "$alias.ROWID", - null, - "Unique row identifier", - true); - - public static final String PREF_EXPLAIN_TABLE_NAME = "oracle.explain.table"; - public static final String PREF_SUPPORT_ROWID = "oracle.support.rowid"; - public static final String PREF_DBMS_OUTPUT = "oracle.dbms.output"; - public static final String PREF_DBMS_READ_ALL_SYNONYMS = "oracle.read.all.synonyms"; - public static final String PREF_DISABLE_SCRIPT_ESCAPE_PROCESSING = "oracle.disable.script.escape"; - - public static final String NLS_DEFAULT_VALUE = "Default"; - public static final String PREF_KEY_DDL_FORMAT = "oracle.ddl.format"; - public static final int MAXIMUM_DBMS_OUTPUT_SIZE = 1000000; - - public static final String VAR_ORA_HOME = "ORA_HOME"; - public static final String VAR_ORACLE_HOME = "ORACLE_HOME"; - public static final String VAR_TNS_ADMIN = "TNS_ADMIN"; - public static final String VAR_PATH = "PATH"; - public static final String VAR_ORACLE_NET_TNS_ADMIN = "oracle.net.tns_admin"; - - public static final int DATA_TYPE_TIMESTAMP_WITH_TIMEZONE = 101; - public static final int DATA_TYPE_TIMESTAMP_WITH_LOCAL_TIMEZONE = 102; - public static final int DATA_TYPE_REFCURSOR = -10; - - public static final DBSEntityConstraintType CONSTRAINT_WITH_CHECK_OPTION = new DBSEntityConstraintType("V", "With Check Option", null, false, false, false, false); - public static final DBSEntityConstraintType CONSTRAINT_WITH_READ_ONLY = new DBSEntityConstraintType("O", "With Read Only", null, false, false, false, false); - public static final DBSEntityConstraintType CONSTRAINT_HASH_EXPRESSION = new DBSEntityConstraintType("H", "Hash expression", null, false, false, false, false); - public static final DBSEntityConstraintType CONSTRAINT_REF_COLUMN = new DBSEntityConstraintType("F", "Constraint that involves a REF column", null, false, false, false, false); - public static final DBSEntityConstraintType CONSTRAINT_SUPPLEMENTAL_LOGGING = new DBSEntityConstraintType("S", "Supplemental logging", null, false, false, false, false); - - /** - * Oracle error codes - */ - public static final int EC_FEATURE_NOT_SUPPORTED = 17023; - public static final int EC_NO_RESULTSET_AVAILABLE = 17283; - public static final int EC_PASSWORD_EXPIRED = 28001; - public static final int NUMERIC_MAX_PRECISION = 38; - - /** - * Connection type - */ - public enum ConnectionType { - BASIC, - TNS, - CUSTOM - } - - public static final String XMLTYPE_CLASS_NAME = "oracle.xdb.XMLType"; - public static final String BFILE_CLASS_NAME = "oracle.sql.BFILE"; - public static final String TIMESTAMP_CLASS_NAME = "oracle.sql.TIMESTAMP"; - public static final String TIMESTAMPTZ_CLASS_NAME = "oracle.sql.TIMESTAMPTZ"; - public static final String TIMESTAMPLTZ_CLASS_NAME = "oracle.sql.TIMESTAMPLTZ"; - - public static final String PLAN_TABLE_DEFINITION = - "create global temporary table ${TABLE_NAME} (\n" + - "statement_id varchar2(30),\n" + - "plan_id number,\n" + - "timestamp date,\n" + - "remarks varchar2(4000),\n" + - "operation varchar2(30),\n" + - "options varchar2(255),\n" + - "object_node varchar2(128),\n" + - "object_owner varchar2(30),\n" + - "object_name varchar2(30),\n" + - "object_alias varchar2(65),\n" + - "object_instance numeric,\n" + - "object_type varchar2(30),\n" + - "optimizer varchar2(255),\n" + - "search_columns number,\n" + - "id numeric,\n" + - "parent_id numeric,\n" + - "depth numeric,\n" + - "position numeric,\n" + - "cost numeric,\n" + - "cardinality numeric,\n" + - "bytes numeric,\n" + - "other_tag varchar2(255),\n" + - "partition_start varchar2(255),\n" + - "partition_stop varchar2(255),\n" + - "partition_id numeric,\n" + - "other long,\n" + - "distribution varchar2(30),\n" + - "cpu_cost numeric,\n" + - "io_cost numeric,\n" + - "temp_space numeric,\n" + - "access_predicates varchar2(4000),\n" + - "filter_predicates varchar2(4000),\n" + - "projection varchar2(4000),\n" + - "time numeric,\n" + - "qblock_name varchar2(30),\n" + - "other_xml clob\n" + - ") on commit preserve rows"; - -} +/* + * DBeaver - Universal Database Manager + * Copyright (C) 2010-2020 DBeaver Corp and others + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jkiss.dbeaver.ext.oracle.model; + +import org.jkiss.dbeaver.model.DBConstants; +import org.jkiss.dbeaver.model.data.DBDPseudoAttribute; +import org.jkiss.dbeaver.model.data.DBDPseudoAttributeType; +import org.jkiss.dbeaver.model.struct.DBSEntityConstraintType; +import org.jkiss.dbeaver.model.struct.rdb.DBSIndexType; + +/** + * Oracle constants + */ +public class OracleConstants { + + public static final String CMD_COMPILE = "org.jkiss.dbeaver.ext.oracle.code.compile"; //$NON-NLS-1$ + + public static final int DEFAULT_PORT = 1521; + + public static final String SCHEMA_SYS = "SYS"; + public static final String VIEW_ALL_SOURCE = "ALL_SOURCE"; + public static final String VIEW_DBA_SOURCE = "DBA_SOURCE"; + public static final String VIEW_DBA_TAB_PRIVS = "DBA_TAB_PRIVS"; + + public static final String[] SYSTEM_SCHEMAS = { + "CTXSYS", + "DBSNMP", + "DMSYS", + "EXFSYS", + "IX", + "MDDATA", + "MDSYS", + "DMSYS", + "MGMT_VIEW", + "OLAPSYS", + "ORDPLUGINS", + "ORDSYS", + "ORDDATA", + "SI_INFORMTN_SCHEMA", + "OWBSYS", + "OWBSYS_AUDIT", + "OUTLN", + "ORACLE_OCM", + "SYS", + "SYSMAN", + "SYSTEM", + "TSMSYS", + "WMSYS", + "XDB", + }; + + public static final String PROP_CONNECTION_TYPE = DBConstants.INTERNAL_PROP_PREFIX + "connection-type@"; + public static final String PROP_SID_SERVICE = DBConstants.INTERNAL_PROP_PREFIX + "sid-service@"; + public static final String PROP_CONNECTION_TARGET = "connection_target"; + public static final String PROP_DRIVER_TYPE = DBConstants.INTERNAL_PROP_PREFIX + "driver-type@"; + public static final String PROP_INTERNAL_LOGON = DBConstants.INTERNAL_PROP_PREFIX + "internal-logon@"; + public static final String PROP_TNS_PATH = DBConstants.INTERNAL_PROP_PREFIX + "tns-path@"; + public static final String PROP_AUTH_LOGON_AS = "oracle.logon-as"; + + public static final String PROP_SESSION_LANGUAGE = DBConstants.INTERNAL_PROP_PREFIX + "session-language@"; + public static final String PROP_SESSION_TERRITORY = DBConstants.INTERNAL_PROP_PREFIX + "session-territory@"; + public static final String PROP_SESSION_NLS_DATE_FORMAT = DBConstants.INTERNAL_PROP_PREFIX + "session-nls-date-format@"; + public static final String PROP_SESSION_NLS_TIMESTAMP_FORMAT = "session-nls-timestamp-format"; + public static final String PROP_SESSION_NLS_LENGTH_FORMAT = "session-nls-length-format"; + public static final String PROP_SESSION_NLS_CURRENCY_FORMAT = "session-nls-currency-format"; + public static final String PROP_CHECK_SCHEMA_CONTENT = DBConstants.INTERNAL_PROP_PREFIX + "check-schema-content@"; + public static final String PROP_ALWAYS_SHOW_DBA = DBConstants.INTERNAL_PROP_PREFIX + "always-show-dba@"; + public static final String PROP_ALWAYS_USE_DBA_VIEWS = DBConstants.INTERNAL_PROP_PREFIX + "always-use-dba-views@"; + public static final String PROP_USE_RULE_HINT = DBConstants.INTERNAL_PROP_PREFIX + "use-rule-hint@"; + public static final String PROP_USE_META_OPTIMIZER = DBConstants.INTERNAL_PROP_PREFIX + "use-meta-optimizer@"; + public static final String PROP_METADATA_USE_SYS_SCHEMA = DBConstants.INTERNAL_PROP_PREFIX + "meta-use-sys-schema@"; + public static final String PROP_METADATA_USE_SIMPLE_CONSTRAINTS = DBConstants.INTERNAL_PROP_PREFIX + "meta-use-simple-constraints@"; + public static final String PROP_METADATA_USE_ALTERNATIVE_TABLE_QUERY = DBConstants.INTERNAL_PROP_PREFIX + "meta-use-alternative-table-query@"; + + + public static final String OS_AUTH_PROP = DBConstants.INTERNAL_PROP_PREFIX + "os-authentication@"; + + public static final String DRIVER_TYPE_THIN = "THIN"; + public static final String DRIVER_TYPE_OCI = "OCI"; + + public static final String USER_PUBLIC = "PUBLIC"; + + public static final String YES = "YES"; + + public static final String TYPE_NAME_XML = "XMLTYPE"; + public static final String TYPE_FQ_XML = "SYS.XMLTYPE"; + public static final String TYPE_NAME_GEOMETRY = "PUBLIC.SDO_GEOMETRY"; + public static final String TYPE_FQ_GEOMETRY = "MDSYS.SDO_GEOMETRY"; + public static final String TYPE_NAME_BFILE = "BFILE"; + public static final String TYPE_NAME_DATE = "DATE"; + public static final String TYPE_NAME_TIMESTAMP = "TIMESTAMP"; + public static final String TYPE_NUMBER = "NUMBER"; + public static final String TYPE_NAME_REFCURSOR = "REFCURSOR"; + + public static final int TIMESTAMP_TYPE_LENGTH = 13; + public static final int DATE_TYPE_LENGTH = 7; + + public static final DBSIndexType INDEX_TYPE_NORMAL = new DBSIndexType("NORMAL", "Normal"); + public static final DBSIndexType INDEX_TYPE_BITMAP = new DBSIndexType("BITMAP", "Bitmap"); + public static final DBSIndexType INDEX_TYPE_FUNCTION_BASED_NORMAL = new DBSIndexType("FUNCTION-BASED NORMAL", "Function-based Normal"); + public static final DBSIndexType INDEX_TYPE_FUNCTION_BASED_BITMAP = new DBSIndexType("FUNCTION-BASED BITMAP", "Function-based Bitmap"); + public static final DBSIndexType INDEX_TYPE_DOMAIN = new DBSIndexType("DOMAIN", "Domain"); + + public static final String PROP_OBJECT_DEFINITION = "objectDefinitionText"; + public static final String PROP_OBJECT_BODY_DEFINITION = "extendedDefinitionText"; + + public static final String COL_OWNER = "OWNER"; + public static final String COL_TABLE_NAME = "TABLE_NAME"; + public static final String COL_CONSTRAINT_NAME = "CONSTRAINT_NAME"; + public static final String COL_CONSTRAINT_TYPE = "CONSTRAINT_TYPE"; + + public static final String XML_COLUMN_NAME = "XML"; + public static final String OBJECT_VALUE_COLUMN_NAME = "OBJECT_VALUE"; + + public static final DBDPseudoAttribute PSEUDO_ATTR_ROWID = new DBDPseudoAttribute( + DBDPseudoAttributeType.ROWID, + "ROWID", + "$alias.ROWID", + null, + "Unique row identifier", + true); + + public static final String PREF_EXPLAIN_TABLE_NAME = "oracle.explain.table"; + public static final String PREF_SUPPORT_ROWID = "oracle.support.rowid"; + public static final String PREF_DBMS_OUTPUT = "oracle.dbms.output"; + public static final String PREF_DBMS_READ_ALL_SYNONYMS = "oracle.read.all.synonyms"; + public static final String PREF_DISABLE_SCRIPT_ESCAPE_PROCESSING = "oracle.disable.script.escape"; + + public static final String NLS_DEFAULT_VALUE = "Default"; + public static final String PREF_KEY_DDL_FORMAT = "oracle.ddl.format"; + public static final int MAXIMUM_DBMS_OUTPUT_SIZE = 1000000; + + public static final String VAR_ORA_HOME = "ORA_HOME"; + public static final String VAR_ORACLE_HOME = "ORACLE_HOME"; + public static final String VAR_TNS_ADMIN = "TNS_ADMIN"; + public static final String VAR_PATH = "PATH"; + public static final String VAR_ORACLE_NET_TNS_ADMIN = "oracle.net.tns_admin"; + + public static final int DATA_TYPE_TIMESTAMP_WITH_TIMEZONE = 101; + public static final int DATA_TYPE_TIMESTAMP_WITH_LOCAL_TIMEZONE = 102; + public static final int DATA_TYPE_REFCURSOR = -10; + + public static final DBSEntityConstraintType CONSTRAINT_WITH_CHECK_OPTION = new DBSEntityConstraintType("V", "With Check Option", null, false, false, false, false); + public static final DBSEntityConstraintType CONSTRAINT_WITH_READ_ONLY = new DBSEntityConstraintType("O", "With Read Only", null, false, false, false, false); + public static final DBSEntityConstraintType CONSTRAINT_HASH_EXPRESSION = new DBSEntityConstraintType("H", "Hash expression", null, false, false, false, false); + public static final DBSEntityConstraintType CONSTRAINT_REF_COLUMN = new DBSEntityConstraintType("F", "Constraint that involves a REF column", null, false, false, false, false); + public static final DBSEntityConstraintType CONSTRAINT_SUPPLEMENTAL_LOGGING = new DBSEntityConstraintType("S", "Supplemental logging", null, false, false, false, false); + + /** + * Oracle error codes + */ + public static final int EC_FEATURE_NOT_SUPPORTED = 17023; + public static final int EC_NO_RESULTSET_AVAILABLE = 17283; + public static final int EC_PASSWORD_EXPIRED = 28001; + public static final int NUMERIC_MAX_PRECISION = 38; + + /** + * Connection type + */ + public enum ConnectionType { + BASIC, + TNS, + CUSTOM + } + + public static final String XMLTYPE_CLASS_NAME = "oracle.xdb.XMLType"; + public static final String BFILE_CLASS_NAME = "oracle.sql.BFILE"; + public static final String TIMESTAMP_CLASS_NAME = "oracle.sql.TIMESTAMP"; + public static final String TIMESTAMPTZ_CLASS_NAME = "oracle.sql.TIMESTAMPTZ"; + public static final String TIMESTAMPLTZ_CLASS_NAME = "oracle.sql.TIMESTAMPLTZ"; + + public static final String PLAN_TABLE_DEFINITION = + "create global temporary table ${TABLE_NAME} (\n" + + "statement_id varchar2(30),\n" + + "plan_id number,\n" + + "timestamp date,\n" + + "remarks varchar2(4000),\n" + + "operation varchar2(30),\n" + + "options varchar2(255),\n" + + "object_node varchar2(128),\n" + + "object_owner varchar2(30),\n" + + "object_name varchar2(30),\n" + + "object_alias varchar2(65),\n" + + "object_instance numeric,\n" + + "object_type varchar2(30),\n" + + "optimizer varchar2(255),\n" + + "search_columns number,\n" + + "id numeric,\n" + + "parent_id numeric,\n" + + "depth numeric,\n" + + "position numeric,\n" + + "cost numeric,\n" + + "cardinality numeric,\n" + + "bytes numeric,\n" + + "other_tag varchar2(255),\n" + + "partition_start varchar2(255),\n" + + "partition_stop varchar2(255),\n" + + "partition_id numeric,\n" + + "other long,\n" + + "distribution varchar2(30),\n" + + "cpu_cost numeric,\n" + + "io_cost numeric,\n" + + "temp_space numeric,\n" + + "access_predicates varchar2(4000),\n" + + "filter_predicates varchar2(4000),\n" + + "projection varchar2(4000),\n" + + "time numeric,\n" + + "qblock_name varchar2(30),\n" + + "other_xml clob\n" + + ") on commit preserve rows"; + +} 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 e46cc381a9..b9ab0290a6 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 @@ -498,12 +498,12 @@ public class OracleSchema extends OracleGlobalObject implements DBSSchema, DBPRe String tableOper = "="; boolean hasAllAllTables = owner.getDataSource().isViewAvailable(session.getProgressMonitor(), null, "ALL_ALL_TABLES"); - boolean useAnotherQuery = CommonUtils.toBoolean(getDataSource().getContainer().getConnectionConfiguration().getProviderProperty(OracleConstants.PROP_METADATA_USE_ANOTHER_TABLE_QUERY)); + boolean useAlternativeQuery = CommonUtils.toBoolean(getDataSource().getContainer().getConnectionConfiguration().getProviderProperty(OracleConstants.PROP_METADATA_USE_ALTERNATIVE_TABLE_QUERY)); String tablesSource = hasAllAllTables ? "ALL_TABLES" : "TABLES"; String tableTypeColumns = hasAllAllTables ? "t.TABLE_TYPE_OWNER,t.TABLE_TYPE" : "NULL as TABLE_TYPE_OWNER, NULL as TABLE_TYPE"; JDBCPreparedStatement dbStat; - if (!useAnotherQuery) { + if (!useAlternativeQuery) { dbStat = session.prepareStatement("SELECT " + OracleUtils.getSysCatalogHint(owner.getDataSource()) + " O.*,\n" + tableTypeColumns + ",t.TABLESPACE_NAME,t.PARTITIONED,t.IOT_TYPE,t.IOT_NAME,t.TEMPORARY,t.SECONDARY,t.NESTED,t.NUM_ROWS\n" + @@ -520,7 +520,7 @@ public class OracleSchema extends OracleGlobalObject implements DBSSchema, DBPRe dbStat.setString(2, object != null ? object.getName() : objectName); return dbStat; } else { - return getAnotherTableStatement(session, owner, object, objectName, tablesSource, tableTypeColumns); + return getAlternativeTableStatement(session, owner, object, objectName, tablesSource, tableTypeColumns); } } @@ -586,7 +586,7 @@ public class OracleSchema extends OracleGlobalObject implements DBSSchema, DBPRe } @NotNull - private JDBCStatement getAnotherTableStatement(@NotNull JDBCSession session, @NotNull OracleSchema owner, @Nullable OracleTableBase object, @Nullable String objectName, String tablesSource, String tableTypeColumns) throws SQLException { + private JDBCStatement getAlternativeTableStatement(@NotNull JDBCSession session, @NotNull OracleSchema owner, @Nullable OracleTableBase object, @Nullable String objectName, String tablesSource, String tableTypeColumns) throws SQLException { boolean hasName = object == null && objectName != null; JDBCPreparedStatement dbStat; StringBuilder sql = new StringBuilder(); -- GitLab