Search in sources :

Example 6 with DB2Schema

use of org.jkiss.dbeaver.ext.db2.model.DB2Schema in project dbeaver by serge-rider.

the class DB2AliasCache method prepareObjectsStatement.

@Override
protected JDBCStatement prepareObjectsStatement(@NotNull JDBCSession session, @NotNull DB2Schema db2Schema) throws SQLException {
    DB2DataSource db2DataSource = db2Schema.getDataSource();
    String sql;
    if (db2DataSource.isAtLeastV9_7()) {
        sql = SQL_FULL;
    } else {
        sql = SQL_WITHOUT_MODULE_AND_SEQUALIAS;
    }
    JDBCPreparedStatement dbStat = session.prepareStatement(sql);
    dbStat.setString(1, db2Schema.getName());
    if (db2DataSource.isAtLeastV9_7()) {
        dbStat.setString(2, db2Schema.getName());
        dbStat.setString(3, db2Schema.getName());
    }
    return dbStat;
}
Also used : JDBCPreparedStatement(org.jkiss.dbeaver.model.exec.jdbc.JDBCPreparedStatement) DB2DataSource(org.jkiss.dbeaver.ext.db2.model.DB2DataSource)

Example 7 with DB2Schema

use of org.jkiss.dbeaver.ext.db2.model.DB2Schema in project dbeaver by serge-rider.

the class DB2StructureAssistant method searchColumns.

private void searchColumns(JDBCSession session, DB2Schema schema, String searchObjectNameMask, List<DB2ObjectType> objectTypes, int maxResults, List<DBSObjectReference> objects, int nbResults) throws SQLException, DBException {
    String sql;
    if (schema != null) {
        sql = SQL_COLS_SCHEMA;
    } else {
        sql = SQL_COLS_ALL;
    }
    int n = 1;
    try (JDBCPreparedStatement dbStat = session.prepareStatement(sql)) {
        if (schema != null) {
            dbStat.setString(n++, schema.getName());
        }
        dbStat.setString(n++, searchObjectNameMask);
        dbStat.setFetchSize(DBConstants.METADATA_FETCH_SIZE);
        String tableSchemaName;
        String tableOrViewName;
        String columnName;
        DB2Schema db2Schema;
        DB2Table db2Table;
        DB2View db2View;
        try (JDBCResultSet dbResult = dbStat.executeQuery()) {
            while (dbResult.next()) {
                if (session.getProgressMonitor().isCanceled()) {
                    break;
                }
                if (nbResults++ >= maxResults) {
                    return;
                }
                tableSchemaName = JDBCUtils.safeGetStringTrimmed(dbResult, "TABSCHEMA");
                tableOrViewName = JDBCUtils.safeGetString(dbResult, "TABNAME");
                columnName = JDBCUtils.safeGetString(dbResult, "COLNAME");
                db2Schema = dataSource.getSchema(session.getProgressMonitor(), tableSchemaName);
                if (db2Schema == null) {
                    LOG.debug("Schema '" + tableSchemaName + "' not found. Probably was filtered");
                    continue;
                }
                // Try with table, then view
                db2Table = db2Schema.getTable(session.getProgressMonitor(), tableOrViewName);
                if (db2Table != null) {
                    objects.add(new DB2ObjectReference(columnName, db2Table, DB2ObjectType.COLUMN));
                } else {
                    db2View = db2Schema.getView(session.getProgressMonitor(), tableOrViewName);
                    if (db2View != null) {
                        objects.add(new DB2ObjectReference(columnName, db2View, DB2ObjectType.COLUMN));
                    }
                }
            }
        }
    }
}
Also used : JDBCPreparedStatement(org.jkiss.dbeaver.model.exec.jdbc.JDBCPreparedStatement) DB2Table(org.jkiss.dbeaver.ext.db2.model.DB2Table) JDBCResultSet(org.jkiss.dbeaver.model.exec.jdbc.JDBCResultSet) DB2View(org.jkiss.dbeaver.ext.db2.model.DB2View) DB2Schema(org.jkiss.dbeaver.ext.db2.model.DB2Schema)

Example 8 with DB2Schema

use of org.jkiss.dbeaver.ext.db2.model.DB2Schema in project dbeaver by serge-rider.

the class DB2StructureAssistant method searchTables.

// --------------
// Helper Classes
// --------------
private void searchTables(JDBCSession session, DB2Schema schema, String searchObjectNameMask, List<DB2ObjectType> db2ObjectTypes, int maxResults, List<DBSObjectReference> objects, int nbResults) throws SQLException, DBException {
    String baseSQL;
    if (schema != null) {
        baseSQL = "SELECT TABSCHEMA,TABNAME,TYPE FROM SYSCAT.TABLES\n" + "WHERE TABSCHEMA =? AND TABNAME LIKE ? AND TYPE IN (%s)\n" + "WITH UR";
    } else {
        baseSQL = "SELECT TABSCHEMA,TABNAME,TYPE FROM SYSCAT.TABLES\n" + "WHERE TABNAME LIKE ? AND TYPE IN (%s)\n" + "WITH UR";
    }
    String sql = buildTableSQL(baseSQL, db2ObjectTypes);
    int n = 1;
    try (JDBCPreparedStatement dbStat = session.prepareStatement(sql)) {
        if (schema != null) {
            dbStat.setString(n++, schema.getName());
        //dbStat.setString(n++, DB2Constants.SYSTEM_CATALOG_SCHEMA);
        }
        dbStat.setString(n++, searchObjectNameMask);
        dbStat.setFetchSize(DBConstants.METADATA_FETCH_SIZE);
        String schemaName;
        String objectName;
        DB2Schema db2Schema;
        DB2TableType tableType;
        DB2ObjectType objectType;
        try (JDBCResultSet dbResult = dbStat.executeQuery()) {
            while (dbResult.next()) {
                if (session.getProgressMonitor().isCanceled()) {
                    break;
                }
                if (nbResults++ >= maxResults) {
                    break;
                }
                schemaName = JDBCUtils.safeGetStringTrimmed(dbResult, "TABSCHEMA");
                objectName = JDBCUtils.safeGetString(dbResult, "TABNAME");
                tableType = CommonUtils.valueOf(DB2TableType.class, JDBCUtils.safeGetString(dbResult, "TYPE"));
                db2Schema = dataSource.getSchema(session.getProgressMonitor(), schemaName);
                if (db2Schema == null) {
                    LOG.debug("Schema '" + schemaName + "' not found. Probably was filtered");
                    continue;
                }
                objectType = tableType.getDb2ObjectType();
                objects.add(new DB2ObjectReference(objectName, db2Schema, objectType));
            }
        }
    }
}
Also used : JDBCPreparedStatement(org.jkiss.dbeaver.model.exec.jdbc.JDBCPreparedStatement) JDBCResultSet(org.jkiss.dbeaver.model.exec.jdbc.JDBCResultSet) DB2Schema(org.jkiss.dbeaver.ext.db2.model.DB2Schema) DB2TableType(org.jkiss.dbeaver.ext.db2.model.dict.DB2TableType)

Aggregations

DB2Schema (org.jkiss.dbeaver.ext.db2.model.DB2Schema)6 DB2Table (org.jkiss.dbeaver.ext.db2.model.DB2Table)3 JDBCPreparedStatement (org.jkiss.dbeaver.model.exec.jdbc.JDBCPreparedStatement)3 DBException (org.jkiss.dbeaver.DBException)2 DB2DataSource (org.jkiss.dbeaver.ext.db2.model.DB2DataSource)2 DB2Index (org.jkiss.dbeaver.ext.db2.model.DB2Index)2 DB2TableBase (org.jkiss.dbeaver.ext.db2.model.DB2TableBase)2 JDBCResultSet (org.jkiss.dbeaver.model.exec.jdbc.JDBCResultSet)2 SQLException (java.sql.SQLException)1 ArrayList (java.util.ArrayList)1 NotNull (org.jkiss.code.NotNull)1 DB2ObjectType (org.jkiss.dbeaver.ext.db2.editors.DB2ObjectType)1 DB2Package (org.jkiss.dbeaver.ext.db2.model.DB2Package)1 DB2Routine (org.jkiss.dbeaver.ext.db2.model.DB2Routine)1 DB2Sequence (org.jkiss.dbeaver.ext.db2.model.DB2Sequence)1 DB2TableColumn (org.jkiss.dbeaver.ext.db2.model.DB2TableColumn)1 DB2Tablespace (org.jkiss.dbeaver.ext.db2.model.DB2Tablespace)1 DB2Trigger (org.jkiss.dbeaver.ext.db2.model.DB2Trigger)1 DB2Variable (org.jkiss.dbeaver.ext.db2.model.DB2Variable)1 DB2View (org.jkiss.dbeaver.ext.db2.model.DB2View)1