提交 3d7101c7 编写于 作者: J jurgen

Stored procedure execution.

JDBC model refactoring

Former-commit-id: 6df85dd0
上级 cb114032
......@@ -26,6 +26,7 @@ import org.jkiss.dbeaver.core.Log;
import org.jkiss.dbeaver.model.data.*;
import org.jkiss.dbeaver.model.edit.DBEPersistAction;
import org.jkiss.dbeaver.model.exec.*;
import org.jkiss.dbeaver.model.impl.DBObjectNameCaseTransformer;
import org.jkiss.dbeaver.model.impl.data.DefaultValueHandler;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.sql.*;
......@@ -40,6 +41,8 @@ import org.jkiss.utils.CommonUtils;
import java.sql.SQLException;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* DBUtils
......@@ -47,6 +50,7 @@ import java.util.*;
public final class DBUtils {
static final Log log = Log.getLog(DBUtils.class);
private static final Pattern EXEC_PATTERN = Pattern.compile("[a-z]+\\s+([^(]+)\\s*\\(");
public static <TYPE extends DBSObject> Comparator<TYPE> nameComparator()
{
......@@ -803,9 +807,13 @@ public final class DBUtils {
String query,
boolean scrollable) throws DBCException
{
DBCStatementType statementType = DBCStatementType.SCRIPT;
query = SQLUtils.makeUnifiedLineFeeds(query);
if (isExecQuery(session.getDataSource(), query)) {
statementType = DBCStatementType.EXEC;
}
return session.prepareStatement(
DBCStatementType.SCRIPT,
statementType,
query,
scrollable && session.getDataSource().getInfo().supportsResultSetScroll(),
false,
......@@ -829,7 +837,7 @@ public final class DBUtils {
statementType = DBCStatementType.EXEC;
}
*/
if (isExecQuery(session, query)) {
if (isExecQuery(session.getDataSource(), query)) {
statementType = DBCStatementType.EXEC;
}
......@@ -841,8 +849,7 @@ public final class DBUtils {
false);
}
public static boolean isExecQuery(DBCSession session, String query) {
DBPDataSource dataSource = session.getDataSource();
public static boolean isExecQuery(DBPDataSource dataSource, String query) {
if (dataSource instanceof SQLDataSource) {
// Check for EXEC query
final Collection<String> executeKeywords = ((SQLDataSource) dataSource).getSQLDialect().getExecuteKeywords();
......@@ -1253,4 +1260,43 @@ public final class DBUtils {
return null;//VoidTransactionManager.INSTANCE;
}
public static DBSProcedure findProcedure(DBCSession session, String queryString) throws DBException {
DBPDataSource dataSource = session.getDataSource();
if (!CommonUtils.isEmpty(queryString)) {
Matcher matcher = EXEC_PATTERN.matcher(queryString);
if (matcher.find()) {
String procName = matcher.group(1);
char divChar = 0;
if (dataSource instanceof SQLDataSource) {
divChar = ((SQLDataSource) dataSource).getSQLDialect().getStructSeparator();
}
if (procName.indexOf(divChar) != -1) {
return findProcedureByNames(session, procName.split("\\" + divChar));
} else {
return findProcedureByNames(session, procName);
}
}
}
return null;
}
private static DBSProcedure findProcedureByNames(DBCSession session, String... names) throws DBException {
if (!(session.getDataSource() instanceof DBSObjectContainer)) {
return null;
}
DBSObjectContainer container = (DBSObjectContainer) session.getDataSource();
for (int i = 0; i < names.length - 1; i++) {
DBSObject child = container.getChild(session.getProgressMonitor(), DBObjectNameCaseTransformer.transformName(session.getDataSource(), names[i]));
if (child instanceof DBSObjectContainer) {
container = (DBSObjectContainer) child;
} else {
return null;
}
}
if (container instanceof DBSProcedureContainer) {
return ((DBSProcedureContainer) container).getProcedure(session.getProgressMonitor(), DBObjectNameCaseTransformer.transformName(session.getDataSource(), names[names.length - 1]));
}
return null;
}
}
......@@ -38,7 +38,7 @@ public class DBObjectNameCaseTransformer implements IPropertyValueTransformer<DB
return transformName(object.getDataSource(), value);
}
public static String transformName(DBSObject object, String value)
public static String transformObjectName(DBSObject object, String value)
{
return transformName(object.getDataSource(), value);
}
......
......@@ -17,24 +17,34 @@
*/
package org.jkiss.dbeaver.model.impl.jdbc;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.core.Log;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.model.DBPDataKind;
import org.jkiss.dbeaver.model.DBPDataSource;
import org.jkiss.dbeaver.model.DBPDataTypeProvider;
import org.jkiss.dbeaver.model.exec.DBCSession;
import org.jkiss.dbeaver.model.impl.DBObjectNameCaseTransformer;
import org.jkiss.dbeaver.model.sql.SQLDataSource;
import org.jkiss.dbeaver.model.sql.SQLUtils;
import org.jkiss.dbeaver.model.exec.jdbc.JDBCPreparedStatement;
import org.jkiss.dbeaver.model.exec.jdbc.JDBCResultSet;
import org.jkiss.dbeaver.model.exec.jdbc.JDBCSession;
import org.jkiss.dbeaver.model.struct.DBSObject;
import org.jkiss.dbeaver.model.struct.DBSObjectContainer;
import org.jkiss.dbeaver.model.struct.DBSObjectFilter;
import org.jkiss.dbeaver.model.struct.rdb.DBSForeignKeyModifyRule;
import org.jkiss.dbeaver.model.struct.rdb.DBSProcedure;
import org.jkiss.dbeaver.model.struct.rdb.DBSProcedureContainer;
import org.jkiss.utils.CommonUtils;
import java.lang.reflect.InvocationTargetException;
import java.math.BigDecimal;
import java.sql.*;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* JDBCUtils
......
......@@ -20,12 +20,12 @@ package org.jkiss.dbeaver.model.impl.jdbc.exec;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.model.DBUtils;
import org.jkiss.dbeaver.model.exec.DBCException;
import org.jkiss.dbeaver.model.exec.jdbc.JDBCCallableStatement;
import org.jkiss.dbeaver.model.exec.jdbc.JDBCResultSet;
import org.jkiss.dbeaver.model.exec.jdbc.JDBCSession;
import org.jkiss.dbeaver.model.impl.jdbc.JDBCUtils;
import org.jkiss.dbeaver.model.impl.local.LocalResultSet;
import org.jkiss.dbeaver.model.struct.rdb.DBSProcedure;
import org.jkiss.dbeaver.model.struct.rdb.DBSProcedureParameter;
import org.jkiss.dbeaver.model.struct.rdb.DBSProcedureParameterType;
......@@ -55,6 +55,15 @@ public class JDBCCallableStatementImpl extends JDBCPreparedStatementImpl impleme
boolean disableLogging)
{
super(connection, original, query, disableLogging);
// Try to bind parameters
try {
DBSProcedure procedure = DBUtils.findProcedure(connection, query);
if (procedure != null) {
bindProcedure(procedure);
}
} catch (Exception e) {
log.debug(e);
}
}
@Override
......@@ -67,6 +76,7 @@ public class JDBCCallableStatementImpl extends JDBCPreparedStatementImpl impleme
// Procedure bindings
////////////////////////////////////////////////////////////////////
void bindProcedure(@NotNull DBSProcedure procedure) throws DBException {
this.procedure = procedure;
try {
......
......@@ -25,6 +25,7 @@ import org.jkiss.dbeaver.model.data.DBDValueHandler;
import org.jkiss.dbeaver.model.exec.*;
import org.jkiss.dbeaver.model.exec.jdbc.*;
import org.jkiss.dbeaver.model.impl.AbstractSession;
import org.jkiss.dbeaver.model.impl.DBObjectNameCaseTransformer;
import org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSource;
import org.jkiss.dbeaver.model.impl.jdbc.JDBCException;
import org.jkiss.dbeaver.model.impl.jdbc.JDBCExecutionContext;
......@@ -687,54 +688,7 @@ public class JDBCConnectionImpl extends AbstractSession implements JDBCSession,
if (original == null) {
throw new IllegalArgumentException("Null statement");
}
JDBCCallableStatementImpl call = new JDBCCallableStatementImpl(this, original, sql, !isLoggingEnabled());
// Try to bind parameters
try {
DBSProcedure procedure = findCallable(call);
if (procedure != null) {
call.bindProcedure(procedure);
}
} catch (Exception e) {
log.debug(e);
}
return call;
}
private static final Pattern EXEC_PATTERN = Pattern.compile("[a-z]+\\s+([^(]+)\\s*\\(");
public final DBSProcedure findCallable(JDBCCallableStatementImpl call) throws DBException {
String queryString = call.getQueryString();
if (!CommonUtils.isEmpty(queryString)) {
Matcher matcher = EXEC_PATTERN.matcher(queryString);
if (matcher.find()) {
String procName = matcher.group(1);
char divChar = getDataSource().getSQLDialect().getStructSeparator();
if (procName.indexOf(divChar) != -1) {
return findCallable(procName.split("\\" + divChar));
} else {
return findCallable(procName);
}
}
}
return null;
}
private DBSProcedure findCallable(String ... names) throws DBException {
DBSObjectContainer container = getDataSource();
for (int i = 0; i < names.length - 1; i++) {
DBSObject child = container.getChild(getProgressMonitor(), names[i]);
if (child instanceof DBSObjectContainer) {
container = (DBSObjectContainer) child;
} else {
return null;
}
}
if (container instanceof DBSProcedureContainer) {
return ((DBSProcedureContainer) container).getProcedure(getProgressMonitor(), names[names.length - 1]);
}
return null;
return new JDBCCallableStatementImpl(this, original, sql, !isLoggingEnabled());
}
......
......@@ -21,6 +21,8 @@ package org.jkiss.dbeaver.model.impl.local;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.model.DBPDataKind;
import org.jkiss.dbeaver.model.DBPImage;
import org.jkiss.dbeaver.model.DBPImageProvider;
import org.jkiss.dbeaver.model.DBUtils;
import org.jkiss.dbeaver.model.data.DBDPseudoAttribute;
import org.jkiss.dbeaver.model.exec.DBCAttributeMetaData;
......@@ -30,7 +32,7 @@ import org.jkiss.dbeaver.model.struct.DBSTypedObject;
/**
* LocalResultSetColumn
*/
public class LocalResultSetColumn implements DBCAttributeMetaData
public class LocalResultSetColumn implements DBCAttributeMetaData, DBPImageProvider
{
private final LocalResultSet resultSet;
private final int index;
......@@ -159,4 +161,10 @@ public class LocalResultSetColumn implements DBCAttributeMetaData
{
return typedObject == null ? 0 : typedObject.getMaxLength();
}
@Nullable
@Override
public DBPImage getObjectImage() {
return DBUtils.getDataIcon(this);
}
}
......@@ -691,7 +691,7 @@ public class SQLEditor extends SQLEditorBase implements
if (getActivePreferenceStore().getBoolean(DBeaverPreferences.SQL_PARAMETERS_ENABLED)) {
// Parse parameters
for (SQLQuery query : queryList) {
query.setParameters(parseParameters(getDocument(), query.getOffset(), query.getLength()));
query.setParameters(parseParameters(getDocument(), query));
}
}
return queryList;
......
......@@ -52,6 +52,7 @@ import org.jkiss.dbeaver.core.DBeaverUI;
import org.jkiss.dbeaver.core.Log;
import org.jkiss.dbeaver.model.DBPDataSource;
import org.jkiss.dbeaver.model.DBPPreferenceStore;
import org.jkiss.dbeaver.model.DBUtils;
import org.jkiss.dbeaver.model.exec.DBCExecutionContext;
import org.jkiss.dbeaver.model.sql.*;
import org.jkiss.dbeaver.model.sql.SQLConstants;
......@@ -468,7 +469,7 @@ public abstract class SQLEditorBase extends BaseTextEditor {
return null;
}
if (getActivePreferenceStore().getBoolean(DBeaverPreferences.SQL_PARAMETERS_ENABLED)) {
sqlQuery.setParameters(parseParameters(getDocument(), sqlQuery.getOffset(), sqlQuery.getLength()));
sqlQuery.setParameters(parseParameters(getDocument(), sqlQuery));
}
return sqlQuery;
}
......@@ -620,15 +621,16 @@ public abstract class SQLEditorBase extends BaseTextEditor {
}
}
protected List<SQLQueryParameter> parseParameters(IDocument document, int offset, int length) {
protected List<SQLQueryParameter> parseParameters(IDocument document, SQLQuery query) {
boolean execQuery = DBUtils.isExecQuery(getDataSource(), query.getQuery());
List<SQLQueryParameter> parameters = null;
syntaxManager.setRange(document, offset, length);
syntaxManager.setRange(document, query.getOffset(), query.getLength());
int blockDepth = 0;
for (;;) {
IToken token = syntaxManager.nextToken();
int tokenOffset = syntaxManager.getTokenOffset();
final int tokenLength = syntaxManager.getTokenLength();
if (token.isEOF() || tokenOffset > offset + length) {
if (token.isEOF() || tokenOffset > query.getOffset() + query.getLength()) {
break;
}
// Handle only parameters which are not in SQL blocks
......@@ -639,15 +641,20 @@ public abstract class SQLEditorBase extends BaseTextEditor {
}
if (token instanceof SQLParameterToken && tokenLength > 0 && blockDepth <= 0) {
try {
String paramName = document.get(tokenOffset, tokenLength);
if (execQuery && paramName.equals("?")) {
// Skip ? parameters for stored procedures (they have special meaning? [DB2])
continue;
}
if (parameters == null) {
parameters = new ArrayList<SQLQueryParameter>();
}
String paramName = document.get(tokenOffset, tokenLength);
SQLQueryParameter parameter = new SQLQueryParameter(
parameters.size(),
paramName,
tokenOffset - offset,
tokenOffset - query.getOffset(),
tokenLength);
SQLQueryParameter previous = null;
......
......@@ -103,7 +103,7 @@ public class DB2ForeignKeyManager extends SQLForeignKeyManager<DB2TableForeignKe
DB2TableForeignKey foreignKey = new DB2TableForeignKey(db2Table, ukConstraint, deleteRule, updateRule);
String fkBaseName = String.format(CONS_FK_NAME, tableName, targetTableName);
String fkName = DBObjectNameCaseTransformer.transformName(foreignKey, fkBaseName);
String fkName = DBObjectNameCaseTransformer.transformObjectName(foreignKey, fkBaseName);
foreignKey.setName(fkName);
......
......@@ -89,7 +89,7 @@ public class DB2IndexManager extends SQLIndexManager<DB2Index, DB2Table> {
String colName = CommonUtils.escapeIdentifier(editDialog.getSelectedAttributes().iterator().next().getName());
String indexBaseName = String.format(CONS_IX_NAME, tableName, colName);
String indexName = DBObjectNameCaseTransformer.transformName((DBPDataSource) db2Table.getDataSource(), indexBaseName);
String indexName = DBObjectNameCaseTransformer.transformName(db2Table.getDataSource(), indexBaseName);
DB2Index index = new DB2Index(db2Table, indexName, editDialog.getIndexType());
......
......@@ -88,7 +88,7 @@ public class DB2TableColumnManager extends SQLTableColumnManager<DB2TableColumn,
Object copyFrom)
{
DB2TableColumn column = new DB2TableColumn(parent);
column.setName(DBObjectNameCaseTransformer.transformName(column, getNewColumnName(context, parent)));
column.setName(DBObjectNameCaseTransformer.transformObjectName(column, getNewColumnName(context, parent)));
return column;
}
......
......@@ -96,7 +96,7 @@ public class DB2UniqueKeyManager extends SQLConstraintManager<DB2TableUniqueKey,
DB2TableUniqueKey constraint = new DB2TableUniqueKey(db2Table, editDialog.getConstraintType());
String constraintName = DBObjectNameCaseTransformer.transformName(constraint,
String constraintName = DBObjectNameCaseTransformer.transformObjectName(constraint,
CommonUtils.escapeIdentifier(db2Table.getName()) + suffix);
constraint.setName(constraintName);
......
......@@ -68,9 +68,9 @@ public class GenericForeignKeyManager extends SQLForeignKeyManager<GenericTableF
editDialog.getOnUpdateRule(),
DBSForeignKeyDefferability.NOT_DEFERRABLE,
false);
foreignKey.setName(DBObjectNameCaseTransformer.transformName(foreignKey,
CommonUtils.escapeIdentifier(table.getName()) + "_" +
CommonUtils.escapeIdentifier(editDialog.getUniqueConstraint().getParentObject().getName()) + "_FK"));
foreignKey.setName(DBObjectNameCaseTransformer.transformObjectName(foreignKey,
CommonUtils.escapeIdentifier(table.getName()) + "_" +
CommonUtils.escapeIdentifier(editDialog.getUniqueConstraint().getParentObject().getName()) + "_FK"));
int colIndex = 1;
for (EditForeignKeyDialog.FKColumnInfo tableColumn : editDialog.getColumns()) {
foreignKey.addColumn(
......
......@@ -85,7 +85,7 @@ public class GenericIndexManager extends SQLIndexManager<GenericTableIndex, Gene
true));
}
idxName.append("_IDX");
index.setName(DBObjectNameCaseTransformer.transformName(index, idxName.toString()));
index.setName(DBObjectNameCaseTransformer.transformObjectName(index, idxName.toString()));
return index;
}
......
......@@ -63,7 +63,7 @@ public class GenericPrimaryKeyManager extends SQLConstraintManager<GenericPrimar
null,
editDialog.getConstraintType(),
false);
primaryKey.setName(DBObjectNameCaseTransformer.transformName(primaryKey, CommonUtils.escapeIdentifier(parent.getName()) + "_PK"));
primaryKey.setName(DBObjectNameCaseTransformer.transformObjectName(primaryKey, CommonUtils.escapeIdentifier(parent.getName()) + "_PK"));
int colIndex = 1;
for (DBSEntityAttribute tableColumn : editDialog.getSelectedAttributes()) {
primaryKey.addColumn(
......
......@@ -52,7 +52,7 @@ public class GenericTableColumnManager extends SQLTableColumnManager<GenericTabl
DBSDataType columnType = findBestDataType(parent.getDataSource(), DBConstants.DEFAULT_DATATYPE_NAMES);
final GenericTableColumn column = new GenericTableColumn(parent);
column.setName(DBObjectNameCaseTransformer.transformName(column, getNewColumnName(context, parent)));
column.setName(DBObjectNameCaseTransformer.transformObjectName(column, getNewColumnName(context, parent)));
column.setTypeName(columnType == null ? "INTEGER" : columnType.getName());
column.setMaxLength(columnType != null && columnType.getDataKind() == DBPDataKind.STRING ? 100 : 0);
column.setValueType(columnType == null ? Types.INTEGER : columnType.getTypeID());
......
......@@ -66,7 +66,7 @@ public class MySQLConstraintManager extends SQLConstraintManager<MySQLTableConst
null,
editDialog.getConstraintType(),
false);
constraint.setName(DBObjectNameCaseTransformer.transformName(constraint, CommonUtils.escapeIdentifier(parent.getName()) + "_PK")); //$NON-NLS-1$
constraint.setName(DBObjectNameCaseTransformer.transformObjectName(constraint, CommonUtils.escapeIdentifier(parent.getName()) + "_PK")); //$NON-NLS-1$
int colIndex = 1;
for (DBSEntityAttribute tableColumn : editDialog.getSelectedAttributes()) {
constraint.addColumn(
......
......@@ -68,9 +68,9 @@ public class MySQLForeignKeyManager extends SQLForeignKeyManager<MySQLTableForei
editDialog.getOnDeleteRule(),
editDialog.getOnUpdateRule(),
false);
foreignKey.setName(DBObjectNameCaseTransformer.transformName(foreignKey,
CommonUtils.escapeIdentifier(table.getName()) + "_" + //$NON-NLS-1$
CommonUtils.escapeIdentifier(editDialog.getUniqueConstraint().getParentObject().getName()) + "_FK")); //$NON-NLS-1$
foreignKey.setName(DBObjectNameCaseTransformer.transformObjectName(foreignKey,
CommonUtils.escapeIdentifier(table.getName()) + "_" + //$NON-NLS-1$
CommonUtils.escapeIdentifier(editDialog.getUniqueConstraint().getParentObject().getName()) + "_FK")); //$NON-NLS-1$
int colIndex = 1;
for (EditForeignKeyDialog.FKColumnInfo tableColumn : editDialog.getColumns()) {
foreignKey.addColumn(
......
......@@ -82,7 +82,7 @@ public class MySQLIndexManager extends SQLIndexManager<MySQLTableIndex, MySQLTab
false));
}
idxName.append("_IDX"); //$NON-NLS-1$
index.setName(DBObjectNameCaseTransformer.transformName(index, idxName.toString()));
index.setName(DBObjectNameCaseTransformer.transformObjectName(index, idxName.toString()));
return index;
}
......
......@@ -67,7 +67,7 @@ public class MySQLTableColumnManager extends SQLTableColumnManager<MySQLTableCol
DBSDataType columnType = findBestDataType(parent.getDataSource(), "varchar"); //$NON-NLS-1$
final MySQLTableColumn column = new MySQLTableColumn(parent);
column.setName(DBObjectNameCaseTransformer.transformName(column, getNewColumnName(context, parent)));
column.setName(DBObjectNameCaseTransformer.transformObjectName(column, getNewColumnName(context, parent)));
column.setTypeName(columnType == null ? "INTEGER" : columnType.getName()); //$NON-NLS-1$
column.setMaxLength(columnType != null && columnType.getDataKind() == DBPDataKind.STRING ? 100 : 0);
column.setValueType(columnType == null ? Types.INTEGER : columnType.getTypeID());
......
......@@ -67,7 +67,7 @@ public class OracleConstraintManager extends SQLConstraintManager<OracleTableCon
editDialog.getConstraintType(),
null,
OracleObjectStatus.ENABLED);
constraint.setName(DBObjectNameCaseTransformer.transformName(constraint, CommonUtils.escapeIdentifier(parent.getName()) + "_PK")); //$NON-NLS-1$
constraint.setName(DBObjectNameCaseTransformer.transformObjectName(constraint, CommonUtils.escapeIdentifier(parent.getName()) + "_PK")); //$NON-NLS-1$
int colIndex = 1;
for (DBSEntityAttribute tableColumn : editDialog.getSelectedAttributes()) {
constraint.addColumn(
......
......@@ -67,9 +67,9 @@ public class OracleForeignKeyManager extends SQLForeignKeyManager<OracleTableFor
null,
(OracleTableConstraint) editDialog.getUniqueConstraint(),
editDialog.getOnDeleteRule());
foreignKey.setName(DBObjectNameCaseTransformer.transformName(foreignKey,
CommonUtils.escapeIdentifier(table.getName()) + "_" + //$NON-NLS-1$
CommonUtils.escapeIdentifier(editDialog.getUniqueConstraint().getParentObject().getName()) + "_FK")); //$NON-NLS-1$
foreignKey.setName(DBObjectNameCaseTransformer.transformObjectName(foreignKey,
CommonUtils.escapeIdentifier(table.getName()) + "_" + //$NON-NLS-1$
CommonUtils.escapeIdentifier(editDialog.getUniqueConstraint().getParentObject().getName()) + "_FK")); //$NON-NLS-1$
int colIndex = 1;
for (EditForeignKeyDialog.FKColumnInfo tableColumn : editDialog.getColumns()) {
foreignKey.addColumn(
......
......@@ -72,7 +72,7 @@ public class OracleIndexManager extends SQLIndexManager<OracleTableIndex, Oracle
final OracleTableIndex index = new OracleTableIndex(
parent.getSchema(),
parent,
DBObjectNameCaseTransformer.transformName((DBPDataSource) parent.getDataSource(), idxName.toString()),
DBObjectNameCaseTransformer.transformName(parent.getDataSource(), idxName.toString()),
false,
editDialog.getIndexType());
int colIndex = 1;
......
......@@ -142,7 +142,7 @@ public class OracleSchemaManager extends SQLObjectEditor<OracleSchema, OracleDat
@Override
protected void okPressed()
{
user.setName(DBObjectNameCaseTransformer.transformName(user, nameText.getText()));
user.setName(DBObjectNameCaseTransformer.transformObjectName(user, nameText.getText()));
user.setPassword(passwordText.getText());
super.okPressed();
}
......
......@@ -67,7 +67,7 @@ public class OracleTableColumnManager extends SQLTableColumnManager<OracleTableC
DBSDataType columnType = findBestDataType(parent.getDataSource(), "varchar2"); //$NON-NLS-1$
final OracleTableColumn column = new OracleTableColumn(parent);
column.setName(DBObjectNameCaseTransformer.transformName(column, getNewColumnName(context, parent)));
column.setName(DBObjectNameCaseTransformer.transformObjectName(column, getNewColumnName(context, parent)));
column.setType((OracleDataType) columnType);
column.setTypeName(columnType == null ? "INTEGER" : columnType.getName()); //$NON-NLS-1$
column.setMaxLength(columnType != null && columnType.getDataKind() == DBPDataKind.STRING ? 100 : 0);
......
......@@ -133,7 +133,7 @@ public class OracleUtils {
String objectName = matcher.group(2);
if (objectName.indexOf('.') == -1) {
if (!objectName.equalsIgnoreCase(object.getName())) {
object.setName(DBObjectNameCaseTransformer.transformName(object, objectName));
object.setName(DBObjectNameCaseTransformer.transformObjectName(object, objectName));
object.getDataSource().getContainer().fireEvent(new DBPEvent(DBPEvent.Action.OBJECT_UPDATE, object));
}
return source;//.substring(0, matcher.start(1)) + object.getSchema().getName() + "." + objectName + source.substring(matcher.end(2));
......@@ -270,7 +270,7 @@ public class OracleUtils {
try {
dbStat.setString(1, objectType.getTypeName());
dbStat.setString(2, object.getSchema().getName());
dbStat.setString(3, DBObjectNameCaseTransformer.transformName(object, object.getName()));
dbStat.setString(3, DBObjectNameCaseTransformer.transformObjectName(object, object.getName()));
final JDBCResultSet dbResult = dbStat.executeQuery();
try {
if (dbResult.next()) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册