Der Ausführungsteil eines PL/SQL-Blocks

Größe: px
Ab Seite anzeigen:

Download "Der Ausführungsteil eines PL/SQL-Blocks"

Transkript

1 3 Der Ausführungsteil eines PL/SQL-Blocks 3.1 Aufbau des Ausführungsteils Zuweisungen Funktionen innerhalb von PL/SQL Erlaubte SQL-Funktionen Nicht erlaubte SQL-Funktionen Reguläre Ausdrücke Allgemein Einsatz in ORACLE 10g REGEXP_Funktionen Die Metazeichen der Regulären Ausdrücke Operatoren in PL/SQL Der SELECT-Befehl in PL/SQL DML-Befehle in PL/SQL Erweiterungen der DML-Befehle in ORACLE 10g INSERT Statement UPDATE Statement DELETE Statement Die GOTO-Anweisung /

2 3 Der Ausführungsteil eines PL/SQL-Blocks 3.10 Bedingte Kompilierung / 4053

3 Der Ausführungsteil eines PL/SQL-Blocks /

4 3 Der Ausführungsteil eines PL/SQL-Blocks 3 Der Ausführungsteil eines PL/SQL-Blocks 3.1 Aufbau des Ausführungsteils Dieser Teil beinhaltet das eigentliche Programm. Hier finden sich Kontrollkonstrukte wie Schleifen, bedingte Anweisungen, Zuweisungen und SQL-Befehle. Der Block wird eingeleitet durch das Schlüsselwort BEGIN und beendet durch END;. Im Ausführungsteil dürfen PL/SQL-Anweisungen, Funktionen sowie alle SQL-Befehle mit Ausnahme von DDL-Befehlen (Data Definition Language: CREATE, ALTER, DROP, RENAME, TRUNCATE) und DCL-Befehlen (Data Control Language: GRANT, REVOKE) verwendet werden. DDL-Befehle sind allerdings leicht einzubauen durch Verwendung von EXECUTE IMMEDIATE sql_statement; Weiterhin nicht erlaubt sind Befehle aus dem SYSDBA Bereich wie: STARTUP SHUTDOWN RECOVER DATABASE / 4053

5 Der Ausführungsteil eines PL/SQL-Blocks 3 Allgemeine Eigenschaften des Ausführungsteils 3 PL/SQL-Befehle: Bedingungen Schleifen RAISE (Auslösen einer Exception) EXIT WHEN NULL Zuweisungen SQL-Befehle: INSERT UPDATE DELETE SELECT... INTO EXECUTE IMMEDIATE ddl_sql_statement Transaktionssteuerungsbefehle: COMMIT SAVEPOINT ROLLBACK SET TRANSACTION READ ONLY LOCK TABLE / Folie /

6 3 Der Ausführungsteil eines PL/SQL-Blocks 3.2 Zuweisungen Variablen können im Ausführungsteil (und im Fehlerbehandlungsteil) beliebig oft Werte zugewiesen werden, wobei die Variable stets den zuletzt zugewiesenen Wert beinhaltet. Die Zuweisung geschieht in der Regel mit dem Zuweisungsoperator := in der Form: variablename := ausdruck; Der Ausdruck kann ein einzelner Wert sein, eine Funktion, eine andere Variable oder auch eine arithmetische Operation. Beispiele: var_a := 17; var_b := INITCAP('asterix'); var_c := var_a + 11; var_d := sysdate; var_e := pack.var; Weitere Möglichkeiten der Zuweisung sind der SELECT INTO-Befehl und der FETCH INTO-Befehl bei Cursoren, die später behandelt werden / 4053

7 Der Ausführungsteil eines PL/SQL-Blocks 3 Zuweisungen 3 möglich im Deklarationsteil (als Default-Wert) beliebig oft erlaubt im Ausführungs- und Exception-Teil durch den Zuweisungsoperator: variable := ausdruck; durch SELECT INTO durch FETCH INTO (bei Cursor) Beispiele: var_a := 17; var_b := INITCAP('asterix'); var_c := var_a + 11; / Folie /

8 3 Der Ausführungsteil eines PL/SQL-Blocks 3.3 Funktionen innerhalb von PL/SQL Eine Funktion kann durch ihren Funktionsnamen und der Angabe von zu übergebenden Parametern aufgerufen werden. Jede Funktion liefert ein Ergebnis als Rückgabewert wieder. Dieser Rückgabewert wird üblicherweise einer Variablen zugeordnet, wie im zweiten vorherigen Beispiel Erlaubte SQL-Funktionen ORACLE bietet im SQL-Bereich eine Vielzahl von Funktionen, die fast alle auch in PL/SQL-Anweisungen zur Verfügung stehen: Zeichenkettenfunktionen (Single Row), z.b.: CONCAT SUBSTR, INSTR LOWER, UPPER, INITCAP LPAD, RPAD LTRIM, RTRIM, TRIM REPLACE, REGEXP_REPLACE (10g)... Numerische Funktionen (Single Row), z. B.: MOD ROUND, TRUNC POWER, LOG,... Datumsfunktionen, z. B.: ADD_MONTHS, MONTHS_BETWEEN NEXT_DAY, LAST_DAY SYSDATE TRUNC... Konvertierungsfunktionen, z. B.: TO_CHAR (für NUMBER und DATE) TO_NUMBER TO_DATE TO_LOB (LONG zu CLOB) NVL ISNULL (seit 9i) Diese SQL-Funktionen sind auch in PL/SQL-Anweisungen uneingeschränkt verfügbar / 4053

9 Der Ausführungsteil eines PL/SQL-Blocks 3 Erlaubte SQL-Funktionen 3 Zeichenkettenfunktionen (Single Row) Numerische Funktionen (Single Row) Datumsfunktionen Konvertierungsfunktionen Beispiele: v_rest := MOD(v_xyz, 5); v_name := LOWER(v_ename); v_friday := NEXT_DAY(SYSDATE, 'FRIDAY'); v_date := TO_DATE(' ', 'DD.MM.YYYY'); v_str := TO_CHAR(v_date, 'DD.Month YYYY'); / Folie /

10 3 Der Ausführungsteil eines PL/SQL-Blocks Nicht erlaubte SQL-Funktionen Gruppenfunktionen (SUM, AVG, MIN, MAX..) Analytische Funktionen (PARTITION, DIMENSION,OVER, ) DECODE Diese Funktionen sind in PL/SQL-Anweisungen nicht zulässig, in SQL- Anweisungen innerhalb eines PL/SQL-Blocks dagegen sind sie erlaubt. nicht zulässig: zulässig: v_sum := SUM (sal_table); SELECT SUM(sal) INTO v_sum FROM emp; / 4053

11 Der Ausführungsteil eines PL/SQL-Blocks 3 Nicht erlaubte SQL-Funktionen 3 Nicht erlaubte SQL-Funktionen: Gruppenfunktionen DECODE Beispiel: -- nicht erlaubt!!! v_sum := SUM(sal_Table); -- erlaubt SELECT SUM(sal) INTO v_sum FROM emp; / Folie /

12 3 Der Ausführungsteil eines PL/SQL-Blocks 3.4 Reguläre Ausdrücke Allgemein Reguläre Ausdrücke (engl.: regular expressions) sind ein leistungsstarkes Werkzeug zur Verarbeitung von Texten und Daten in der ORACLE Version 10g. Mit regulären Ausdrücken können sehr komplexe und subtile Textprobleme elegant beschrieben und gelöst werden. Reguläre Ausdrücke sind in der UNIX Welt (egrep, vi, awk, emacs, ) seit langem verbreitet. Bsp.: Suche alle Zeilen aus der Datei protokoll.log, welche mit dem Wort "Fehler" oder Wort "Error" anfangen: % egrep '^(Fehler Error)' protokoll.log Die Programmiersprachen Java, Visual Basic, VBScript, JavaScript, C, C++, C#, (.NET), elist, perl, Python, Tcl, Ruby, PHP, etc. können mit regulären Ausdrücken umgehen. Ein produktiver Einsatz ist für Ungeübte jedoch kein einfaches Unterfangen, da sie ein sehr mächtiges und komplexes Werkzeug darstellen. Mehr über reguläre Ausdrücke im Allgemeinen erfährt man im Buch von J.E.F. Friedl: "Reguläre Ausdrücke". Reguläre Ausdrücke im Zusammenhang mit Oracle sind in einer zusammengefassten Form im Buch "Oracle Regular Expressions" zu finden / 4053

13 Der Ausführungsteil eines PL/SQL-Blocks 3 Reguläre Ausdrücke 3 Reguläre Ausdrücke (über REGEXP Funktionen) Anwendung auf: CHAR VARCHAR2 CLOB NCHAR NVARCHAR2 NCLOB / Folie /

14 3 Der Ausführungsteil eines PL/SQL-Blocks Einsatz in ORACLE 10g Mögliche Einsatzgebiete in ORACLE sind: das Suchen eines bestimmten Musters in einer Zeichenkette das Ersetzen eines bestimmten Musters durch ein anderes in einer Zeichenkette das Extrahieren bestimmter Muster aus einer Zeichenkette das Prüfen des Auftretens eines bestimmten Musters in einer Zeichenkette Reguläre Ausdrücke können bei ORACLE auf folgende Datentypen angewandt werden: CHAR, VARCHAR2, CLOB, NCHAR, NVARCHAR, NCLOB REGEXP_Funktionen Für reguläre Ausdrücke wurden vier neue Funktionen entwickelt REGEXP_INSTR REGEXP_INSTR stellt ähnlich wie der INSTR-Operator fest, an welcher Stelle das gesuchte Muster auftritt. Beispiel: Angestellte mit mehr als einem 'A' im Namen suchen: SELECT * FROM emp WHERE REGEXP_INSTR (ename, '[A]+', 1, 2) > 0; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO 7876 ADAMS CLERK / 4053

15 Der Ausführungsteil eines PL/SQL-Blocks REGEXP_SUBSTR REGEXP_SUBSTR ist ähnlich wie der SUBSTR-Operator. Gibt den Teilstring aus, welcher auf das gesuchte Muster passt. SELECT ename, REGEXP_SUSTR (ename,'[^a]+') Test FROM emp; ENAME SMITH ALLEN WARD JONES MARTIN BLAKE CLARK SCOTT KING TURNER ADAMS JAMES FORD MILLER TEST SMITH LLEN W JONES M BL CL SCOTT KING TURNER D J FORD MILLER /

16 3 Der Ausführungsteil eines PL/SQL-Blocks REGEXP_LIKE REGEXP_LIKE prüft ähnlich wie der LIKE-Operator, ob die Muster gleich sind. Beispiel: Alle die mit 'J' anfangen und ein 'N' im Namen haben: SELECT ename FROM emp WHERE REGEXP_LIKE (ename,'^j.*n'); JONES ENAME REGEXP_REPLACE REGEXP_REPLACE ist ähnlich wie der REPLACE-Operator. Sucht und ersetzt die beschriebenen Muster. Beispiel: Ersetzen von L s durch das benachbarte Nachfolgezeichen, sofern dieses kein weiteres L ist. SELECT ename, REGEXP_REPLACE (ename, 'L([^L])', '\1\1') AS Test FROM emp; SMITH ALLEN WARD JONES MARTIN BLAKE CLARK SCOTT KING TURNER ADAMS JAMES FORD MILLER ENAME SMITH ALEEN WARD JONES MARTIN BAAKE CAARK SCOTT KING TURNER ADAMS JAMES FORD MILEER TEST / 4053

17 Der Ausführungsteil eines PL/SQL-Blocks 3 REGEXP 3 REGEXP Funktionen: REGEXP_INSTR REGEXP_SUBSTR REGEXP_LIKE REGEXP_REPLACE Bsp.: SELECT ename, REGEXP_REPLACE (ename, 'L([^L])', '\1\1') AS Test FROM emp; / Folie /

18 3 Der Ausführungsteil eines PL/SQL-Blocks Die Metazeichen der Regulären Ausdrücke Die Implementierung in ORACLE 10g basiert auf dem POSIX ERE (Extended Regular Expression) Standard. Des Weiteren sind auch diverse Zeichenklassen ab Oracle 10g abprüfbar. Oracle hat ab Version 10.2 eigene Kürzel für einige Zeichenklassen eingeführt. Zeichen 10.2 Bedeutung [:alnum:] \w Alle alphanumerischen Zeichen (A-Z, 0-9) [^[:alnum:]] \W Alles außer alphanumerischen Zeichen [:alpha:] Alle alphabetischen Zeichen (A-Z) [:blank:] Alle Leerzeichen [:cntrl:] Alle nichtdruckbaren Sonderzeichen [:digit:] \d Alle Zahlen [^[:digit:]] \D Alles außer Zahlen [:graph:] Alle [:punct:], [:upper:], [:lower:], und [:digit:] Zeichen. [:lower:] Alle Kleinbuchstaben [:print:] Alle druckbaren Zeichen [:punct:] Alle Punktations Zeichen [:space:] \s Alle Space Zeichen (nichtdruckbar) [^[:space:]] \S Alle außer Space Zeichen [:upper:] Alle Großbuchstaben [:xdigit:] Alle Hexadezimalzeichen / 4053

19 Der Ausführungsteil eines PL/SQL-Blocks 3 Metazeichen von Regulären Ausdrücken 3 \ Der Backslash kann abhängig vom Kontext vier verschiedene Bedeutungen haben. Er kann: für sich selbst stehen, das nächste Zeichen zitieren, einen Operator einbringen oder nichts tun. * +? ^ $. [ ] ( ) {m} {m,} {m,n} \n [..] [: :] [==] Passt bei beliebig vielen Vorkommen (auch bei keinen) Passt bei mindestens einem Vorkommen Passt bei keinem oder genau einem Vorkommen Trennzeichen für alternative Muster Passt auf den Zeilenanfang Passt auf das Zeilenende Passt auf jedes unterstützte Zeichen ausgenommen von NULL Klammerausdruck enthält eine Liste von Ausdrücken, von denen ein beliebiger passen darf. Eine Ausschlussliste beginnt mit einem Circumflex (^). Gruppierung, wird als einzelner Teilausdruck behandelt. Passt bei genau m Auftreten. Passt bei mindestens m Auftreten. Passt bei mindestens m Auftreten, jedoch nicht mehr als n. Eine Backreference (n ist eine Ziffer zwischen 1 und 9) passt auf den n-ten Teilausdruck vor dem \n Steht für ein (evtl. zusammengesetztes) Textzeichen, z.b. [.ch.] im Spanischen. Steht für eine Zeichenklasse (z.b. [:alpha:]). Passt auf jedes Zeichen dieser Klasse. Steht für eine Äquivalenzklasse. So passt z.b. [=o=] auf o, ô, ö, ò, usw / Folie 8 Weitere mögliche reguläre Ausdrücke 3 Zeichen 10.2 Bedeutung [:alnum:] \w Alle alphanummerischen Zeichen (A-Z, 0-9) [^[:alnum:]]\w Alles außer alphanummerischen Zeichen [:alpha:] Alle alphabetischen Zeichen (A-Z) [:blank:] Alle Leerzeichen [:cntrl:] Alle nichtdruckbaren Sonderzeichen [:digit:] \d Alle Zahlen [^[:digit:]] \D Alles außer Zahlen [:graph:] Alle [:punct:], [:upper:], [:lower:], und [:digit:] Zeichen. [:lower:] Alle Kleinbuchstaben [:print:] Alle druckbaren Zeichen [:punct:] Alle Punktations Zeichen [:space:] \s Alle Space Zeichen (nichtdruckbar) [^[:space:]] \S Alle außer Space Zeichen [:upper:] Alle Großbuchstaben [:xdigit:] Alle Hexadezimalzeichen / Folie /

20 3 Der Ausführungsteil eines PL/SQL-Blocks 3.5 Operatoren in PL/SQL PL/SQL unterstützt das logische Vergleichen von Variablen und Konstanten in SQL sowie in PL/SQL-Befehlen. Es sind dieselben arithmetischen und logischen Operatoren und Verknüpfungen zulässig wie unter SQL. Zusätzlich gibt es den Exponentialoperator (**). Mit Klammern kann man die Priorität der Operationen verändern. Auch Wildcards ( _ für ein Zeichen und % für 0 n Zeichen) sind erlaubt. Priorität der Operatoren: Logiktabellen: Operator Operation **, NOT Exponentialoperator, logische Verneinung +, - Vorzeichen *, / Multiplikation, Division +, -, Addition, Subtraktion, Konkatenierung =,!=, <, >, <=, >=, IS NULL, LIKE, BETWEEN, IN AND OR Vergleich logisches UND logisches ODER NOT TRUE FALSE NULL FALSE TRUE NULL AND TRUE FALSE NULL TRUE TRUE FALSE NULL FALSE FALSE FALSE FALSE NULL NULL FALSE NULL OR TRUE FALSE NULL TRUE TRUE TRUE TRUE FALSE TRUE FALSE NULL NULL TRUE NULL NULL / 4053

21 Der Ausführungsteil eines PL/SQL-Blocks 3 Operatoren in PL/SQL 3 Operator **, NOT +, - *, / +, -, =,!=, <, >, <=, >=, IS NULL, LIKE, BETWEEN, IN TRUE FALSE NULL NOT AND AND OR TRUE FALSE TRUE TRUE FALSE NULL Operation Exponentialoperator, logische Verneinung Vorzeichen Multiplikation, Division Addition, Subtraktion, Konkatenierung Vergleich logisches UND logisches ODER FALSE TRUE FALSE FALSE FALSE FALSE NULL NULL NULL NULL FALSE NULL OR TRUE FALSE NULL TRUE TRUE TRUE TRUE FALSE TRUE FALSE NULL NULL TRUE NULL NULL / Folie 10 Operatoren in PL/SQL 3 AND: beide Bedingungen müssen TRUE sein, damit das Ergebnis TRUE wird OR: Mindestens eine der Bedingungen muss TRUE sein, damit das Ergebnis TRUE wird NOT und logische Verknüpfungen Achtung: NOT NULL ergibt NULL! Beispiele: 5 < 7 AND 'ADAM'!= 'EVE' TRUE 5 < 7 OR 'EVE' < 'ADAM TRUE a < b OR 'EVE' < 'ADAM' NULL (a und b unbekannt) a < b AND 'EVE' < 'ADAM' FALSE / Folie /

22 3 Der Ausführungsteil eines PL/SQL-Blocks 3.6 Der SELECT-Befehl in PL/SQL Innerhalb von PL/SQL ist die normale SELECT-Syntax nicht zulässig. Stattdessen müssen mit Hilfe eines SELECT-Befehls Werte aus einer Tabelle in Variablen eingelesen werden. Syntax: SELECT INTO FROM [WHERE spalte1 {, spalte2} variable1 {, variable2} tabelle Bedingungen]; Dabei ist zu beachten: Anzahl und Datentyp der Variablen müssen mit der Anzahl und dem Datentyp der selektierten Spalten übereinstimmen. Die WHERE-Bedingung ist so zu gestalten, dass genau ein Datensatz zurückgeliefert wird. Wird gar kein Datensatz oder mehr als einer zurückgeliefert, so wird ein Fehler ausgelöst (NO_DATA_FOUND bzw. TOO_MANY_ROWS). Tipp: Gruppenfunktionen (ohne GROUP BY) liefern immer genau einen Wert zurück Mehr als einen Wert mit einem einzelnen SELECT-Befehl einlesen kann man mit der Klausel BULK COLLECT : Syntax: SELECT spalte1 [, spalte2,...] BULK COLLECT INTO variable1 [, variable2,...] FROM tabelle [WHERE Bedingung]; Auch hier müssen Anzahl und Datentyp von Spaltenliste und Variablen zusammenpassen. Die verwendeten Variablen müssen allerdings in der Lage sein, mehr als einen Wert aufzunehmen; nur Collections sind zulässig (z.b. PL/SQL-Tables). Einzelheiten zur Variablendeklaration im Beispiel (PL/SQL-TABLE) finden Sie in Kapitel / 4053

23 Der Ausführungsteil eines PL/SQL-Blocks 3 Beispiele: SELECT ename INTO v_name FROM emp where empno = 7788; SELECT ename INTO v_name FROM emp where mgr IS NULL; SELECT MAX(mgr) INTO v_mgr FROM emp; SELECT ename, mgr, hiredate INTO v_name, v_mgr, v_date FROM emp where empno = 7788; DECLARE TYPE namensliste IS TABLE OF emp.ename%type; n_list namensliste; BEGIN SELECT ename BULK COLLECT INTO n_list FROM emp;... END; /

24 3 Der Ausführungsteil eines PL/SQL-Blocks SELECT-Befehl in PL/SQL 3 Syntax: SELECT INTO FROM [WHERE spalte1 {spalte2} variable1 {,variable2} tabelle bedingungen]; Anzahl und Datentyp der Spalten und Variablen müssen übereinstimmen Es darf nur genau eine Zeile zurückgegeben werden Tipp: Gruppenfunktionen verwenden BULK COLLECT möglich / Folie / 4053

25 Der Ausführungsteil eines PL/SQL-Blocks DML-Befehle in PL/SQL DML-Befehle (INSERT, UPDATE, DELETE) sind in PL/SQL uneingeschränkt erlaubt. Innerhalb von DML-Befehlen dürfen PL/SQL-Variablen anstatt fester Werte verwendet werden, falls der Datentyp stimmt. Auch Befehle zur Transaktionssteuerung (COMMIT, ROLLBACK) sind zulässig (Ausnahme: Trigger). Ein DML-Befehl, der keine Zeile oder mehr als eine Zeile betrifft, löst im Gegensatz zu SELECT keinen Fehler aus. Der Erfolg eines DML- Befehls kann jedoch mit Hilfe von Cursor-Attributen überprüft werden. Ein Cursor ist ein privater Speicherbereich innerhalb der SGA, in dem ein SQL-Befehl geparst und ausgeführt wird. Gleichzeitig ist er auch ein Zeiger auf diesen Speicherbereich. Man unterscheidet explizite und implizite Cursor. Explizite Cursor werden ähnlich wie Variablen deklariert. Jedem SQL-Befehl wird automatisch ein impliziter SQL-Cursor zugeordnet, dessen Attribute unmittelbar nach Ausführung des Befehls abgefragt werden können. SQL-Cursor-Attribute: SQL%ROWCOUNT: Anzahl der Zeilen, die vom letzten SQL-Befehl bearbeitet wurden (Datentyp INTEGER) SQL%FOUND: gibt TRUE zurück, wenn der letzte SQL-Befehl mindestens eine Zeile bearbeitet hat (Datentyp BOOLEAN) SQL%NOTFOUND: gibt TRUE zurück, wenn der letzte SQL-Befehl keine Zeile bearbeitet hat (Datentyp BOOLEAN) SQL%ISOPEN: gibt immer FALSE zurück, weil ein impliziter Cursor unmittelbar nach Ausführung des SQL- Befehls geschlossen wird Im nächsten Beispiel wird die Anzahl der geänderten bzw. gelöschten Zeilen mit Hilfe von DBMS_OUTPUT.PUT_LINE am Bildschirm ausgegeben. Damit diese vordefinierte Prozedur unter SQL*Plus wirksam wird, muss vorher eingegeben werden: SQL> SET SERVEROUTPUT ON /

26 3 Der Ausführungsteil eines PL/SQL-Blocks Beispiel: UPDATE emp SET sal = sal * 1.1 WHERE job = 'MANAGER'; v_count := SQL%ROWCOUNT; if SQL%FOUND THEN -- falls Zeile -- geändert, dann lösche: DELETE FROM emp WHERE mgr = 7902; v_count2 := SQL%ROWCOUNT; end if; COMMIT; DBMS_OUTPUT.PUT_LINE(v_count ' Zeilen geändert'); DBMS_OUTPUT.PUT_LINE(v_count2 ' Zeilen gelöscht'); / 4053

27 Der Ausführungsteil eines PL/SQL-Blocks 3 DML-Befehle in PL/SQL 3 uneingeschränkt zulässig Transaktionskontrolle zulässig (Ausnahme Trigger) durch Cursor-Attribute kontrollierbar SQL-Cursor-Attribute: SQL%ROWCOUNT SQL%FOUND SQL%NOTFOUND SQL%ISOPEN Beispiel: UPDATE emp SET sal = sal * 1.1 WHERE job = 'MANAGER'; v_count := SQL%ROWCOUNT; IF SQL%FOUND THEN -- falls Zeile geändert, dann lösche: DELETE FROM emp WHERE mgr = 7902; v_count2 := SQL%ROWCOUNT; END IF; COMMIT; DBMS_OUTPUT.PUT_LINE(v_count ' Zeilen geändert'); DBMS_OUTPUT.PUT_LINE(v_count2 ' Zeilen gelöscht'); / Folie /

28 3 Der Ausführungsteil eines PL/SQL-Blocks 3.8 Erweiterungen der DML-Befehle in ORACLE 10g Es ist bei INSERT, UPDATE und DELETE Befehlen nun möglich, innerhalb des Statements einen Einzelwert (Single Aggregate) einer Variable zuzuweisen und diesen später aus der Variable auszulesen. SQL> SET SERVEROUTPUT ON; SQL> VARIABLE sum_verdienst NUMBER; INSERT Statement SQL> INSERT INTO emp (empno, ename, sal) VALUES (4711, 'Mato Bejic', 5000) RETURNING (SELECT sum(sal) FROM emp) INTO :sum_verdienst; SQL> exec dbms_output.put_line (TO_CHAR(:sum_verdienst)); UPDATE Statement SQL> UPDATE emp SET sal = sal RETURNING SUM(sal) INTO :sum_verdienst; SQL> exec dbms_output.put_line (TO_CHAR(:sum_verdienst)); DELETE Statement SQL> DELETE FROM emp WHERE empno = 4711 RETURNING SUM(sal) INTO :sum_verdienst; SQL> exec dbms_output.put_line (TO_CHAR(:sum_verdienst)); / 4053

29 Der Ausführungsteil eines PL/SQL-Blocks 3 Änderungen der DML Befehle in ORACLE 10g 3 Single Aggregate können einer Variable zugewiesen werden Möglich bei: INSERT UPDATE DELETE Beispiel: UPDATE emp SET sal = sal RETURNING SUM(sal) INTO :sum_verdienst; exec dbms_output.put_line (TO_CHAR(:sum_verdienst)); / Folie /

30 3 Der Ausführungsteil eines PL/SQL-Blocks 3.9 Die GOTO-Anweisung Mit GOTO wird bedingungslos zu einem Label gesprungen, um von dort aus den Code weiter abzuarbeiten. Dieses Label wird auch als Sprungmarke bezeichnet. Nicht zulässig sind allerdings: Sprung in ein IF-Konstrukt hinein (s. Kapitel 4) Sprung von einem Zweig eines IF-Konstrukts in einen anderen Sprung in eine Schleife hinein (s. Kapitel 4) Sprung in einen untergeordneten Block hinein Sprung aus dem Fehlerbehandlungsteil zurück in den Ausführungsteil Sprünge aus einem IF-Konstrukt heraus, aus einer Schleife heraus, und aus einem untergeordneten Block in den übergeordneten Block sind erlaubt. Anmerkung: GOTO-Anweisungen sollten möglichst vermieden werden, da sie den Code unübersichtlich machen. Syntax: GOTO label; / 4053

31 Der Ausführungsteil eines PL/SQL-Blocks 3 GOTO-Anweisung 3 Durch GOTO springt das Programm an die angegebene Stelle Nicht gesprungen werden darf in: Schleifen, IF-Konstrukten und untergeordneten Blöcken. Beispiel: DECLARE v_name CHAR(10); valid BOOLEAN; BEGIN <<get_name>> SELECT ename INTO v_name FROM emp WHERE empno = &g_no; BEGIN... IF valid THEN... ELSE GOTO get_name; END IF; END; END; / Folie /

32 3 Der Ausführungsteil eines PL/SQL-Blocks 3.10 Bedingte Kompilierung Ab Version 10.2 sind nun endlich auch Preprozessoranweisungen möglich. Abhängig von der Version kann z.b. dann nur ein bestimmter Codeabschnitt kompiliert werden. Beispiel: Hier wird abhängig von der Version nur ein bestimmter Codeabschnitt kompiliert. $IF DBMS_DB_VERSION.VER_LE_10 $THEN Code für Version 10 oder älter$elsif DBMS_DB_VERSION.VER_LE_11 $THEN Versions 11 code $ELSE Version 12 oder größer Code $END In diesem Beispiel wird eine boolsche Variable für die Kompilierung auf einen Wert gesetzt. Diese Variable entscheidet dann welche Teil der Funktion kompiliert wird. CREATE OR REPLACE FUNCTION f1 RETURN VARCHAR2 AS BEGIN $If $$ppv $Then RETURN 'PPV was TRUE'; $Else RETURN 'PPV was FALSE'; $END /* Kein Semicolon */ END; SQL> ALTER SESSION SET plsql_ccflags = 'PPV:TRUE'; SQL> ALTER FUNCTION F1 COMPILE; SQL> select f1 from dual; MYFUNC PPVAL was TRUE / 4053

33 Der Ausführungsteil eines PL/SQL-Blocks 3 Bedingte Kompilierung 3 Lange haben die Programmier auf Preprozessor- anweisungen gewartet. Damit kann ein bedingte Kompilierung erzeugt werden Beispiele: Programmteile für verschiedene Versionen Debugginginfos mit in den Code kompileren Deluxe Version (vergleichbar Enterprise/Standard Edition) kompilieren Syntax: $IF <bed> $THEN <Code> $ELSIF <bed> $THEN <Code> $ELSE <Code> $END / Folie /

34 3 Der Ausführungsteil eines PL/SQL-Blocks / 4053

Themen des Kapitels. 2 Grundlagen von PL/SQL. PL/SQL Blöcke Kommentare Bezeichner Variablen Operatoren. 2.1 Übersicht. Grundelemente von PL/SQL.

Themen des Kapitels. 2 Grundlagen von PL/SQL. PL/SQL Blöcke Kommentare Bezeichner Variablen Operatoren. 2.1 Übersicht. Grundelemente von PL/SQL. 2 Grundlagen von PL/SQL Grundelemente von PL/SQL. 2.1 Übersicht Themen des Kapitels Grundlagen von PL/SQL Themen des Kapitels PL/SQL Blöcke Kommentare Bezeichner Variablen Operatoren Im Kapitel Grundlagen

Mehr

Die bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert.

Die bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert. Betrifft Autor FIRST, LAST Markus Jägle (markus.jaegle@trivadis.com) Art der Info Technische Background Info (April 2002) Quelle Aus dem NF9i-Kurs, NF9i-Techno-Circle der Trivadis und Oracle9i Data Warehousing

Mehr

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009 Hochschule Darmstadt DATENBANKEN Fachbereich Informatik Praktikum 3 Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009 PL/SQL Programmierung Anwendung des Cursor Konzepts und Stored Procedures Und Trigger

Mehr

Prozedurale Datenbank- Anwendungsprogrammierung

Prozedurale Datenbank- Anwendungsprogrammierung Idee: Erweiterung von SQL um Komponenten von prozeduralen Sprachen (Sequenz, bedingte Ausführung, Schleife) Bezeichnung: Prozedurale SQL-Erweiterung. In Oracle: PL/SQL, in Microsoft SQL Server: T-SQL.

Mehr

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München Kapitel 4 Dynamisches SQL Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München 2008 Thomas Bernecker, Tobias Emrich unter Verwendung der Folien des Datenbankpraktikums aus dem Wintersemester

Mehr

SQL (Structured Query Language) Schemata Datentypen

SQL (Structured Query Language) Schemata Datentypen 2 SQL Sprachelemente Grundlegende Sprachelemente von SQL. 2.1 Übersicht Themen des Kapitels SQL Sprachelemente Themen des Kapitels SQL (Structured Query Language) Schemata Datentypen Im Kapitel SQL Sprachelemente

Mehr

Oracle 10g Einführung

Oracle 10g Einführung Kurs Oracle 10g Einführung Teil 7 Einige interessante SQL und PL/SQL Erweiterungen für Administratoren Timo Meyer Administration von Oracle-Datenbanken Timo Meyer Sommersemester 2006 Seite 1 von 19 Seite

Mehr

Datentypen. Agenda für heute, 4. März, 2010. Pascal ist eine streng typisierte Programmiersprache

Datentypen. Agenda für heute, 4. März, 2010. Pascal ist eine streng typisierte Programmiersprache Agenda für heute, 4. März, 2010 Zusammengesetzte if-then-else-anweisungen Datentypen Pascal ist eine streng typisierte Programmiersprache Für jeden Speicherplatz muss ein Datentyp t (Datenformat) t) definiert

Mehr

Diana Lange. Generative Gestaltung Operatoren

Diana Lange. Generative Gestaltung Operatoren Diana Lange Generative Gestaltung Operatoren Begriffserklärung Verknüpfungsvorschrift im Rahmen logischer Kalküle. Quelle: google Operatoren sind Zeichen, die mit einer bestimmten Bedeutung versehen sind.

Mehr

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion Überblick über Stored Functions Funktionen Eine Funktion ist ein benannter PL/SQL- Block, der einen Wert zurückgibt. Eine Funktion kann in der Datenbank als Objekt zur wiederholbaren Ausführung gespeichert

Mehr

Erwin Grüner 09.02.2006

Erwin Grüner 09.02.2006 FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife

Mehr

Java Einführung Operatoren Kapitel 2 und 3

Java Einführung Operatoren Kapitel 2 und 3 Java Einführung Operatoren Kapitel 2 und 3 Inhalt dieser Einheit Operatoren (unär, binär, ternär) Rangfolge der Operatoren Zuweisungsoperatoren Vergleichsoperatoren Logische Operatoren 2 Operatoren Abhängig

Mehr

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Aufgabe 1: Projektion Datenbanksysteme I π A1,...,A n (π B1,...,B

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Informatik 12 Datenbanken SQL-Einführung

Informatik 12 Datenbanken SQL-Einführung Informatik 12 Datenbanken SQL-Einführung Gierhardt Vorbemerkungen Bisher haben wir Datenbanken nur über einzelne Tabellen kennen gelernt. Stehen mehrere Tabellen in gewissen Beziehungen zur Beschreibung

Mehr

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten

Mehr

PL/SQL. Deklaration von Variablen. Inhalt. PL/SQL Block Struktur. PL/SQL Block Struktur

PL/SQL. Deklaration von Variablen. Inhalt. PL/SQL Block Struktur. PL/SQL Block Struktur PL/SQL Deklaration von Variablen Inhalt Erkennen der PL/SQL Blockstruktur Beschreiben von Variablen in PL/SQL Unterschied zwischen PL/SQL und nicht-pl/sql Variablen Deklaration von PL/SQL Variablen Ausführen

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin PhpMyAdmin = grafsches Tool zur Verwaltung von MySQL-Datenbanken Datenbanken erzeugen und löschen Tabellen und Spalten einfügen,

Mehr

Art der Info: Technische Background Info Teil 1 (April 2002)

Art der Info: Technische Background Info Teil 1 (April 2002) Betrifft: Autor: Oracle 9i New Features SQL und PL/SQL Christine Hansen (christine.hansen@trivadis.com) Art der Info: Technische Background Info Teil 1 (April 2002) Quelle: Aus dem NF9i-Kurs und NF9i-Techno-Circle

Mehr

SQL Intensivpraktikum SS 2008

SQL Intensivpraktikum SS 2008 SQL Intensivpraktikum SS 2008 SQL en Einfache en Eingabe arg 1 arg 2 führt Aktion durch Ergebnis Wert Ausgabe arg n SQL1 basierend auf OAI-Kurs Copyright Oracle Corporation, 1998. All rights reserved.

Mehr

Zur drittletzten Zeile scrollen

Zur drittletzten Zeile scrollen 1 Fragen und Antworten zur Computerbedienung Thema : Zur drittletzten Zeile scrollen Thema Stichwort Programm Letzte Anpassung Zur drittletzten Zeile scrollen Scrollen VBA Excel 1.02.2014 Kurzbeschreibung:

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen Grundlagen der Programmierung Prof. H. Mössenböck 3. Verzweigungen If-Anweisung n > 0? j n if (n > 0) x = x / n; ohne else-zweig x x / n j max x x > y? n max y if (x > y) max = x; else max = y; mit else-zweig

Mehr

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY.

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY. SELECT - Der Grundbefehl zur Auswahl von Daten Die SELECT-Anweisung fragt Daten aus einer Datenbank ab und stellt diese in einer virtuellen Tabelle zur Verfügung. Diese virtuelle Tabelle, eine Menge von

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

Art der Info: Technische Background Info Teil 3 (April 2002)

Art der Info: Technische Background Info Teil 3 (April 2002) Betrifft: Autor: Oracle9i New Features SQL und PL/SQL Patrick Malcherek (patrick.malcherek@trivadis.com) Art der Info: Technische Background Info Teil (April 00) Quelle: Aus dem NF9i-Kurs und NF9i-Techno-Circle

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

Prakt. Datenbankprogrammierung. Sommersemester 2005

Prakt. Datenbankprogrammierung. Sommersemester 2005 Prakt. Datenbankprogrammierung Sommersemester 2005 I,3: Single-Row-Funktionen Martin-Luther-Universität Halle, Institut für Informatik, Datenbanken Christian Goldberg SQL-Funktionen Input arg 1 arg 2 Funktion

Mehr

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7 Java 7 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Dezember 2011 JAV7 5 Java 7 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:

Mehr

Einführung in die C++ Programmierung für Ingenieure

Einführung in die C++ Programmierung für Ingenieure Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF

Mehr

Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel

Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel Powerful PL/SQL: Collections indizieren mit VARCHAR2- Indizes ein Praxisbeispiel Schlagworte Autor: Klaus Friemelt, MT AG dynamisches BULK SQL, VARCHAR2-indizierte PL/SQL-Tabellen Einleitung Mit den letzten

Mehr

Oracle Datenbankprogrammierung mit PL/SQL Grundlagen

Oracle Datenbankprogrammierung mit PL/SQL Grundlagen Oracle Datenbankprogrammierung mit PL/SQL Grundlagen Seminarunterlage Version: 12.05 Version 12.05 vom 29. Januar 2015 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt-

Mehr

Suchmaschinen. Universität Augsburg, Institut für Informatik SS 2014 Prof. Dr. W. Kießling 23. Mai 2014 Dr. M. Endres, F. Wenzel Lösungsblatt 6

Suchmaschinen. Universität Augsburg, Institut für Informatik SS 2014 Prof. Dr. W. Kießling 23. Mai 2014 Dr. M. Endres, F. Wenzel Lösungsblatt 6 Universität Augsburg, Institut für Informatik SS 2014 Prof. Dr. W. Kießling 23. Mai 2014 Dr. M. Endres, F. Wenzel Lösungsblatt 6 Aufgabe 1: Pareto mit SV-Semantik Suchmaschinen Pareto Definition: x < P

Mehr

Übungen zu C++ Kapitel 1

Übungen zu C++ Kapitel 1 Übungen zu C++ Kapitel 1 Aufgabe 1 Ergänze den Text. a) Die sechs logischen Einheiten eines Computers sind Eingabe-Einheit, Ausgabe-Einheit, RAM, ALU, CPU, Plattenspeicher. b) Die Programme, welche Hochsprachenprogramme

Mehr

Modul 122 VBA Scribt.docx

Modul 122 VBA Scribt.docx Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {

Mehr

Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen!

Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen! Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen! Grundstrukturen: Sub [name]([übergabe]) End Sub [Übergabe] ist

Mehr

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und 2005. combit GmbH Untere Laube 30 78462 Konstanz

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und 2005. combit GmbH Untere Laube 30 78462 Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager Datensatzhistorie mit dem SQL Server 2000 und 2005 Datensatzhistorie mit dem SQL Server 2000 und 2005-2 - Inhalt

Mehr

Views in SQL. 2 Anlegen und Verwenden von Views 2

Views in SQL. 2 Anlegen und Verwenden von Views 2 Views in SQL Holger Jakobs bibjah@bg.bib.de, holger@jakobs.com 2010-07-15 Inhaltsverzeichnis 1 Wozu dienen Views? 1 2 Anlegen und Verwenden von Views 2 3 Schreibfähigkeit von Views 3 3.1 Views schreibfähig

Mehr

11 Funktionen. 11.1 Vorteile von Funktionen. Leseprobe aus Access und SQL Server http://www.acciu.de/asqllesen

11 Funktionen. 11.1 Vorteile von Funktionen. Leseprobe aus Access und SQL Server http://www.acciu.de/asqllesen Leseprobe aus Access und SQL Server http://www.acciu.de/asqllesen 11 Funktionen Bestimmt enthält Ihre Access-Applikation einige VBA-Funktionen. Funktionen, in denen Sie wie derkehrende Funktionalität,

Mehr

Funktion definieren Gibt Summe der Gehälter zurück. Aufruf in einem SQL-Statement

Funktion definieren Gibt Summe der Gehälter zurück. Aufruf in einem SQL-Statement Funktion definieren Gibt Summe der Gehälter zurück Aufruf in einem SQL-Statement Dr. Christian Senger Einführung PL/SQL 1 Procedures & Transaktionen CREATE OR REPLACE PROCEDURE write_log ( log_code IN

Mehr

M@school Software- und Druckerzuweisung Selbstlernmaterialien

M@school Software- und Druckerzuweisung Selbstlernmaterialien Bildung und Sport M@school Software- und Druckerzuweisung Selbstlernmaterialien Hinweise zum Skript: LMK = Linker Mausklick RMK = Rechter Mausklick LMT = Linke Maustaste RMT = Rechte Maustaste Um die Lesbarkeit

Mehr

Gesicherte Prozeduren

Gesicherte Prozeduren Gesicherte Prozeduren Wenn eine Anwendung auf einer Client-Maschine läuft, wird normalerweise jede SQL-Anweisung einzeln vom Client an den Server gesandt, und jedes Ergebnistupel wird einzeln zurückgeliefert.

Mehr

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar Qt-Seminar Dienstag, 10.2.2009 SQL ist......die Abkürzung für Structured Query Language (früher sequel für Structured English Query Language )...ein ISO und ANSI Standard (aktuell SQL:2008)...eine Befehls-

Mehr

4 Aufzählungen und Listen erstellen

4 Aufzählungen und Listen erstellen 4 4 Aufzählungen und Listen erstellen Beim Strukturieren von Dokumenten und Inhalten stellen Listen und Aufzählungen wichtige Werkzeuge dar. Mit ihnen lässt sich so ziemlich alles sortieren, was auf einer

Mehr

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007 6. Übung zur Vorlesung Datenbanken im Sommersemester 2007 mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007 Aufgabe 1: Rekursion Betrachten Sie die folgende Tabelle

Mehr

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet C++ Grundlagen ++ bedeutet Erweiterung zum Ansi C Standard Hier wird eine Funktion eingeleitet Aufbau: In dieser Datei stehen die Befehle, die gestartet werden, wenn das Programm gestartet wird Int main()

Mehr

Einführung in die Programmierung (EPR)

Einführung in die Programmierung (EPR) Goethe-Center for Scientific Computing (G-CSC) Goethe-Universität Frankfurt am Main Einführung in die Programmierung (EPR) (Übung, Wintersemester 2014/2015) Dr. S. Reiter, M. Rupp, Dr. A. Vogel, Dr. K.

Mehr

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5

Mehr

1.4.12 Sin-Funktion vgl. Cos-Funktion

1.4.12 Sin-Funktion vgl. Cos-Funktion .4. Sgn-Funktion Informatik. Semester 36 36.4.2 Sin-Funktion vgl. Cos-Funktion Informatik. Semester 37 37 .4.3 Sqr-Funktion Informatik. Semester 38 38.4.4 Tan-Funktion Informatik. Semester 39 39 .5 Konstanten

Mehr

cs241: Datenbanken mit Übungen HS 2011

cs241: Datenbanken mit Übungen HS 2011 UNIVERSITÄT BASEL Prof. Dr. Heiko Schuldt MSc. Nenad Stojnić BSc. Ivan Giangreco BSc. Florian Lindörfer cs241: Datenbanken mit Übungen HS 2011 Übung 5 Abgabe bis: 4.11.2011 Hinweise: Modalitäten der Abgabe:

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Übersicht Programmablaufsteuerung

Übersicht Programmablaufsteuerung Übersicht Programmablaufsteuerung Konditionale Verzweigung: if - else switch-anweisung Schleifenkonstrukte: while, do - while for Schleife Sprung-Anweisungen: break, continue, goto, return Anweisungen

Mehr

Excel Funktionen durch eigene Funktionen erweitern.

Excel Funktionen durch eigene Funktionen erweitern. Excel Funktionen durch eigene Funktionen erweitern. Excel bietet eine große Anzahl an Funktionen für viele Anwendungsbereiche an. Doch es kommt hin und wieder vor, dass man die eine oder andere Funktion

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

Mehr

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4.

Programmierparadigmen. Programmierparadigmen. Imperatives vs. objektorientiertes Programmieren. Programmierparadigmen. Agenda für heute, 4. Agenda für heute, 4. Mai, 2006 Programmierparadigmen Imperative Programmiersprachen In Prozeduren zusammengefasste, sequentiell ausgeführte Anweisungen Die Prozeduren werden ausgeführt, wenn sie als Teil

Mehr

Kontrollstrukturen in PL/SQL

Kontrollstrukturen in PL/SQL Kontrollstrukturen in PL/SQL.1 Bedingte Anweisungen... -2.1.1 Die IF-THEN-Anweisung... -2.1.2 Die IF-THEN-ELSE-Anweisung... -.1.3 Die IF-THEN-ELSIF-Anweisung... -.1. Die CASE-Anweisung... -6.2 Schleifen

Mehr

SQL and PL/SQL unleashed. Neuheiten bei Oracle 11g und Oracle 12c im Bereich SQL und PL/SQL

SQL and PL/SQL unleashed. Neuheiten bei Oracle 11g und Oracle 12c im Bereich SQL und PL/SQL . Neuheiten bei Oracle 11g und Oracle 12c im Bereich SQL und PL/SQL Johannes Gritsch Themenübersicht Neue Scheduler Job Typen SQL_SCRIPT und BACKUP_SCRIPT SQL RowLimit: PERCENT und TIES WITH-Klausel mit

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

Mehr

Ein reales Testumfeld bereitstellen - basierend auf einer Produktionsdatenbank (ohne eine neue Kopie zu erstellen)

Ein reales Testumfeld bereitstellen - basierend auf einer Produktionsdatenbank (ohne eine neue Kopie zu erstellen) Ein reales Testumfeld bereitstellen - basierend auf einer Produktionsdatenbank (ohne eine neue Kopie zu erstellen) Auch in früheren Versionen als der 11.2, konnte man eine Standby Datenbank abhängen, sie

Mehr

Viele Bilder auf der FA-Homepage

Viele Bilder auf der FA-Homepage Viele Bilder auf der FA-Homepage Standardmäßig lassen sich auf einer FA-Homepage nur 2 Bilder mit zugehörigem Text unterbringen. Sollen es mehr Bilder sein, muss man diese als von einer im Internet

Mehr

Unterabfragen (Subqueries)

Unterabfragen (Subqueries) Unterabfragen (Subqueries) Die kürzeste Formulierung ist folgende: SELECT Felderliste FROM Tabelle1 WHERE Tabelle1.Feldname Operator (SELECT Feldname FROM Tabelle2 WHERE Bedingung); wobei Tabelle1 und

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

SQL Intensivpraktikum SS 2008

SQL Intensivpraktikum SS 2008 SQL Intensivpraktikum SS 2008 Aggregation von Daten Arbeit mit Gruppen SQL1 basierend auf OAI-Kurs Copyright Oracle Corporation, 1998. All rights reserved. Gruppenfunktionen Gruppenfunktionen verarbeiten

Mehr

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt. Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Datenbanken und Informationssysteme II Szenario: Projektverwaltung. Es gibt Projekte, Projektleiter, Mitarbeiter und ihre Zuordnung zu Projekten.

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Datenbanken Kapitel 2

Datenbanken Kapitel 2 Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,

Mehr

Prakt. Datenbankprogrammierung. Sommersemester 2005

Prakt. Datenbankprogrammierung. Sommersemester 2005 Prakt. Datenbankprogrammierung Sommersemester 2005 II,2: Schreiben von ausführbaren Statements Martin-Luther-Universität Halle, Institut für Informatik, Datenbanken Christian Goldberg PL/SQL-Block-Syntax

Mehr

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung. Lineare Gleichungen mit einer Unbekannten Die Grundform der linearen Gleichung mit einer Unbekannten x lautet A x = a Dabei sind A, a reelle Zahlen. Die Gleichung lösen heißt, alle reellen Zahlen anzugeben,

Mehr

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken. In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access Die Grundlagen der Datenbanken kurspc15 Inhaltsverzeichnis Access... Fehler! Textmarke nicht

Mehr

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige

Mehr

Einstellungen zur Verwendung von Flashback-Abfragen

Einstellungen zur Verwendung von Flashback-Abfragen Thema Autor REISE IN DIE VERGANGENHEIT Kamel Bouzenad (kamel.bouzenad@trivadis.com) Art der Info Infos für Entwickler und DBAs (April 2002) Quelle Oracle-Dokumentation sowie beratende Aktivitäten Überblick

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 16

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 16 Kapitel 5 Arithmetische Operatoren Seite 1 von 16 Arithmetische Operatoren - Man unterscheidet unäre und binäre Operatoren. - Je nachdem, ob sie auf einen Operanden wirken, oder eine Verknüpfung zweier

Mehr

Datenbanken für Online Untersuchungen

Datenbanken für Online Untersuchungen Datenbanken für Online Untersuchungen Im vorliegenden Text wird die Verwendung einer MySQL Datenbank für Online Untersuchungen beschrieben. Es wird davon ausgegangen, dass die Untersuchung aus mehreren

Mehr

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

Mehr

Leseprobe: SQL mit MySQL - Band 4 Kompendium mit Online-Übungs-DB. Kompendium zur schnellen Kurzinformation der Datenbanksprache SQL/MySQL 5.

Leseprobe: SQL mit MySQL - Band 4 Kompendium mit Online-Übungs-DB. Kompendium zur schnellen Kurzinformation der Datenbanksprache SQL/MySQL 5. Leseprobe: SQL mit MySQL - Band 4 Kompendium mit Online-Übungs-DB Kompendium zur schnellen Kurzinformation der Datenbanksprache SQL/MySQL 5.1 im Internet: www.datenbanken-programmierung.de... 3.0 SQL nach

Mehr

SMS/ MMS Multimedia Center

SMS/ MMS Multimedia Center SMS/ MMS Multimedia Center der BEYOND THE NET GmbH BEYOND THE NET GmbH Seite 1 Unser Multimedia Center ist eine WEB basierende Anwendung, die es ermöglicht von einer Zentrale aus, viele Mitarbeiter zu

Mehr

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language) Einführung in SQL 1. Grundlagen Structured Query Language Viele Dialekte Unterteilung: i. DDL (Data Definition Language) ii. iii. DML (Data Modifing Language) DRL (Data Retrival Language) 1/12 2. DDL Data

Mehr

Grundlagen der Programmiersprache C++

Grundlagen der Programmiersprache C++ / TU Braunschweig Grundlagen der Programmiersprache C++ Um den Studierenden den Einstieg in die FE-Programmierung zu erleichtern werden die wesentlichen Elemente eines C-Programmes beschrieben, soweit

Mehr

Bedienungsanleitung Anlassteilnehmer (Vereinslisten)

Bedienungsanleitung Anlassteilnehmer (Vereinslisten) Bedienungsanleitung Anlassteilnehmer Dieses Programm ist speziell für Vereine entworfen. Es ist lizenzfrei verwendbar und gratis. Das Programm ist mit Excel 2010 erstellt worden und enthält VBA Programmierungen,

Mehr

Handbuch organice SQL-Reportgenerator

Handbuch organice SQL-Reportgenerator organice Software GmbH Handbuch organice SQL-Reportgenerator Benutzerhandbuch Stand: August 2013 Inhalt 1. Allgemeine Informationen... 3 1.1 Einführung... 3 1.2 Voraussetzungen... 3 1.3 Zielgruppe... 3

Mehr

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3. Hello World Javakurs 2014, 1. Vorlesung Sebastian Schuck basierend auf der Vorlage von Arne Kappen wiki.freitagsrunde.org 3. März 2014 This work is licensed under the Creative Commons Attribution-ShareAlike

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

Mehr

Zusammengesetzte Datentypen

Zusammengesetzte Datentypen Zusammengesetzte Datentypen.1 Records... -4.1.1 Implizite Typdeklaration mit %ROWTYPE... -6.1.2 Referenzierung eines Records... -6.2 PL/SQL Tables... -8.2.1 Deklaration einer PL/SQL Table... -8.3 Referenzierung

Mehr

Softwarelösungen: Versuch 4

Softwarelösungen: Versuch 4 Softwarelösungen: Versuch 4 Nichtstun in Schleife wird ersetzt durch zeitweilige Zurücknahme der Anforderung, um es anderen Prozessen zu erlauben, die Ressource zu belegen: /* Prozess 0 */ wiederhole flag[0]

Mehr

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü. Programm Die Bedienung des Programms geht über das Hauptmenü. Datenbank Schnittstelle Die Datenbank wir über die Datenbank- Schnittstelle von Office angesprochen. Von Office 2000-2003 gab es die Datenbank

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Lehrer: Einschreibemethoden

Lehrer: Einschreibemethoden Lehrer: Einschreibemethoden Einschreibemethoden Für die Einschreibung in Ihren Kurs gibt es unterschiedliche Methoden. Sie können die Schüler über die Liste eingeschriebene Nutzer Ihrem Kurs zuweisen oder

Mehr

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe

Mehr

Entwurf von Algorithmen - Kontrollstrukturen

Entwurf von Algorithmen - Kontrollstrukturen Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer

Mehr

Mediator 9 - Lernprogramm

Mediator 9 - Lernprogramm Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop

Mehr

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023

Kapitel 33. Der xml-datentyp. In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 Kapitel 33 Der xml-datentyp In diesem Kapitel: Der xml-datentyp 996 Abfragen aus xml-datentypen 1001 XML-Indizierung 1017 Zusammenfassung 1023 995 996 Kapitel 33: Der xml-datentyp Eine der wichtigsten

Mehr

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff Programmieren in C Felder, Schleifen und Fließkommaarithmetik Prof. Dr. Nikolaus Wulff Addition von Zahlen 1 2 3 4 5 #include int main() { int x,y,z,sum; x = 1; y = 2; z = 4; sum = x + y + z;

Mehr

Abfrage-Befehle in MySQL -diverse Funktionen -

Abfrage-Befehle in MySQL -diverse Funktionen - Abfrage-Befehle in MySQL -diverse Funktionen - Berechnungen mit MySQL -Einführung Ich liebe Funktionen! Es sollen die Projektbezeichnung, der Auftragswert, die Mehrwertsteuer und der Bruttobetrag für jedes

Mehr