2016-07-28 27 views
0

In den vorherigen Versionen der Progress-Datenbank (9.X, 10.X) funktioniert die folgende Abfrage einwandfrei, um den primären Index der Tabelle zu finden.Abfrage primären Index für eine Fortschrittstabelle (openegde V11.6) zu finden

select "_index-name" 
    from PUB."_index" in, PUB."_file" fi 
    where fi."_file-name"='tableName' 
    and in."rowid" = 
    (select"_file"."_prime-index" 
    from PUB."_file" fs 
    where fs."_file-name"='tableName'); 

Nun ist die rowID hat Fortschritt v11.6 entfernt worden ist, Gibt es eine SQL-Abfrage den Primärindex eine Fortschrittsdatenbanktabelle durch ojdbc zu holen?

+2

Vielleicht hat Ihre Tabelle keinen primären Index? –

Antwort

4

Dies funktioniert auch in 11.6. Siehe die folgende Abfrage:

select "_index-name" from PUB."_index" idx, PUB."_file" fi where fi."_file-name"='Customer' and idx.rowid =(select"_file"."_prime-index" from PUB."_file" fs where fs."_file-name"='Customer'); 

_Index-Name 
-------------------------------- 
CustNum 
+0

Danke @Austin. Ich habe geändert. "Rowid" zu in.rowid und es hat gut funktioniert. – Vel

+0

Mit der Implementierung der Tabellenpartitionierung in OpenEdge 11.4: http://knowledgebase.progress.com/articles/Article/P58968 Wie kann ich die obige Abfrage ändern, um die Partitionsdetails mit ROWID zu vergleichen? – Vel