use of org.jkiss.dbeaver.model.exec.DBCException in project dbeaver by serge-rider.
the class OracleView method loadAdditionalInfo.
private void loadAdditionalInfo(DBRProgressMonitor monitor) throws DBException {
if (!isPersisted()) {
additionalInfo.loaded = true;
return;
}
String viewText = null;
try (JDBCSession session = DBUtils.openMetaSession(monitor, getDataSource(), "Load table status")) {
boolean isOracle9 = getDataSource().isAtLeastV9();
try (JDBCPreparedStatement dbStat = session.prepareStatement("SELECT TEXT,TYPE_TEXT,OID_TEXT,VIEW_TYPE_OWNER,VIEW_TYPE" + (isOracle9 ? ",SUPERVIEW_NAME" : "") + "\n" + "FROM SYS.ALL_VIEWS WHERE OWNER=? AND VIEW_NAME=?")) {
dbStat.setString(1, getContainer().getName());
dbStat.setString(2, getName());
try (JDBCResultSet dbResult = dbStat.executeQuery()) {
if (dbResult.next()) {
viewText = JDBCUtils.safeGetString(dbResult, "TEXT");
additionalInfo.setText(viewText);
additionalInfo.setTypeText(JDBCUtils.safeGetStringTrimmed(dbResult, "TYPE_TEXT"));
additionalInfo.setOidText(JDBCUtils.safeGetStringTrimmed(dbResult, "OID_TEXT"));
additionalInfo.typeOwner = JDBCUtils.safeGetStringTrimmed(dbResult, "VIEW_TYPE_OWNER");
additionalInfo.typeName = JDBCUtils.safeGetStringTrimmed(dbResult, "VIEW_TYPE");
if (isOracle9) {
String superViewName = JDBCUtils.safeGetString(dbResult, "SUPERVIEW_NAME");
if (!CommonUtils.isEmpty(superViewName)) {
additionalInfo.setSuperView(getContainer().getView(monitor, superViewName));
}
}
} else {
log.warn("Cannot find view '" + getFullyQualifiedName(DBPEvaluationContext.UI) + "' metadata");
}
additionalInfo.loaded = true;
}
}
} catch (SQLException e) {
throw new DBCException(e, getDataSource());
}
if (viewText != null) {
viewText = "CREATE OR REPLACE VIEW " + getFullyQualifiedName(DBPEvaluationContext.DDL) + " AS\n" + viewText;
}
additionalInfo.setText(viewText);
}
use of org.jkiss.dbeaver.model.exec.DBCException in project dbeaver by serge-rider.
the class OracleContentBFILE method closeFile.
private void closeFile() throws DBCException {
if (!opened) {
return;
}
try {
BeanUtils.invokeObjectMethod(bfile, "closeFile");
opened = false;
} catch (Throwable e) {
throw new DBCException(e, dataSource);
}
}
use of org.jkiss.dbeaver.model.exec.DBCException in project dbeaver by serge-rider.
the class OracleContentXML method bindParameter.
@Override
public void bindParameter(JDBCSession session, JDBCPreparedStatement preparedStatement, DBSTypedObject columnType, int paramIndex) throws DBCException {
try {
if (storage != null) {
try (InputStream streamReader = storage.getContentStream()) {
final Object xmlObject = createXmlObject(session, streamReader);
preparedStatement.setObject(paramIndex, xmlObject);
}
} else {
preparedStatement.setNull(paramIndex, java.sql.Types.SQLXML);
}
} catch (SQLException e) {
throw new DBCException(e, session.getDataSource());
} catch (IOException e) {
throw new DBCException("IO error while reading XML", e);
}
}
use of org.jkiss.dbeaver.model.exec.DBCException in project dbeaver by serge-rider.
the class ExplainPlanViewer method explainQueryPlan.
public void explainQueryPlan(DBCExecutionContext executionContext, SQLQuery query) throws DBCException {
this.executionContext = executionContext;
this.query = query;
if (this.executionContext != null) {
DBPDataSource dataSource = executionContext.getDataSource();
planner = DBUtils.getAdapter(DBCQueryPlanner.class, dataSource);
} else {
planner = null;
}
planTree.clearListData();
refreshPlanAction.setEnabled(false);
if (planner == null) {
throw new DBCException("This datasource doesn't support execution plans");
}
if (planTree.isLoading()) {
UIUtils.showMessageBox(getControl().getShell(), "Can't explain plan", "Explain plan already running", SWT.ICON_ERROR);
return;
}
sqlText.setText(query.getQuery());
planTree.init(this.executionContext, planner, query.getQuery());
planTree.loadData();
refreshPlanAction.setEnabled(true);
toggleViewAction.setEnabled(true);
}
use of org.jkiss.dbeaver.model.exec.DBCException in project dbeaver by serge-rider.
the class DB2Utils method createExplainTables.
public static void createExplainTables(DBRProgressMonitor monitor, DB2DataSource dataSource, String explainTableSchemaName, String tablespaceName) throws DBCException {
LOG.debug("Create EXPLAIN tables in " + explainTableSchemaName);
monitor.beginTask("Create EXPLAIN Tables", 1);
try (JDBCSession session = DBUtils.openMetaSession(monitor, dataSource, "Create EXPLAIN tables")) {
try (JDBCCallableStatement stmtSP = session.prepareCall(CALL_INST_OBJ)) {
// EXPLAIN
stmtSP.setString(1, "EXPLAIN");
// Create
stmtSP.setString(2, "C");
// Tablespace
stmtSP.setString(3, tablespaceName);
// Schema
stmtSP.setString(4, explainTableSchemaName);
stmtSP.executeUpdate();
LOG.debug("Creation EXPLAIN Tables : OK");
} catch (SQLException e) {
LOG.error("SQLException occured during EXPLAIN tables creation in schema " + explainTableSchemaName, e);
throw new DBCException(e, dataSource);
}
} finally {
monitor.done();
}
}
Aggregations