## Spezifikation von Werten (extended_value_spec)

Die Spezifikation von Werten (extended_value_spec) kann durch Angabe eines der Schlüsselwörter DEFAULT bzw. STAMP oder durch Angabe von Werten (value_spec: Literale, Parameterspezifikationen, Schlüsselworten usw.) erfolgen.

### Syntax

<extended_value_spec> ::= DEFAULT | STAMP | <value_spec>

<value_spec> ::= <literal>
| <parameter_spec>
| NULL
| USER | USERGROUP
| SYSDBA | CURRENT_SCHEMA | UID
| [<schema_name>.]<sequence_name>.NEXTVAL
| [<schema_name>.]<sequence_name>.CURRVAL
| <table_name>.CURRVAL
| DATE | TIME | TIMESTAMP
| UTCDATE | TIMEZONE | UTCDIFF
| TRUE | FALSE
| TRANSACTION

### Beispiele

SQL-Tutorial, Nummerngeneratoren für Tabellen

### Erläuterung

#### DEFAULT

DEFAULT bezeichnet den in einer CREATE TABLE-Anweisung oder ALTER TABLE-Anweisung für die Spalte als Vorschlagswert (Default) definierten Wert. Ist ein solcher Wert nicht definiert, kann DEFAULT zur Spezifikation von Werten nicht verwendet werden.

Das Schlüsselwort DEFAULT kann in folgenden SQL-Anweisungen verwendet werden: INSERT-Anweisung, UPDATE-Anweisung

Das Schlüsselwort DEFAULT kann in einem DEFAULT-Prädikat verwendet werden.

#### STAMP

Das Datenbanksystem ist in der Lage, eindeutige Werte zu generieren. Es handelt sich dabei um eine fortlaufende Nummer, die bei X'000000000001' beginnt. Die Werte werden aufsteigend vergeben, wobei nicht sichergestellt werden kann, daß eine Folge von Werten lückenlos ist. Das Schlüsselwort STAMP liefert den nächsten vom Datenbanksystem generierten Wert.

Das Schlüsselwort STAMP kann in folgenden SQL-Anweisungen verwendet werden (nur auf Spalten vom Datentyp CHAR(n) BYTE mit n>=8, siehe DEFAULT-Spezifikation): INSERT-Anweisung, UPDATE-Anweisung

Wenn der Anwender den generierten Wert erfahren möchte, bevor er auf eine Spalte angewandt wird, muß folgende SQL-Anweisung verwendet werden: NEXT STAMP-Anweisung

#### <value_spec>

##### NULL

Angabe des NULL-Werts

##### USER | USERGROUP

Aktueller Benutzername bzw. Name der Benutzergruppe, zu der der Benutzer gehört, der die SQL-Anweisung aufruft. Gehört der Benutzer keiner Benutzergruppe an, wird der Benutzername angezeigt.

##### SYSDBA

Angabe des Datenbanksystemadministrators

##### CURRENT_SCHEMA

Angabe des aktuellen Schemas.

##### UID

Identifikation des aktuellen Benutzers. Diese DEFAULT-Spezifikation kann nur für Spalten mit numerischem Datentyp und mindestens 10 Vorkommastellen angegeben werden.

##### [<schema_name>.]<sequence_name>.NEXTVAL | [<schema_name>.]<sequence_name>.CURRVAL

NEXTVAL gibt den nächsten verfügbaren Wert an, der durch den impliziten Nummerngenerator, der durch die Sequenz [<schema_name>.]<sequence_name> definiert wurde, erzeugt wird.

CURRVAL gibt den gerade verwendeten Wert an, der innerhalb der Datenbanksitzung durch den Nummerngenerator [<schema_name>.]<sequence_name> erzeugt wurde.

Siehe auch:

CREATE SEQUENCE-Anweisung (create_sequence_statement)

##### <table_name>.CURRVAL

Letzer in der aktuellen Datenbanksitzung vergebener Wert der Serial-Spalte der Tabelle table_name.

##### DATE | TIME | TIMESTAMP

Aktuelles Datum, Zeit, Zeitstempel

##### UTCDATE

Aktueller UTC-Zeitstempel (Greenwich Mean Time)

##### TIMEZONE

Angabe der Zeitdifferenz in der Form hhmmss (im Datentyp FIXED(6)) zwischen Ihrer lokalen Zeitangabe und der UTC-Zeitangabe.

##### UTCDIFF

Angabe der Zeitdifferenz in Stunden (im Datentyp FIXED(4,2)) zwischen Ihrer lokalen Zeitangabe und der UTC-Zeitangabe.

##### TRUE | FALSE

Entsprechender Wert einer Spalte vom Datentyp BOOLEAN

##### TRANSACTION

Identifikation der aktuellen Transaktion. Es handelt sich um einen Wert mit dem Datentyp CHAR(6) BYTE.