A INHALTSVERZEICHNIS SEITE 1 Einleitung 2 1.1 Aenderungen gegenueber DRIVE V2.2 3 1.1.1 Erweiterte DRIVE-Anweisungen 3 1.1.2 Erweiterte DRIVE-SQL-Anweisungen 3 1.1.3 Neue DRIVE-SQL-Metavariablen 3 1.1.4 Erweiterte DRIVE-SQL-Metavariablen 3 2 Fehlerbehebungen 4 2.1 Korrekturen zum DRIVE-Ergaenzungsband 4 3 Einsatz von DRIVE 5 3.1 Allgemeines 5 3.2 Umstellungen von UTM-Anwendungen von DLL- auf 6 BLS-Technik 3.3 DRIVE fuer den TIAM-Betrieb generieren 7 3.3.1 New-Style 7 3.3.2 Old-Style 8 3.4 DRIVE fuer den UTM-Betrieb generieren 9 3.4.1 Besonderheiten fuer den New-Style-Betrieb 9 3.4.1.1 Aenderungen der KDCDEF-Steueranweisungen 9 3.4.1.2 UTM-New-Style-Anwendung generieren 9 3.4.2 Besonderheiten fuer den Mischbetrieb 10 3.4.2.1 Aenderungen der KDCDEF-Steueranweisungen 10 3.4.2.2 UTM-Mischbetriebs-Anwendung generieren 11 3.4.3 Besonderheiten fuer den Old-Style-Betrieb 12 3.4.3.1 Aenderungen der KDCDEF-Steueranweisungen 12 3.4.3.2 UTM-Old-Style-Anwendung generieren 14 3.5 Einsatz einer DRIVE-UTM-Anwendung 16 4 DRIVE-Anweisungen 17 4.1 "OPTION"-Anweisung 17 5 DRIVE-SQL-Anweisungen 18 5.1 CREATE TABLE-Basistabelle erzeugen 18 5.2 DECLARE - CURSOR vereinbaren 19 5.3 "UTILITY"-Anweisungen 21 6 DRIVE-SQL-Metavariablen 22 6.1 Abfrageausdruck 23 6.2 CASE-Ausdruck 26 6.2.1 CASE-Ausdruck mit Suchbedingung 26 6.2.2 Einfacher CASE-Ausdruck 27 6.2.3 CASE-Ausdruck mit NULLIF 27 6.2.4 CASE-Ausdruck mit COALESCE 28 6.3 CAST-Ausdruck 29 6.4 join_ausdruck 30 6.5 Numerische-Funktionen 31 6.6 Zeichenketten-Funktionen 32 6.6.1 SUBSTRING() - Teilzeichenkette extrahieren 33 6.6.2 TRIM() - Zeichen entfernen 34 6.6.3 LOWER() - Grossbuchstaben umwandeln 35 6.6.4 UPPER() - Kleinbuchstaben umwandeln 35 6.7 Zeit-Funktionen 36 7 Anhang 37 7.1 Schluesselwoerter 37 7.2 Literatur 38 SEITE 1 A Fujitsu Technology Solutions DRIVE (BS2000) Version V3.1A10 README - Datei fuer DRIVE V3.1A10 SEITE 1 A 1 Einleitung Diese Readme-Datei ergaenzt die Handbuecher zu DRIVE V2.2 und DRIVE/WINDOWS V2.1. Sie beschreibt die neuen und geaenderten Funktionen von DRIVE V3.1A10. Im Einzelnen beziehen sich die Kapitel auf folgende Handbuecher : - Kapitel 2 und 4 beziehen sich auf "DRIVE-Ergaenzungsband" Ä1À. - Kapitel 3 bezieht sich auf "DRIVE-Lexikon" Ä2À. - Kapitel 5 bezieht sich auf "DRIVE-SQL-Lexikon" Ä3À. Die Readme-Datei koennen Sie mit dem Kommando /SHOW-FILES oder mit einem Editor ansehen oder auf einem Standarddrucker mit folgendem Kommando ausdrucken : /PRINT-DOCUMENT , LINE-SPACING=*BY-EBCDIC-CONTROL bei SPOOL-Versionen kleiner V3.0A : /PRINT-FILE FILE-NAME=, LAYOUT-CONTROL= PARAMETERS(CONTROL-CHARACTERS=EBCDIC) SEITE 2 A 1.1 Aenderungen gegenueber DRIVE V2.2 1.1.1 Erweiterte DRIVE-Anweisungen Anweisung Erweiterung Seite OPTION INDEXCHECK 17 1.1.2 Erweiterte DRIVE-SQL-Anweisungen Anweisung Erweiterung Seite CREATE TABLE Primaerkeylaenge < 4 18 DECLARE CURSOR HOLD-Cursoren 19 UTILITY EXPORT/IMPORT TABLE 21 1.1.3 Neue DRIVE-SQL-Metavariablen Metavariable Seite CASE-Ausdruck 26 CAST-Ausdruck 29 numerische Funktionen 31 Zeichenkettenfunktionen 32 1.1.4 Erweiterte DRIVE-SQL-Metavariablen Metavariable Erweiterung Seite Abfrageausdruck EXCEPT DISTINCT 23 Join-Ausdruck Cross Join 30 Zeitfunktionen DATE_OF_JULIAN_DAY 36 SEITE 3 A 2 Fehlerbehebungen 2.1 Korrekturen zum DRIVE-Ergaenzungsband Das Handbuch "DRIVE-Ergaenzungsband" Ä1À muss wie folgt korrigiert werden: SF2GDAT4 - Jahreszahlenkonversion (zu Abschnitt 8.1.1, Seite 204) &par3 Angabe eines Wertes, wie weit das 100-Jahres-Intervall vom aktuellen Datum aus in die Zukunft reichen soll. &par3 muss vom Typ numerische Variable oder Literal mit Laenge <= 4 Byte sein. Der Wert von &par3 muss eine ganze Zahl sein. Die Summe aus dem aktuellen Jahr und dem Wert von &par3 muss groesser 99 und kleiner 10000 sein. SF2IDAT4 - Jahreszahlenkonversion (zu Abschnitt 8.1.2, Seite 207) &par3 Angabe eines Wertes, wie weit das 100-Jahres-Intervall vom aktuellen Datum aus in die Zukunft reichen soll. &par3 muss vom Typ numerische Variable oder Literal mit Laenge <= 4 Byte sein. Der Wert von &par3 muss eine ganze Zahl sein. Die Summe aus dem aktuellen Jahr und dem Wert von &par3 muss groesser 99 und kleiner 10000 sein. SEITE 4 A 3 Einsatz von DRIVE Dieses Kapitel enthaelt die Ergaenzungen und Aenderungen zum "DRIVE-Ergaenzungsband" Ä1À, Abschnitt "Einsatz von DRIVE". 3.1 Allgemeines - Die Versionsnummer in den Datei- und Bibliotheksnamen wird von 022 nach 031 geaendert. - Der Subsystemname lautet DRIVE31; das Old-Style-Subsystem heisst wie bisher DRIVE. - Anstelle von TIAM- und UTM-Old-Style-Phasen (DLL-Technik) werden Start-Llm's gebunden (BLS-Technik) (Prozedur DRIPRC.INSTALL.DRIVE in der DRIVE-Systembibliothek SYSPRC.DRIVE.031). - Zusaetzlich wird eine Prozedur ausgeliefert, die fuer den Old-Style die alte DLL-Technik unterstuetzt (Prozedur DRIPRC.DRIVE.031.DLL in der DRIVE-Systembibliothek SYSPRC.DRIVE.031). - Neuer Parameter &LMSLIB bei der DRIVE-Installationsprozedur DRIPRC.INSTALL.DRIVE in der DRIVE-Systembibliothek SYSPRC.DRIVE.031). SEITE 5 A 3.2 Umstellungen von UTM-Anwendungen von DLL- auf BLS-Technik Im Folgenden werden alle fuer die DRIVE V3.1 relevanten Aenderungen in der KDCDEF beschrieben, die vorzunehmen sind, wenn eine UTM-Anwendung von DLL-Technik auf BLS-Technik umgestellt werden soll. DLL-Anweisungen: | notwendige BLS-Anweisungen: ----------------------------------------------------------------- | PROGRAM ,COMP=ASSEMB, | PROGRAM ,COMP=ASSEMB, LOAD=STATIC,LIB= | LOAD-MODULE= | LOAD-MODULE , LIB=, | LOAD-MODE=STARTUP, | VERSION= | PROGRAM ,COMP=ILCS | PROGRAM ,COMP=ILCS, | LOAD-MODULE= | MODULE ,..., | LOAD-MODULE ,..., LOAD=STATIC | LOAD-MODE=STARTUP, | VERSION= | ----------------------------------------------------------------- Fuer den DRIVE-Old-Style muessen anstelle von Phasen Start-Llms wie im New-Style erzeugt werden, wenn mit BLS-Technik gearbeitet werden soll. Die KDCDEF-Rahmen in der DRIVE-Systembibliothek SYSPRC.DRIVE.031 werden in BLS-Technik und fuer den Old-Style zusaetzlich in der alten DLL-Technik ausgeliefert. Ebenso sind zusaetzlich eine Installations- und Startprozedur zum Erzeugen von Old-Style-Phasen (alte DLL-Technik) enthalten. Alle Dateien und Prozeduren fuer die DLL-Technik haben das postfix .DLL. SEITE 6 A 3.3 DRIVE fuer den TIAM-Betrieb generieren Aenderungen zum "DRIVE-Ergaenzungsband" Ä1À, Abschnitt 3.3 "DRIVE fuer den TIAM-Betrieb generieren". Aufruf der Installationsprozedur von DRIVE: CALL-PROCEDURE SYSPRC.DRIVE.031(DRIPRC.INSTALL.DRIVE) nur fuer DLL-Old-Style: CALL-PROCEDURE SYSPRC.DRIVE.031(DRIPRC.INSTALL.DLL) 3.3.1 New-Style Angabe eines neuen Parameterwertes &LMSLIB= im Prozedur- ablauf. Geben Sie bitte fuer die Modulbibliothek an, in der sich das LMS-Anschlussmodul LMSUP1 befindet. Beispiel : Generierung eines Startllms DRISES fuer die DRIVE-New-Style-Fassung /CALL-PROCEDURE SYSPRC.DRIVE.031(DRIPRC.INSTALL.DRIVE)- / PROC-PARAM=(STYLE=NEW,- / BETRIEB=TIAM,- / DRIVELIB=SYSLNK.DRIVE.031,- / STARTLLM=DRISES,- / OBJLIB=,- / BINDER=$TSOS.BINDER,- / EDTLIB=$TSOS.EDTLIB,- / LMSLIB=$TSOS.LMSLIB) SEITE 7 A 3.3.2 Old-Style Aenderungen zum "DRIVE-Ergaenzungsband" Ä1À, Abschnitt 3.3.1 "Besonderheiten fuer den Old-Style-Betrieb" BLS-Technik: dieselben Parameter wie im New-Style mit &STYLE=OLD und &FASSUNG= Ä SESAM / LEASY / DMS À (neu sind die Parameter &BINDER, &STARTLLM, &OBJLIB; es entfallen &PHASE und &TSOSLNK, nicht notwendig ist der neue Parameter &LMSLIB) Beispiel : Generierung einer DRIVE-Old-Style-Fassung fuer den Zugriff auf SESAM. Erzeugen des Startllms DRISES /CALL-PROCEDURE SYSPRC.DRIVE.031(DRIPRC.INSTALL.DRIVE)- / PROC-PARAM=(STYLE=OLD,- / BETRIEB=TIAM,- / FASSUNG=LEASY,- / DRIVELIB=SYSLNK.DRIVE.031,- / STARTLLM=DRISES,- / OBJLIB=,- / BINDER=$TSOS.BINDER,- / EDTLIB=$TSOS.EDTLIB) DLL-Technik: entsprechend Abschnitt "Besonderheiten fuer den Old-Style-Betrieb" Beispiel: Generierung einer DRIVE-Old-Style-Fassung fuer den Zugriff auf SESAM. DLL: Erzeugen der Startphase PH.DRISES /CALL-PROCEDURE SYSPRC.DRIVE.031(DRIPRC.INSTALL.DLL)- / PROC-PARAM=(BETRIEB=TIAM,- / FASSUNG=SESAM,- / DRIVELIB=SYSLNK.DRIVE.031,- / PHASE=PH.DRISES,- / TSOSLNK=$TSOS.TSOSLNK,- / EDTLIB=$TSOS.EDTLIB) SEITE 8 A 3.4 DRIVE fuer den UTM-Betrieb generieren Aenderungen zum "DRIVE-Ergaenzungsband" Ä1À, Abschnitt 3.4 "DRIVE fuer den UTM-Betrieb generieren". 3.4.1 Besonderheiten fuer den New-Style-Betrieb 3.4.1.1 Aenderungen der KDCDEF-Steueranweisungen Aenderungen zum "DRIVE-Ergaenzungsband" Ä1À, Abschnitt 3.4.2.1 "KDCDEF-Steueranweisungen". Die bisherigen PROGRAM-Anweisungen fuer EXSTRT und EXSHUT ersetzen durch : PROGRAM EXSTRT,COMP=ILCS,LOAD-MODULE=EXSTART PROGRAM EXSHUT,COMP=ILCS,LOAD-MODULE=EXSHUTE Die bisherigen MODULE-Anweisungen durch LOAD-MODULE - Anweisungen ersetzen : LOAD-MODULE EXTAB, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 LOAD-MODULE EXSTART, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 LOAD-MODULE EXSHUTE, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 LOAD-MODULE DRIDUM51, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 ,VERSION=3.1A10 3.4.1.2 UTM-New-Style-Anwendung generieren Aenderungen zum "DRIVE-Ergaenzungsband" Ä1À, Abschnitt 3.4.4 "UTM-Anwendung generieren" Angabe eines neuen Parameterwertes &LMSLIB= im Prozedurablauf. Geben Sie bitte fuer die Modulbibliothek an, in der sich das LMS-Anschlussmodul LMSUP1 befindet. SEITE 9 A 3.4.2 Besonderheiten fuer den Mischbetrieb 3.4.2.1 Aenderungen der KDCDEF-Steueranweisungen Aenderungen zum "DRIVE-Ergaenzungsband" Ä1À, Abschnitt 3.4.6.2 "KDCDEF-Steueranweisungen". Die bisherigen zusaetzlichen PROGRAM-Anweisungen ersetzen durch : PROGRAM DRIKROOT,COMP=ASSEMB,LOAD-MODULE=DRIKROOT PROGRAM DRIVORG, COMP=ASSEMB,LOAD-MODULE=DRIVORG PROGRAM EXFORM, COMP=ASSEMB,LOAD-MODULE=EXFORM Die bisherigen zusaetzlichen MODULE-Anweisungen ersetzen durch : LOAD-MODULE DRIFORM, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 LOAD-MODULE DRISHUT, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 LOAD-MODULE DRIEXT, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 LOAD-MODULE SF2INT, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 LOAD-MODULE SF2LINK, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 LOAD-MODULE DRIC51, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 LOAD-MODULE SF2REFX, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 zusaetzlich sind die folgenden LOAD-MODULE - Anweisungen anzugeben : LOAD-MODULE EXFORM, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 LOAD-MODULE DRIKROOT, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 LOAD-MODULE DRIVORG, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 SEITE 10 A Fuer das Datenbanksystem SESAM/SQL-Server V3.1 sind die bisherigen zusaetzlichen MODULE-Anweisungen zu ersetzen durch : LOAD-MODULE DRISTARS, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 LOAD-MODULE SESORT , LIB=sesamlib ,LOAD-MODE=STARTUP ,VERSION=3.1A10 Fuer DMS ist die bisherige zusaetzliche MODULE-Anweisung zu ersetzen durch : LOAD-MODULE DRISTARD, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 Fuer LEASY ist die bisherige zusaetzliche MODULE-Anweisung zu ersetzen durch : LOAD-MODULE DRISTARL, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 Fuer LEASY entfaellt DRIC51, wie bisher. 3.4.2.2 UTM-Mischbetriebs-Anwendung generieren Aenderungen zum "DRIVE-Ergaenzungsband" Ä1À, Abschnitt 3.4.6.3 "UTM-Anwendung generieren" Angabe eines neuen Parameterwertes &LMSLIB=im Prozedur- ablauf. Geben Sie bitte fuer die Modulbibliothek an, in der sich das LMS-Anschlussmodul LMSUP1 befindet. SEITE 11 A 3.4.3 Besonderheiten fuer den Old-Style-Betrieb 3.4.3.1 Aenderungen der KDCDEF-Steueranweisungen Aenderungen zum "DRIVE-Ergaenzungsband" Ä1À, Abschnitt 3.4.7.2 "KDCDEF-Steueranweisungen" Die bisherigen PROGRAM-Anweisungen ersetzen durch : PROGRAM DRIKROOT,COMP=ASSEMB,LOAD-MODULE=DRIKROOT PROGRAM DRIVORG, COMP=ASSEMB,LOAD-MODULE=DRIVORG PROGRAM EXFORM, COMP=ASSEMB,LOAD-MODULE=EXFORM PROGRAM EXSTRT, COMP=ILCS,LOAD-MODULE=EXSTART PROGRAM EXSHUT, COMP=ILCS,LOAD-MODULE=EXSHUTE Die bisherigen MODULE-Anweisungen durch LOAD-MODULE - Anweisungen ersetzen : LOAD-MODULE DRIFORM, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 LOAD-MODULE DRISHUT, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 LOAD-MODULE DRIEXT, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 LOAD-MODULE EXTAB , LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 LOAD-MODULE DRIVMC, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 LOAD-MODULE DRIC51, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 LOAD-MODULE SF2INT, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 LOAD-MODULE SF2LINK, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 LOAD-MODULE SF2REFX, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 SEITE 12 A zusaetzlich sind die folgenden LOAD-MODULE - Anweisungen anzugeben : LOAD-MODULE EXFORM, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 LOAD-MODULE DRIKROOT, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 LOAD-MODULE DRIVORG, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 Die KDCDEF-Steueranweisung LOAD-MODULE EXTAB muss wie bisher vor der Anweisung LOAD-MODULE DRIVMC stehen. Fuer das Datenbanksystem SESAM/SQL-Server V3.1 sind die bisherigen zusaetzlichen MODULE-Anweisungen zu ersetzen durch : LOAD-MODULE DRISTARS, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 LOAD-MODULE SESORT, LIB=sesamlib, LOAD-MODE=STARTUP ,VERSION=3.1A10 LOAD-MODULE SESUTMC, LIB=sesamlib, LOAD-MODE=STARTUP ,VERSION=3.1A10 Fuer DMS ist die bisherige zusaetzliche MODULE-Anweisung zu ersetzen durch : LOAD-MODULE DRISTARD, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 Fuer LEASY ist die bisherige zusaetzliche MODULE-Anweisung zu ersetzen durch : LOAD-MODULE DRISTARL, LIB=SYSLNK.DRIVE.031 ,LOAD-MODE=STARTUP,VERSION=3.1A10 Fuer LEASY entfaellt DRIC51, wie bisher. SEITE 13 A 3.4.3.2 UTM-Old-Style-Anwendung generieren Aenderungen zum "DRIVE-Ergaenzungsband" Ä1À, Abschnitt 3.4.7.4 "UTM-Anwendung generieren" Aufruf der Installationsprozedur von DRIVE: ------------------------------------------- CALL-PROCEDURE SYSPRC.DRIVE.031(DRIPRC.INSTALL.DRIVE) Parameterversorgung: dieselben Parameter wie im New-Style mit &STYLE=OLD und &FASSUNG= Ä SESAM / LEASY / DMS À (neu sind die Parameter &BINDER, &STARTLLM; es entfallen &PHASE und &TSOSLNK, nicht notwendig ist der neue Parameter &LMSLIB) Beispiel: Sie generieren eine UTM-DRIVE-Old-Style-Fassung fuer den Zugriff auf SESAM. BLS: Erzeugen des Startllms UDRISES /CALL-PROCEDURE SYSPRC.DRIVE.031(DRIPRC.INSTALL.DRIVE)- / PROC-PARAM=(STYLE=OLD,- / BETRIEB=UTM,- / FASSUNG=SESAM,- / STARTLLM=UDRISES,- / DRIVELIB=SYSLNK.DRIVE.031,- / ROOTELEM=UDRTSES,- / ROOTLIB=,- / BINDER=$TSOS.BINDER,- / EDTLIB=$TSOS.EDTLIB,- / UTMLIB=$TSOS.SYSLNK.UTM.051,- / UTMSPLLIB=$TSOS.SYSLNK.UTM.051.SPLRTS,- / SESAMLIB=$TSOS.SYSLNK.SESAM-SQL.031) SEITE 14 A Aufruf der Installationsprozedur von DRIVE nur fuer DLL-Old-Style: ------------------------------------------------------------------ CALL-PROCEDURE SYSPRC.DRIVE.031(DRIPRC.INSTALL.DLL) Parameterversorgung: entsprechend "DRIVE-Ergaenzungsband" Ä1À, Abschnitt 3.4.7.4 "UTM-Anwendung generieren". Beispiel: Sie generieren eine UTM-DRIVE-Old-Style-Fassung fuer den Zugriff auf SESAM. DLL: Erzeugen der Startphase PH.DRISES /CALL-PROCEDURE SYSPRC.DRIVE.031(DRIPRC.INSTALL.DLL)- / PROC-PARAM=(BETRIEB=UTM,- / FASSUNG=SESAM,- / PHASE=PH.DRISES,- / DRIVELIB=SYSLNK.DRIVE.031,- / ROOTELEM=UDRTSES,- / ROOTLIB=,- / TSOSLNK=$TSOS.TSOSLNK,- / EDTLIB=$TSOS.EDTLIB,- / CRTELIB=$TSOS.SYSLNK.CRTE,- / UTMLIB=$TSOS.SYSLNK.UTM.051,- / UTMSPLLIB=$TSOS.SYSLNK.UTM.051.SPLRTS,- / SESAMLIB=$TSOS.SYSLNK.SESAM-SQL.031) SEITE 15 A 3.5 Einsatz einer DRIVE-UTM-Anwendung Aenderungen zum "DRIVE-Ergaenzungsband" Ä1À, Abschnitt 3.5 "Einsatz einer DRIVE-UTM-Anwendung" Startprozedur -------------- (Rahmen DRIPRC.START in DRIVE-Systembibliothek SYSPRC.DRIVE.031) siehe Abschnitt 3.5.2.1 Ab UTM V5.0 ist vor den FHS-Startparametern ein .UTM END notwendig: ... .UTM START ... .UTM END .FHS DE=NO .FHS MAPLIB=formatlib .UTM END .DRIVE PAR .. ... .DRIVE END Startprozedur fuer den Old-Style-Betrieb: ----------------------------------------- (Rahmen DRIPRC.START in DRIVE-Systembibliothek SYSPRC.DRIVE.031) siehe Abschnitt 3.5.2.3 BLS-Technik: Anstelle der Anweisung muss die entspr. Anweisung wie im New-Style und Mischbetrieb angegeben werden. Beispiel: /START-PROG - / FROM-FILE=*MOD(LIB=MYROOTLIB.DRIVE31,ELEM=UDRISES - / ,PROG-MO=ANY),RUN-MO=ADV(ALT-LIB=YES,NAME-COL=ABORT - / ,UN-EXTRNS=DELAY,LO-IN=REF) DLL-Technik: Startprozedur-Rahmen DRIPRC.START.DLL in DRIVE-Systembibliothek SYSPRC.DRIVE.031. - ansonsten keine Aenderungen SEITE 16 A 4 DRIVE-Anweisungen Dieses Kapitel enthaelt die Ergaenzungen und Aenderungen zum "DRIVE-Lexikon" Ä2À, Abschnitt "DRIVE-Anweisungen". 4.1 "OPTION"-Anweisung Zur Steuerung des Uebersetzungslaufs eines DRIVE-Programms gibt es fogende neue Compiler-Option : OPTION ù ... INDEXCHECK = ù OFF | ON ¦ ... ¦ ... INDEXCHECK legt fest, ob eine Pruef-Routine im Objektcode des DRIVE-Programms fuer den Gueltigkeitsbereich der Index-Variablen in einer indizierten DRIVE- Variablen generiert werden soll. INDEXCHECK kann nur angegeben werden, wenn der DRIVE-Compiler eingesetzt wird. = OFF Es wird kein Pruefcode generiert. = ON Vorbelegung Es wird eine Pruefroutine im Objektcode des DRIVE- Programms generiert. Uebersicht der Default-Werte: Option | Default-Wert INDEXCHECK | ON SEITE 17 A 5 DRIVE-SQL-Anweisungen Dieses Kapitel enthaelt die Ergaenzungen und Aenderungen zum "DRIVE-Ergaenzungsband" Ä1À, Abschnitt "DRIVE-SQL-Anweisungen". Uebersicht Erweiterte DRIVE-SQL-Anweisungen : CREATE TABLE DECLARE CURSOR UTILITY 5.1 CREATE TABLE-Basistabelle erzeugen CREATE TABLE erzeugt eine Basistabelle, in der die Daten permanent gespeichert sind. CREATE Ä CALL DML À TABLE tabelle ( ù spaltendefiniton | Ä CONSTRAINT integritaetsbedingungsname À tabellenbedingung ¦, ... ) Ä USING SPACE space À Erweiterungen : Die Anweisung wurde an die Sprachbeschreibung von SESAM/SQL- V3.1A angepasst. Neu ist, dass es bei der einer SQL- Tabelle keine Laengenrestriktion zum Primaerschluessel mehr gibt. Die Primaerschluessel-Laenge kleiner 4 ist also erlaubt. Fuer CALL-DML-Tabellen aendert sich die Laengenrestriktion zum Primaerschluessel nicht ! SEITE 18 A 5.2 DECLARE - CURSOR vereinbaren DECLARE vereinbart einen Cursor. Mit dem Cursor kann auf die einzelnen Saetze einer Ergebnistabelle zugegriffen werden. Der aktuelle Satz, auf den der Cursor zeigt, kann gelesen werden. Bei einem aenderbaren Cursor koennen die Saetze auch geaendert und geloescht werden. DECLARE cursor Ä ù PERMANENT | TEMPORARY ¦ À Ä NO SCROLL | SCROLL À CURSOR Ä WITH HOLD | WITHOUT HOLD À Ä PREFETCH n À Ä FOR cursorbeschreibung À cursorbeschreibung::= abfrageausdruck Ä ORDER BY ù ù spalte | spalte(posnr) | spaltennummer ¦ Ä ù ASCENDING | DESCENDING ¦ À ¦, ... À Ä FOR ù READ ONLY | UPDATE Ä OF spalte,....À ¦ À n::= vorzeichenlose_ganzzahl posnr::= vorzeichenlose_ganzzahl spaltennummer::= vorzeichenlose_ganzzahl abfrageausdruck Abfrageausdruck zur Auswahl von Saetzen und Spalten aus Basistabellen oder Views; siehe "DRIVE-SQL-Lexikon" Ä3À, Abschnitt 4 "DRIVE-SQL-Metavariablen" - Beschreibung der Metavariablen . SEITE 19 A Erweiterungen : 1. Die Anweisung wurde an die Sprachbeschreibung von SESAM/ SQL- V3.1A angepasst. 2. Value-Expression in der ORDER BY Klausel (1) Spaltennamen koennen mit Tabellen-Namen, Schema-Na- men und Catalog-Namen qualifiziert werden. (2) Es duerfen Spaltennamen in der ORDER BY Klausel an- gegeben werden, welche nicht in der SELECT-Liste de- finiert sind. 3. WITH HOLD-Cursoren (1) WITH-HOLD Cursoren sind Cursoren die beim COMMIT ei- ner Transaktion nicht geschlossen werden. (2) WITH-HOLD Cursoren werden beim expliziten und inter- nen ROLLBACK in der Regel geschlossen. (3) Bei ROLLBACK auf einen WITH HOLD Cursor im "COMMIT- Zustand" (noch kein FETCH nach COMMIT) wird dieser nicht geschlossen! (4) WITH-HOLD Cursoren verhalten sich wie Cursoren, wel- che mit STORE bzw. RESTORE den COMMIT-Close verhin- dern. SEITE 20 A 5.3 "UTILITY"-Anweisungen Mit dieser Anweisung werden Utility-Anweisungen an SESAM/SQL durchgereicht. UTILITY utility-anweisung Die Utility-Anweisungen werden als DRIVE-String durchgereicht. Der String wird dabei jedoch nicht vollstaendig geprueft. Folgende neuen UTILITY-Anweisungen sind moeglich : EXPORT TABLE : lesen der Meta- und Anwenderdaten einer Basis- tabelle aus einer SESAM-Datenbank, und in eine BS2000-Datei schreiben. IMPORT TABLE : die Daten aus der Export-Datei werden gelesen und mit ihrer Hilfe in einer beliebigen SESAM- Datenbank eine Basistabelle der gleichen Struktur generiert. Naeheres zu den Anweisungen finden Sie im Handbuch "SESAM/SQL-Server SQL-Sprachbeschreibung, Teil 2" Ä5À SEITE 21 A 6 DRIVE-SQL-Metavariablen Dieses Kapitel enthaelt die Ergaenzungen und Aenderungen zum "DRIVE-SQL-Lexikon" Ä3À, Abschnitt "DRIVE-SQL-Metavariablen". Die folgende Aufstellung gibt einen Ueberblick. Neue DRIVE-SQL-Metavariablen : CASE-Ausdruck CASE-Ausdruck mit Suchbedingung einfacher CASE-Ausdruck CASE-Ausdruck mit NULLIF CASE-Ausdruck mit COALESCE CAST-Ausdruck numerische Funktionen CHARACTER_LENGTH() POSITION() JULIAN_DAY_OF_DATE Zeichenkettenfunktionen SUBSTRING() TRIM() UPPER() LOWER() Erweiterte DRIVE-SQL-Metavariablen : Abfrageausdruck TABLE tabelle UNION DISTINCT EXCEPT DISTINCT Join-Ausdruck Cross Join Zeitfunktionen LOCALTIME(3) LOCALTIMESTAMP(3) DATE_OF_JULIAN_DAY SEITE 22 A 6.1 Abfrageausdruck Abfrageausdruecke sind in SESAM/SQL das zentrale Mittel fuer die Datenabfrage. Mit einem Abfrageausdruck koennen Saetze und Spalten aus Basis- tabellen und Views ausgewaehlt werden. Die gefundenen Saetze bilden die Ergebnistabelle. Ein Abfrageausdruck ist ein Teil einer SQL-Anweisung. Ein Abfrageausdruck kann in Unterabfragen und in einer der folgenden SQL-Anweisungen vorkommen : CREATE VIEW View definieren DECLARE CURSOR Cursor vereinbaren INSERT Saetze in Tabelle einfuegen Um einen Abfrageausdruck in einer SQL-Anweisung zu verwenden, muessen Sie Eigentuemer der mit dem Abfrageausdruck angesproche- nen Tabellen sein oder das SELECT-Privileg fuer diese Tabellen besitzen. abfrageausdruck::= ù select_ausdruck | join_ausdruck | TABLE tabelle | (abfrageausdruck) ¦ Ä Ä UNION Ä ALL | DISTINCT À abfrageausdruck À Ä EXCEPT Ä DISTINCT À abfrageausdruck À À select-ausdruck SELECT-Ausdruck, siehe "DRIVE-SQL-Lexikon" Ä3À, Abschnitt 4 "DRIVE-SQL-Metavariablen" - Beschreibung der Metavariablen . join-ausdruck JOIN-Ausdruck, siehe "DRIVE-SQL-Lexikon" Ä3À, Abschnitt 4 "DRIVE-SQL-Metavariablen" - Beschreibung der Metavariablen . TABLE tabelle Tabellenabfrage, siehe bei Erweiterungen (abfrageausdruck) Unterabfrage, siehe "DRIVE-SQL-Lexikon" Ä3À, Abschnitt 4 "DRIVE-SQL-Metavariablen" - Beschreibung der Metavariablen . SEITE 23 A UNION Verbindung von zwei Abfrage-Ausdruecken mit UNION siehe bei Erweiterungen EXCEPT DISTINCT Verbindung von zwei Abfrage-Ausdruecken mit EXCEPT, siehe bei Erweiterungen Erweiterungen : 1. Die Metavariable abfrageausdruck wurde an die Sprachbe- schreibung von SESAM/SQL V3.1A angepasst. 2. TABLE tabelle - Tabellenabfrage Mit der Tabellenabfrage waehlen Sie alle Spalten einer Tabelle aus. Um die Saetze der angegebenen Tabelle lesen zu koennen, muessen Sie entweder Eigentuemer dieser Tabelle sein oder das SELECT-Zugriffsrecht besitzen. tabelle : Name der Tabelle (Basistabelle oder View), aus der alle Spalten ausgewaehlt werden. Reihenfolge, Namen und Attribute (Datentyp, Laenge, Genauigkeit, Nachkomma- stellen) der Spalten von werden uebernommen. Der Abfrage-Ausdruck TABLE tabelle entspricht dem SELECT-Ausdruck (SELECT * from tabelle); siehe Metavaria- ble 3. UNION Die UNION-Klausel verbindet zwei Abfrage-Ausdruecke. Die Ergebnistabelle enthaelt alle Saetze, die in der ersten oder zweiten Ergebnistabelle vorkommen DISTINCT Doppelte Saetze werden entfernt. Erfolgt keine Angabe von ALL oder DISTINCT, ist DISTINCT voreingestellt. SEITE 24 A 4. EXCEPT Die EXCEPT-Operation ist vergleichbar mit der Differenz zweier Mengen in der Mengenlehre. Die Ergebnistabelle enthaelt alle Saetze der ersten Tabelle, die nicht in der zweiten Tabelle vorkommen. Fuer die Verknuepfung von Abfrage-Ausdruecken mittels EX- CEPT muessen folgende Bedingungen erfuellt sein : (1) Die Ergebnistabellen der beiden EXCEPT-Operanden mu- essen dieselbe Anzahl von Spalten haben. (2) Die Datentypen entsprechender Spalten muessen ver- traeglich sein. Der Datentyp einer Ergebnistabelle ergibt sich aus den Regeln, die auch bei UNION gel- ten; siehe Handbuch "SESAM/SQL-Server - SQL-Sprach- beschreibung, Teil 1" Ä4À Abschnitt "Datentyp der Ergebnisspalten bei EXCEPT" im Kap. 6.7 "Verbindung von Abfrage-Ausdruecken mit EXCEPT DISTINCT". DISTINCT Doppelte Saetze werden aus der Resultattabelle entfernt. Erfolgt keine Angabe, ist DISTINCT voreingestellt. SEITE 25 A 6.2 CASE-Ausdruck Ein CASE-Ausdruck ist ein bedingter Ausdruck, also ein Ausdruck, der Bedingungen enthaelt. Jeder Bedingung ist ein bestimmter Aus- druck bzw. der NULL-Wert zugeordnet. Bei der Auswertung des CASE-Ausdrucks wird der zugeordnete Ausdrucks- bzw. NULL-Wert derjenigen Bedingung zurueckgeliefert, die wahr ist. Es gibt vier verschiedene Varianten des CASE-Ausdrucks : 1. CASE-Ausdruck mit Suchbedingung 2. Einfacher CASE-Ausdruck 3. CASE-Ausdruck mit NULLIF 4. CASE-Ausdruck mit COALESCE 6.2.1 CASE-Ausdruck mit Suchbedingung Ein CASE-Ausdruck mit Suchbedingung hat folgende Syntax : case_ausdruck::= CASE ù WHEN suchbedingung THEN ù ausdruck | NULL ¦ ¦ .... Ä ELSE ù ausdruck | NULL ¦ À END ¦ suchbedingung Suchbedingung, deren Auswertung einen Wahrheitswert ergibt. ausdruck Ausdruck, dessen Auswertung einen alphanumerischen, numerischen oder Zeitwert ergibt. Es darf kein multipler Wert mit Dimension > 1 sein. muss in der THEN-Klausel oder in der ELSE-Klausel oder in beiden Klauseln enthalten sein. Die Datentypen der Werte von in den THEN-Klauseln und in der ELSE-Klausel muessen vertraeglich sein. Naeheres zu dem Ausdruck finden Sie im Handbuch "SESAM/SQL-Server SQL-Sprachbeschreibung, Teil 1" Ä4À, Kap. 5.5.1 "CASE-Ausdruck mit Suchbedingung". SEITE 26 A 6.2.2 Einfacher CASE-Ausdruck Ein einfacher CASE-Ausdruck folgende Syntax : case_ausdruck::= CASE ausdruckx ù WHEN ausdruck1 THEN ù ausdruck | NULL ¦ ¦ .... Ä ELSE ù ausdruck | NULL ¦ À END ¦ ausdruck Ausdruck, dessen Auswertung einen alphanumerischen, numerischen oder Zeitwert ergibt. Es darf kein multipler Wert mit Dimension > 1 sein. Die Werte von und ..... muessen vertraegliche Datentypen haben. muss in der THEN-Klausel oder in der ELSE-Klausel oder in beiden Klauseln enthalten sein. Die Datentypen der Werte von in den THEN-Klauseln und in der ELSE-Klausel muessen vertraeglich sein. Naeheres zu dem Ausdruck finden Sie im Handbuch "SESAM/SQL-Server SQL-Sprachbeschreibung, Teil 1" Ä4À, Kap. 5.5.2 "Einfacher CASE-Ausdruck". 6.2.3 CASE-Ausdruck mit NULLIF Ein CASE-Ausdruck mit NULLIF folgende Syntax : case_ausdruck::= NULLIF (ausdruck1, ausdruck2) ausdruck Ausdruck, dessen Auswertung einen alphanumerischen, numerischen oder Zeitwert ergibt. Es darf kein multipler Wert mit Dimension > 1 sein. Ergebnis Das Ergebnis des CASE-Ausdrucks ist NULL, wenn und gleich sind. Bei Ungleichheit zwischen und ist das Ertgebnis . Naeheres zu dem Ausdruck finden Sie im Handbuch "SESAM/SQL-Server SQL-Sprachbeschreibung, Teil 1" Ä4À, Kap. 5.5.3 "CASE-Ausdruck mit NULLIF". SEITE 27 A 6.2.4 CASE-Ausdruck mit COALESCE Ein CASE-Ausdruck mit COALESCE folgende Syntax : case_ausdruck::= COALESCE (ausdruck1, ausdruck2 ...,ausdruckn) ausdruck Ausdruck, dessen Auswertung einen alphanumerischen, numerischen oder Zeitwert ergibt. Es darf kein multipler Wert mit Dimension > 1 sein. Ergebnis Das Ergebnis des CASE-Ausdrucks ist NULL wenn alle in der Klammer enthaltenen Ausdruecke (...) NULL ergeben. Ergibt mindestens ein einen anderen als den NULL-Wert, so ist das Ergebnis des CASE-Ausdrucks der Wert des ersten , der nicht den NULL-Wert ergibt. Naeheres zu dem Ausdruck finden Sie im Handbuch "SESAM/SQL-Server SQL-Sprachbeschreibung, Teil 1" Ä4À, Kap. 5.5.4 "CASE-Ausdruck mit COALESCE". SEITE 28 A 6.3 CAST-Ausdruck Der CAST-Ausdruck wandelt einen Wert eines bestimmten Datentyps in einen Wert eines anderen Datentyps um. cast_ausdruck::= CAST ( ù ausdruck | NULL ¦ AS datentyp ) ausdruck | NULL CAST-Operand. Er enthaelt das Schluesselwort NULL oder einen Ausdruck . Der Wert von darf kein multipler Wert mit Dimension > 1 sein. datentyp Zieldatentyp fuer das Ergebnis des CAST-Ausdrucks. Der Ziel- datentyp darf keine Dimension fuer eine multiple Spalte enthalten. Ergebnis Das Ergebnis des CAST-Ausdrucks ist ein atomarer Wert des Ziel- datentyps . Welcher Wert zurueckgeliefert wird, ist einerseits abhaenging vom Wert des CAST-Operanden, andererseits von dessen Datentyp. Ergibt den NULL-Wert oder enthaelt der CAST-Operand das Schluesselwort NULL, so ist das Ergebnis des CAST-Ausdrucks der NULL-Wert. Sonst gelten die Regeln fuer die Konvertierung eines Wertes in einen anderen Datentyp. Naeheres zu dem Ausdruck und den Regeln finden Sie im Handbuch "SESAM/SQL-Server - SQL-Sprachbeschreibung, Teil 1" Ä4À, Kap. 5.6 "CAST-Ausdruck". SEITE 29 A 6.4 join_ausdruck Ein Join-Audruck enthaelt die zu verknuepfenden Tabellen, die gewuenschte Join-Operation und ggf. eine Join-Bedingung. join_ausdruck::= ù tabellenangabe Ä ù INNER | ù LEFT | RIGHT | FULL ¦ Ä OUTER À ¦ À JOIN tabellenangabe ON bedingung | tabellenangabe1 CROSS JOIN tabellenangabe2 | ( join_ausdruck) ¦ tabellenangabe Angabe einer Tabelle, aus der Daten gelesen werden sollen siehe "DRIVE-SQL-Lexikon" Ä3À, Abschnitt 4 "DRIVE-SQL-Metavariablen" - Beschreibung der Metavariablen bedingung Bedingung, die als Join-Bedingung zum Verknuepfen der ange- gebenen Tabellen verwendet wird, siehe "DRIVE-SQL-Lexikon" Ä3À, Abschnitt 4 "DRIVE-SQL-Metavariablen" - Beschreibung der Metavariablen . Erweiterung : CROSS CROSS-Operator zum Bilden eines Cross Join. Ein Cross Join entspricht dem Kartesischen Produkt aus den beteiligten Tabellen. Jeder Satz aus der Tabelle links vom CROSS-Operator wird mit jedem satz der Tabelle rechts vom CROSS-Operator verkettet. Naeheres zu Cross Join finden Sie im Handbuch "SESAM/SQL-Server - SQL-Sprachbeschreibung, Teil 1" Ä4À, Kap. 6.4.3.1 "Cross Join". SEITE 30 A 6.5 Numerische-Funktionen Die numerischen Funktionen werden mit DRIVE V3.1 erstmalig unter- stuetzt. Die numerischen Funktionen CHARACTER_LENGTH() und POSITION() be- rechnen die Anzahl der Zeichen in einer Zeichenkette, bzw. die Position einer Zeichenkette innerhalb einer anderen Zeichenkette. Die numerische Funktion JULIAN_DAY_OF_DATE() wandelt ein Datum in einen ganzzahligen Wert um. Bei Auswertung einer numerischen Funktion wird ein numerischer Wert zurueckgeliefert. numerische funktion::= ù ù CHAR_LENGTH | CHARACTER_LENGTH ¦ ( ausdruck ) | POSITION ( ausdruck IN ausdruck ) | JULIAN_DAY_OF_DATE ( ausdruck ) | ¦ ausdruck Alphanumerischer Ausdruck, bei JULIAN_DAY_OF_DATE() Zeitwert-Ausdruck. Seine Auswertung muss einen alphanumeri- schen Wert ergeben, also eine Zeichenkette bzw. einen Wert des Datentyps DATE. darf kein multipler Wert mit Dimension > 1 sein. Naeheres zu den numerischen Funktionen finden Sie im Handbuch "SESAM/SQL-Server - SQL-Sprachbeschreibung, Teil 1" Ä4À, Kap. 5.2.3 "Numerische Funktionen" und Kap. 5.2.5 "Alphabetischer Nachschlagteil Funktionen". SEITE 31 A 6.6 Zeichenketten-Funktionen Die Zeichenketten-Funktionen werden mit DRIVE V3.1 erstmalig un- terstuetzt. Zeichenkettenfunktionen extrahieren Teilzeichenketten, entfernen fuehrende oder nachgestellte Zeichen von Zeichenketten oder wan- deln Gross- in Kleinbuchstaben bzw. Klein- in Grossbuchstaben um. Bei Auswertung einer Zeichenkettenfunktion wird ein alphanumeri- scher Wert zurueckgeliefert. zeichenkettenfunktion::= ù SUBSTRING ( charausdruck FROM startposition Ä FOR teilkettenlaenge À ) | TRIM ( Ä Ä ù LEADING | TRAILING | BOTH ¦ À Ä zeichen À FROM À charausdruck ) | LOWER (charausdruck) | UPPER (charausdruck) ¦ zeichen::= charausdruck charausdruck Alphanumerischer Ausdruck, siehe "DRIVE-SQL-Lexikon" Ä3À, Abschnitt 4 "DRIVE-SQL-Metavariablen" - Beschreibung der Metavariablen . Seine Auswertung ergibt einen alphanumerischen Wert, also eine Zeichenkette. Es darf kein multipler Wert mit Dimension > 1 sein. Einschraenkungen sind in der Funktionsbeschreibung jeweils bei der entsprechenden Funktion beschrieben. startposition Operator der Funktion SUBSTRING() (siehe Kapitel "SUBSTRING() - Teilzeichenkette extrahieren"). teilkettenlaenge Operator der Funktion SUBSTRING() (siehe Kapitel "SUBSTRING() - Teilzeichenkette extrahieren"). SEITE 32 A 6.6.1 SUBSTRING() - Teilzeichenkette extrahieren SUBSTRING() extrahiert eine Teilzeichenkette aus einer Zeichen- kette SUBSTRING ( charausdruck FROM startposition Ä FOR teilkettenlaenge À ) charausdruck Alphanumerischer Ausdruck, siehe "DRIVE-SQL-Lexikon" Ä3À, Abschnitt 4 "DRIVE-SQL-Metavariablen" - Beschreibung der Metavariablen . startposition Numerischer Ausdruck. Seine Auswertung ergibt eine Ganzzahl oder Festpunktzahl ohne Nachkommastellen. Es darf kein multipler Wert mit Dimension > 1 sein. gibt die Position eines Zeichens innerhalb- oder ausserhalb derjenigen Zeichenkette an, die sich bei der Auswertung von ergibt. bestimmt das Zeichen, ab dem die Teilzei- chenkette extrahiert werden soll. teilkettenlaenge Numerischer Ausdruck. Seine Auswertung ergibt eine Ganzzahl oder Festpunktzahl ohne Nachkommastellen. Es darf kein multipler Wert mit Dimension > 1 sein. Der Wert von darf nicht < 0 sein. gibt die maximale Laenge der Teilzeichen- kette an. Naeheres zu SUBSTRING() finden Sie im Handbuch "SESAM/SQL-Server - SQL-Sprachbeschreibung, Teil 1" Ä4À, Kap. 5.2.2 "Zeichenkettenfunktionen" und Kap. 5.2.5 "Alphabetischer Nachschlagteil Funktionen". SEITE 33 A 6.6.2 TRIM() - Zeichen entfernen TRIM() entfernt fuehrende und/oder nachgestellte Zeichen einer Zeichenkette. TRIM ( Ä Ä ù LEADING | TRAILING | BOTH ¦ À Ä zeichen À FROM À charausdruck ) zeichen::= charausdruck zeichen Alphanumerischer Ausdruck, dessen Wert die Laenge 1 hat. Es darf kein multipler Wert mit Dimension > 1 sein. Wenn Sie nicht angeben, gilt als Standardwert das Leerzeichen (' '). charausdruck Alphanumerischer Ausdruck, siehe "DRIVE-SQL-Lexikon" Ä3À, Abschnitt 4 "DRIVE-SQL-Metavariablen" - Beschreibung der Metavariablen . Es darf kein multipler Wert mit Dimension > 1 sein. FROM FROM-Operator; Sie duerfen FROM nur angeben, wenn sie auch LEADING, TRAILING oder BOTH und/oder angeben. Naeheres zu TRIM() finden Sie im Handbuch "SESAM/SQL-Server - SQL-Sprachbeschreibung, Teil 1" Ä4À, Kap. 5.2.2 "Zeichenkettenfunktionen" und Kap. 5.2.5 "Alphabetischer Nachschlagteil Funktionen". SEITE 34 A 6.6.3 LOWER() - Grossbuchstaben umwandeln LOWER() - wandelt Grossbuchstaben einer Zeichenkette in Klein- buchstaben um. LOWER (charausdruck) charausdruck Alphanumerischer Ausdruck, siehe "DRIVE-SQL-Lexikon" Ä3À, Abschnitt 4 "DRIVE-SQL-Metavariablen" - Beschreibung der Metavariablen . Naeheres zu LOWER() finden Sie im Handbuch "SESAM/SQL-Server - SQL-Sprachbeschreibung, Teil 1" Ä4À, Kap. 5.2.2 "Zeichenkettenfunktionen" und Kap. 5.2.5 "Alphabetischer Nachschlagteil Funktionen". 6.6.4 UPPER() - Kleinbuchstaben umwandeln UPPER() - wandelt Kleinbuchstaben einer Zeichenkette in Gross- buchstaben um. UPPER (charausdruck) charausdruck Alphanumerischer Ausdruck, siehe "DRIVE-SQL-Lexikon" Ä3À, Abschnitt 4 "DRIVE-SQL-Metavariablen" - Beschreibung der Metavariablen . Naeheres zu UPPER() finden Sie im Handbuch "SESAM/SQL-Server - SQL-Sprachbeschreibung, Teil 1" Ä4À, Kap. 5.2.2 "Zeichenkettenfunktionen" und Kap. 5.2.5 "Alphabetischer Nachschlagteil Funktionen". SEITE 35 A 6.7 Zeit-Funktionen Zeitfunktionen ermitteln das aktuelle Datum, das Datum gemaess dem Gregorianischen Kalender und/oder die aktuelle Uhrzeit. Die DRIVE-SQL-Metavariable erhaelt die folgenden neuen Funktionen : zeitfunktion::= ù .... | LOCALTIME(3) | LOCALTIMESTAMP(3) | DATE_OF_JULIAN_DAY ( charausdruck | datumzeitausdruck ) | ... ¦ charausdruck Alphanumerischer Ausdruck, siehe "DRIVE-SQL-Lexikon" Ä4À, Abschnitt 4 "DRIVE-SQL-Metavariablen" - Beschreibung der Metavariablen . datumzeitausdruck DATUMZEIT-Ausdruck, siehe "DRIVE-SQL-Lexikon" Ä4À, Abschnitt 4 "DRIVE-SQL-Metavariablen" - Beschreibung der Metavariablen . 1. Die Funktion LOCALTIME(3) liefert die aktuelle Ortzeit 2. Die Funktion LOCALTIMESTAMP(3) liefert den aktuellen Ort- zeitstempel 3. Die Funktion DATE_OF_JULIAN_DAY () liefert zu einer Ju- lianischen Tagesnummer das entprechende Datum gemaess dem Gregorianischen Kalender. Die Julianische Tagesnummer eines Datums ist die Anzahl Tage, die seit dem 24. November des jahres 4714 v. Chr. vergangen sind. Naeheres zu UPPER() finden Sie im Handbuch "SESAM/SQL-Server - SQL-Sprachbeschreibung, Teil 1" Ä4À, Kap. 5.2.1 "Zeitfunktionen" und Kap. 5.2.5 "Alphabetischer Nachschlagteil Funktionen". SEITE 36 A 7 Anhang 7.1 Schluesselwoerter Diese Kapitel enthaelt die Erweiterungen zu "DRIVE-Lexikon" Ä2À, Abschnitt "Schluesselwoerter". Die folgende Liste zeigt die Woerter, die als Schluesselwoerter reserviert sind, und - soweit vorhanden - ihre Abkuerzung. Die Woerter duerfen nicht als Namen in Anweisungen verwendet werden. Schluesselwort Abkuerzung CASCADE CAST CHARACTER_LENGTH CHAR_LENGTH COAELESCE CROSS CURRENT_DATE CURRENT_USER CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER DATE_OF_JULIAN_DAY DESTROY DML EXCEPT INDEXCHECK JULIAN_DAY_OF_DATE LEADING LOCALTIME LOCALTIMESTAMP LOWER NO NULLIF PCTFREE REORG SECONDARY STOGROUP SYSTEM_USER TRAILING TRIM UPPER USAGE UTILITY VOLUMES WHEN XML SEITE 37 A 7.2 Literatur Ä1À DRIVE V2.2 (BS2000/OSD) Ergaenzungsband Benutzerhandbuch Zielgruppe: Anwendungsprogrammierer Inhalt: Ergaenzung der Handbuecher zu DRIVE/WINDOWS V2.1. Es beschreibt die neuen und geaenderten Funktionen von DRIVE V2.2. Ä2À DRIVE/WINDOWS V2.1 (BS2000) Lexikon der DRIVE-Anweisungen Referenzhandbuch Zielgruppe: Anwendungsprogrammierer Inhalt: Syntax und Funktionsumfang aller DRIVE-Anweisungen, Meldungen und Schluesselwoerter von DRIVE/WINDOWS Ä3À DRIVE/WINDOWS V2.1 (BS2000) Lexikon der DRIVE-SQL-Anweisungen fuer SESAM/SQL 2 Referenzhandbuch Zielgruppe: Anwendungsprogrammierer Inhalt: Syntax und Funktionsumfang aller DRIVE-SQL-Anweisungen fuer SESAM V2.2 in Kurzform. Ä4À SESAM/SQL-SERVER V3.1A (BS2000/OSD) SQL-Sprachbeschreibung Teil 1: SQL-Anweisungen Benutzerhandbuch Zielgruppe: Zur Zielgruppe gehoeren alle Personen, die eine SQL-Datenbank mit SQL-Anweisungen bearbeiten. Inhalt: Das Handbuch beschreibt die Programmeinbettung von SQL- Anweisungen und die SQL-Sprachelemente. In einem alpha- betischen Nachschlagteil sind alle SQL-Anweisungen aus- fuehrlich dargestellt. SEITE 38 A Ä5À SESAM/SQL-SERVER V3.1A (BS2000/OSD) SQL-Sprachbeschreibung Teil 2: Utilities Benutzerhandbuch Zielgruppe: Zur Zielgruppe gehoeren alle Personen, die mit der Verwal- tung einer SQL-Datenbank befasst sind. Inhalt: Das Handbuch enthaelt eine alphabetische Beschreibung der Utility-Anweisungen; Utility-Anweisungen sind Anweisungen in SQL-Syntax und realisieren die Dienstprogrammfunktionen von SESAM/SQL. SEITE 39