Eine CONNECT-Anweisung (connect_statement) eröffnet eine Datenbanksitzung und eine Transaktion eines Datenbankbenutzers.
<connect_statement> ::=
CONNECT <parameter_name> IDENTIFIED BY
<parameter_name> [<connect_option>...]
| CONNECT <parameter_name> IDENTIFIED BY <password>
[<connect_option>...]
| CONNECT <user_name> IDENTIFIED BY <parameter_name>
[<connect_option>...]
| CONNECT <user_name> IDENTIFIED BY <password>
[<connect_option>...]
<connect_option> ::=
SQLMODE <INTERNAL|ANSI|DB2|ORACLE>
| ISOLATION LEVEL <unsigned_integer>
| TIMEOUT <unsigned_integer>
parameter_name, password, user_name, unsigned_integer
Bei zulässiger Kombination der Werte von Parametername/Benutzername und Parametername/Kennwort eröffnet der Benutzer eine Datenbanksitzung und erhält Zugang zur Datenbankinstanz. Er ist damit der aktuelle Benutzer in dieser Datenbanksitzung.
Es wird implizit eine Transaktion eröffnet.
Jede CONNECT-Option (connect_option) darf nur einmal angegeben werden.
Mit der Angabe SQLMODE <INTERNAL|ANSI|DB2|ORACLE>kann der SQL-Modus ausgewählt werden. Vorschlagswert ist der SQL-Modus INTERNAL.
Die CONNECT-Option SQLMODE <INTERNAL|ANSI|DB2|ORACLE> ist innerhalb von Programmen nicht zulässig. Dort ist zur Angabe eines vom SQL-Modus INTERNAL abweichenden SQL-Modus die entsprechende Precompiler-Option zu verwenden.
Für jede neu eröffnete Transaktion gilt der in der CONNECT-Anweisung angegebene Isolation-Level, der die Sperrbetriebsart festlegt (Sperren).
Der Isolation-Level wird durch eine Integer-Zahl ohne Vorzeichen nach den Schlüsselwörtern ISOLATION LEVEL festgelegt. Folgende Werte sind zulässig: 0, 1, 2, 3, 10, 15, 20 und 30. Fehlt die Angabe eines Isolation-Levels, wird der Isolation-Level 1 angenommen.
Der angegebene Timeout-Wert muss kleiner oder gleich dem Datenbankparameter SESSION_TIMEOUT sowie dem benutzerspezifischen Timeout-Wert des Benutzers oder der Benutzergruppe sein. Anderenfalls wird beim Anmelden ein Fehler geliefert.
Wenn kein Timeout-Wert angegeben wird, dann wird der kleinere der beiden anderen Werte als Timeout-Wert angenommen.
Wird für den TIMEOUT-Wert 0 angegeben, so erfolgt keine Überprüfung der Inaktivitätsdauer. Das kann dazu führen, dass Datenbankressourcen nicht wieder zur Verfügung stehen, obwohl die zugehörige Anwendung schon, ggf. durch einen Abbruch, ohne eine RELEASE-Anweisung beendet wurde.
Wenn ein Benutzer mit dem Attribut NOT EXCLUSIVE definiert wurde, kann er mehrere Sitzungen zur gleichen Zeit eröffnen. Wenn dies der Fall ist oder zwei Benutzer derselben Benutzergruppe zur gleichen Zeit eine Sitzung eröffnet haben, gelten die Sitzungen als verschieden, d. h. Sperranforderungen der beteiligten Sitzungen können kollidieren.