A INHALTSVERZEICHNIS SEITE 1 Preface 2 1.1 Changes compared to DRIVE V2.2 3 1.1.1 Extended DRIVE statements 3 1.1.2 Extended DRIVE SQL statements 3 1.1.3 New DRIVE SQL Metavariables 3 1.1.4 Extended DRIVE SQL Metavariables 3 2 Error handling 4 2.1 Corrections for DRIVE Supplement 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-Statements 17 4.1 "OPTION"-Anweisung 17 5 DRIVE-SQL-Statements 18 5.1 CREATE TABLE - Create base table 18 5.2 DECLARE - Declare cursor 19 5.3 UTILITY - Forward UTILITY statement 21 6 DRIVE-SQL-Metavariablen 22 6.1 Query expressions 23 6.2 CASE expressions 26 6.2.1 CASE expressions with a search condition 26 6.2.2 Simple CASE expressions 27 6.2.3 CASE expressions with NULLIF 27 6.2.4 CASE expressions with COALESCE 28 6.3 CAST expressions 29 6.4 Join expressions 30 6.5 Numeric functions 31 6.6 String functions 32 6.6.1 SUBSTRING() - Extract substring 33 6.6.2 TRIM() - remove characters 34 6.6.3 LOWER() - convert uppercase characters 35 6.6.4 UPPER() - convert lowercase characters 35 6.7 Time functions 36 7 Appendix 37 7.1 Keywords 37 7.2 Related publications 38 SEITE 1 A FUJITSU TECHNOLOGY SOLUTIONS DRIVE (BS2000) Version V3.1A10 README file for DRIVE V3.1A10 SEITE 1 A 1 Preface This README file supplements the manuals for DRIVE V2.2 and DRIVE/WINDOWS V2.1. It describes the new and modified functions of DRIVE V3.1A10. The individual chapters relate to the following manuals : - Chapter 2 and 4 refer to "DRIVE Supplement" Ä1À. - Chapter 3 refers to "DRIVE Directory" Ä2À. - Chapter 5 refers to "DRIVE SQL Directory" Ä3À. You can view the file with the /SHOW-FILE command or by opening it in an editor, or you can print it at the default printer by entering the following command: /PRINT-DOCUMENT , LINE-SPACING=*BY-EBCDIC-CONTROL or, in the case of SPOOL versions earlier than V3.0A: /PRINT-FILE FILE-NAME=, LAYOUT-CONTROL= PARAMETERS(CONTROL-CHARACTERS=EBCDIC) SEITE 2 A 1.1 Changes compared to DRIVE V2.2 1.1.1 Extended DRIVE statements Statement Extension Page OPTION INDEXCHECK 17 1.1.2 Extended DRIVE SQL statements Statement Extension Page CREATE TABLE Primaerkeylength < 4 18 DECLARE CURSOR HOLD-Cursoren 19 UTILITY EXPORT/IMPORT TABLE 21 1.1.3 New DRIVE SQL Metavariables Metavariable Page CASE expressions 26 CAST expressions 29 Numeric functions 31 String functions 32 1.1.4 Extended DRIVE SQL Metavariables Metavariable Extension Page Query expressions EXCEPT DISTINCT 23 Join expressions Cross Join 30 Time functions DATE_OF_JULIAN_DAY 36 SEITE 3 A 2 Error handling 2.1 Corrections for DRIVE Supplement The manual "DRIVE Supplement" Ä1À has to be correctd as follows : SF2GDAT4 - Year conversion (see section 8.1.1, Page 198) &par3 Specifies a value for how far the 100-year interval should reach into the future from the current date. &par3 must be an alphanumeric variable or a literal with a length of >= 4 bytes. The value of &par3 must be an integer. The sum of the current year and the value of &par3 must be greater than 99 and less than 10000. SF2IDAT4 - Year digits conversion (see section 8.1.2, Seite 201) &par3 Specifies a value for how far the 100-year interval should reach into the future from the current date. &par3 must be an alphanumeric variable or a literal with a length of >= 4 bytes. The value of &par3 must be an integer. The sum of the current year and the value of &par3 must be greater than 99 and less than 10000. 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-Statements This chapter contains the changes and supplements to "DRIVE-Di- rectory of DRIVE Statements" Ä2À, section "DRIVE-Statements". 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-Statements This chapter contains the changes and supplements to "DRIVE-Supplement" Ä1À, section "DRIVE-SQL-Statements". Uebersicht Erweiterte DRIVE-SQL-Anweisungen : CREATE TABLE DECLARE CURSOR UTILITY 5.1 CREATE TABLE - Create base table You use CREATE TABLE to create a base table in which the data is permanently stored. CREATE Ä CALL DML À TABLE table ( ù column_definiton | Ä CONSTRAINT integrity_constraint_name À table_constraint ¦, ... ) Ä 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 - Declare cursor YOU use DECLARE to define a cursor. You can use the cursor to access the individual rows in a derived table. The current row on which the cursor is positioned can be read. If the cursor is updatable, you can also update and delete rows. DECLARE cursor Ä ù PERMANENT | TEMPORARY ¦ À Ä NO SCROLL | SCROLL À CURSOR Ä WITH HOLD | WITHOUT HOLD À Ä PREFETCH n À Ä FOR cursor_description À cursor_description::= query_expression Ä ORDER BY ù ù column | column(pos_no) | column_no ¦ Ä ù ASCENDING | DESCENDING ¦ À ¦, ... À Ä FOR ù READ ONLY | UPDATE Ä OF column,....À ¦ À n::= unsigned integer posnr::= unsigned integer spaltennummer::= unsigned integer query_expression Query expression for selecting rows and column from base tables or 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 - Forward UTILITY statement This statement is used to forward UTILITY statements to SESAM/ SQL. UTILITY utility-statement The UTILITY statements are forwarded as DRIVE strings. However, the String is not fully checked in this case. The following UTILITY statements are possible: 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 This chapter contains the changes and supplements to "DRIVE-SQL-DirectoryÄ3À, section "DRIVE-SQL-Metavariables". New DRIVE SQL Metavariables : CASE expressions CASE expressions with a search condition simple CASE expressions CASE expressions with NULLIF CASE expressions with COALESCE CAST expressions Numeric functions CHARACTER_LENGTH() POSITION() JULIAN_DAY_OF_DATE String functions SUBSTRING() TRIM() UPPER() LOWER() Extended DRIVE-SQL-Metavariables : Query expression TABLE tabelle UNION DISTINCT EXCEPT DISTINCT Join expressions Cross Join Time functions LOCALTIME(3) LOCALTIMESTAMP(3) DATE_OF_JULIAN_DAY SEITE 22 A 6.1 Query expressions Query expressions sind in SESAM/SQL das zentrale Mittel fuer die Datenabfrage. Mit einer query expression koennen Saetze und Spalten aus Basis- tabellen und Views ausgewaehlt werden. Die gefundenen Saetze bilden die Ergebnistabelle. Ein query expression ist ein Teil einer SQL-Anweisung. Ein query expression 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 query expression in einer SQL-Anweisung zu verwenden, muessen Sie Eigentuemer der mit dem query expression angesproche- nen Tabellen sein oder das SELECT-Privileg fuer diese Tabellen besitzen. query_expression::= ù select_expression | join_expression | TABLE table | (query_expression) ¦ Ä Ä UNION Ä ALL | DISTINCT À query_expression À Ä EXCEPT Ä DISTINCT À query_expression À À select-expression SELECT expression, siehe "DRIVE-SQL-Lexikon" Ä3À, Abschnitt 4 "DRIVE-SQL-Metavariablen" - Beschreibung der Metavariablen . join-expression JOIN expressions, siehe "DRIVE-SQL-Lexikon" Ä3À, Abschnitt 4 "DRIVE-SQL-Metavariablen" - Beschreibung der Metavariablen . TABLE table, Tabellenabfrage, siehe bei Erweiterungen (query_expression) subquery, siehe "DRIVE-SQL-Lexikon" Ä3À, Abschnitt 4 "DRIVE-SQL-Metavariablen" - Beschreibung der Metavariablen . SEITE 23 A UNION Verbindung von zwei query expression mit UNION siehe bei Erweiterungen EXCEPT DISTINCT Verbindung von zwei query expression mit EXCEPT, siehe bei Erweiterungen Erweiterungen : 1. Die Metavariable query_expression wurde an die Sprachbe- schreibung von SESAM/SQL V3.1A angepasst. 2. TABLE table - 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. table : 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 query expression TABLE table entspricht dem select expression (SELECT * from table); siehe Metavariable . 3. UNION Die UNION-Klausel verbindet zwei query expression. 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 query expression mittels EXCEPT 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 query expression mit EX- CEPT DISTINCT". DISTINCT Doppelte Saetze werden aus der Resultattabelle entfernt. Erfolgt keine Angabe, ist DISTINCT voreingestellt. SEITE 25 A 6.2 CASE expressions 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 expressions with a search condition 2. Simple CASE expressions 3. CASE expressions with NULLIF 4. CASE expressions with COALESCE 6.2.1 CASE expressions with a search condition Ein CASE-Ausdruck mit Suchbedingung hat folgende Syntax : case_expression::= CASE ù WHEN search_condition THEN ù expression | NULL ¦ ¦ .... Ä ELSE ù expression | NULL ¦ À END ¦ search_condition Searchcondition, deren Auswertung einen Wahrheitswert ergibt expression Expression, 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 expression finden Sie im Handbuch "SESAM/SQL-Server SQL-Sprachbeschreibung, Teil 1" Ä4À, Kap. 5.5.1 "CASE expression mit searchcondition". SEITE 26 A 6.2.2 Simple CASE expressions Ein einfacher CASE-Ausdruck folgende Syntax : case_expression::= CASE expressionx ù WHEN expression1 THEN ù expression | NULL ¦ ¦ .... Ä ELSE ù expression | NULL ¦ À END ¦ expression Expression, 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 expressions with NULLIF Ein CASE-Ausdruck mit NULLIF folgende Syntax : case_expression::= NULLIF (expression1, expression2) expression Expression, 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 Ergebnis . Naeh. zu dem expression 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 expressions with COALESCE Ein CASE-Ausdruck mit COALESCE folgende Syntax : case_expression::= COALESCE (expression1, expression2 ...,expressionn) expression Expression, 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 expressions Der CAST expression wandelt einen Wert eines bestimmten Datentyps in einen Wert eines anderen Datentyps um. cast_expression::= CAST ( ù expression | NULL ¦ AS datatype ) expression | NULL CAST-Operand. Er enthaelt das Schluesselwort NULL oder einen Ausdruck . Der Wert von darf kein multipler Wert mit Dimension > 1 sein. datatype Zieldatentyp fuer das Ergebnis des CAST expressions. Der Zieldatentyp darf keine Dimension fuer eine multiple Spalte enthalten. Ergebnis Das Ergebnis des CAST expressions 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 expressions 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 expressions Ein Join expressions 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 Numeric functions 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 ¦ ( expression ) | POSITION ( expression IN expression ) | JULIAN_DAY_OF_DATE ( expression ) | ¦ expression 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 String functions 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. string functions::= ù SUBSTRING ( expression FROM startposition Ä FOR substring_length À ) | TRIM ( Ä Ä ù LEADING | TRAILING | BOTH ¦ À Ä trim_char À FROM À expression ) | LOWER (expression) | UPPER (expression) ¦ trim_char::= expression expression 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"). substring_length Operator der Funktion SUBSTRING() (siehe Kapitel "SUBSTRING() - Teilzeichenkette extrahieren"). SEITE 32 A 6.6.1 SUBSTRING() - Extract substring SUBSTRING() extract a substring from a string. SUBSTRING ( expression FROM startposition Ä FOR substring_length À ) expression 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. substring_length 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() - remove characters TRIM() removes leading and/or trailing characters of a string. TRIM ( Ä Ä ù LEADING | TRAILING | BOTH ¦ À Ä trim_char À FROM À expression ) trim_char::= expression trim_char 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 (' '). expression 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() - convert uppercase characters LOWER() - converts upper characters in a string to lower case characters. LOWER (expression) expression 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() - convert lowercase characters UPPER() - converts lowercase characters in a string to uppercase characters. UPPER (expression) expression 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 Time functions 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 : time_function ::= ù .... | LOCALTIME(3) | LOCALTIMESTAMP(3) | DATE_OF_JULIAN_DAY ( expression | datetime_expression ) | ... ¦ expression Alphanumerischer Ausdruck, siehe "DRIVE-SQL-Lexikon" Ä4À, Abschnitt 4 "DRIVE-SQL-Metavariablen" - Beschreibung der Metavariablen . datetime_expression DATUMZEIT-Ausdruck, siehe "DRIVE-SQL-Lexikon" Ä4À, Abschnitt 4 "DRIVE-SQL-Metavariablen" - Beschreibung der Metavariablen . 1. The function LOCALTIME(3) returns the current local time. 2. LOCALTIMESTAMP(3) returns the current local time stamp. 3. The function DATE_OF_JULIAN_DAY () returns the correspon- ding date in the Gregorian calendar for a given Julian day number. Kalender. The Julian day number of a date is the number of days which have passed since the 24th November, 4714 BC (in accordance with the Gregorian calendar). 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 Appendix 7.1 Keywords This chapter contains the extensions to "DRIVE Directory" Ä2À, section "Keywords". 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. Keyword Abbreviation 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 Related publications Ä1À DRIVE V2.2 (BS2000/OSD) Supplement User Guide Target group Application programmers Contents Supplements the manuals for DRIVE/WINDOWS V2.1. It describes the new and modified functions of DRIVE V2.2. Ä2À DRIVE/WINDOWS V2.1 (BS2000) Directory of DRIVE Statements Reference Manual Target group Application programmers Contents Syntax and range of functions of all DRIVE statements, DRIVE messages and keywords. Ä3À DRIVE/WINDOWS V2.1 (BS2000) Directory of DRIVE SQL Statements for SESAM/SQL 2 Reference Manual Target group Application programmers Contents A concise description of the syntax and scope of all the DRIVE SQL statements for SESAM V2.x. Ä4À SESAM/SQL-SERVER V3.1A (BS2000/OSD) SQL Reference Manual Part 1: SQL Statements User Guide Target group This manual is intended for all users who whish to process an SESAM/SQL database by means of SESAM/SQL Statements Contents The manual describes how to embed SQL statements in COBOL, and the SQL language constructs. The entire set of SQL statements is listed in an alphabetical directory. SEITE 38 A Ä5À SESAM/SQL-SERVER V3.1A (BS2000/OSD) SQL Reference Manual Part 2: Utilities User Guide Target group The manual is intended for all users responsible for SESAM/SQL database administration. Contents An alphabetical directory of all utility statements, i.e. statements in SQL syntax implementing the SESAM/SQL utility functions. SEITE 39