Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Qualifizierte Namen

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 Routine

  • Qualifikation mit dem Schemanamen für:
    Tabelle, Index, Integritätsbedingung und Routine

  • Qualifikation 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 ::=

{

[[ catalog .] einf_schemaname .] einf_basistabellenname |
[[ catalog .] einf_schemaname .] einf_viewname |
korrelationsname }


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.

Bei CREATE- und GRANT-Anweisungen innerhalb einer CREATE SCHEMA-Anweisung gelten andere Regeln für die implizite Qualifikation (siehe Abschnitt „CREATE SCHEMA - Schema erzeugen").

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

kunde

„Kunde“ und „kunde“ sind gleichbedeutend

auftrag_2

Ziffern und Unterstrich sind zulässig

Spezialname

"TAB-ELLE"

";$&%!"

Sonderzeichen sind zulässig

"mit_2_Anfuehrungszeichen:"""""

Anführungszeichen müssen doppelt
angegeben werden

einfacher Name

auftragsver

Schema AUFTRAGSVER

qualifizierter
Name

auftragkunden.auftragsver.View1

Tabelle VIEW1 im Schema AUF-
TRAGSVER der Datenbank AUF-
TRAGKUNDEN

"View"."SELECT(5)"

Einfache Spalte SELECT(5) der
Tabelle View

"VIEW"."SELECT"(5)

Ausprägung der multiplen Spalte
SELECT der Tabelle VIEW

A.anr

Mit dem Korrelationsnamen A
qualifizierter Spaltenname ANR

Tabelle 10: Namen in SESAM/SQL