Um in einer SQL-Anweisung verschiedene Objekte mit dem gleichen Namen eindeutig identifizieren zu können, gibt es die Möglichkeit, Namen zu qualifizieren. Folgende Qualifikationen sind möglich:
Qualifikation mit dem Datenbanknamen für:
Schema, Space, Storage Group, Tabelle, Index, Integritätsbedingung und RoutineQualifikation mit dem Schemanamen für:
Tabelle, Index, Integritätsbedingung und RoutineQualifikation mit dem Tabellen- bzw. Korrelationsnamen für:
Spalte (siehe "Tabellenangabe")
Folgende Syntaxübersicht fasst diese Möglichkeiten zusammen:
qualifizierter_name ::=
{
index
|
integritätsbedingungsname
|
routine
|
schema
|
space
|
stogroup
|
tabelle }
index ::= [[
catalog .]
einf_schemaname .]
einf_indexname
integritätsbedingungsname ::= [[
catalog .]
einf_schemaname .]
einf_bedingungsname
routine ::= [[
catalog .]
einf_schemaname .]
einf_routinenname
schema ::= [
catalog .]
einf_schemaname
space ::= [
catalog .]
einf_spacename
stogroup ::= [
catalog .]
einf_stogroupname
tabelle ::=
|
|
Implizite Qualifikation
Es gilt folgende implizite Qualifikation:
Ist keine Schema-Qualifikation angegeben, bezieht sich der Name auf das voreingestellte Schema.
Ist keine Catalog-Qualifikation angegeben, bezieht sich der Name auf die voreingestellte Datenbank.
Schema und Datenbank werden mit der Precompiler-Option SOURCE-PROPERTIES voreingestellt (siehe Handbuch „ ESQL-COBOL für SESAM/SQL-Server“). Die voreingestellten Datenbank- und Schemanamen können mit SET CATALOG bzw. SET SCHEMA umdefiniert werden. Die umdefinierte Voreinstellung gilt für alle Anweisungen, die nach der Umdefinition mit PREPARE vorbereitet oder mit EXECUTE IMMEDIATE ausgeführt werden, bis zur nächsten Umdefinition oder bis zum Ende der SQL-Session.
Beispiel
Die Qualifikation im Tabellennamen gibt an, zu welchem Schema und zu welcher Datenbank die Tabelle gehört:
auftragkunden.auftragsver.kunde:
Tabelle KUNDE
im Schema AUFTRAGSVER
der Datenbank AUFTRAGKUNDEN
.
auftragsver.kunde:
Tabelle KUNDE
im Schema AUFTRAGSVER
der voreingestellten Datenbank.
kunde:
Tabelle KUNDE
im voreingestellten Schema.
Übersicht
Art des Namens | Beispiele | Bemerkung |
regulärer Name |
| „Kunde“ und „kunde“ sind gleichbedeutend |
| Ziffern und Unterstrich sind zulässig | |
Spezialname |
| Sonderzeichen sind zulässig |
| Anführungszeichen müssen doppelt | |
einfacher Name |
| Schema AUFTRAGSVER |
qualifizierter |
| Tabelle VIEW1 im Schema AUF- |
| Einfache Spalte SELECT(5) der | |
| Ausprägung der multiplen Spalte | |
| Mit dem Korrelationsnamen A |
Tabelle 10: Namen in SESAM/SQL