English

How To: Discover what version is dependent on a given state of the database

Summary

Instructions provided describe how to detect what version's lineages are dependent on a given state. Knowing if a state of the database is shared by multiple versions can assist in diagnosing data inconsistencies when using the sdegdbrepair utility, or when researching errors identified in the ArcSDE error log.

Procedure

The following example provides the SQL syntax to discover all versions that share the specified state_id value in a version's lineage.

  1. In Oracle's SQL*Plus as the SDE user, to list all versions whose lineage share the common state_id 1800650, execute the following statement.

    Code:
    SQL> SELECT owner, name
    2 FROM sde.versions
    3 WHERE state_id IN
    4 (SELECT DISTINCT lineage_id
    5 FROM sde.state_lineages
    6 WHERE lineage_name IN
    7 (SELECT DISTINCT lineage_name
    8 FROM sde.state_lineages
    9 WHERE lineage_id = 1800650)
    10 AND lineage_id >= 1800650)
    11 ORDER BY state_id;

    OWNER NAME
    ------------------ ---------------------------
    BRENT WORK ORDER K593
    ROB SOUTHEAST CORRIDOR DESIGN
    CRAIG WORK ORDER PK9187
    SDE DEFAULT
    MATT WORK ORDER ST1023
    TONY WORK ORDER LM8

    Based on the given state_id to investigate, replace the value 1800650 with the state in question.