提交 37ec39ff 编写于 作者: L LonwoLonwo

#9858 naming fixed, into German localized

上级 a49c9600
......@@ -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).
......
......@@ -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
......
......@@ -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.
......@@ -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());
......
/*
* 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";
}
......@@ -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();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册