Einführung in PL/SQL. 8.1 Was ist PL/SQL?
|
|
|
- Kristin Bauer
- vor 10 Jahren
- Abrufe
Transkript
1 88 8 Einführung in PL/SQL Das Speichern und Auslesen von Informationen ist nur ein Teil jeder echten Applikation. Auch die einfachsten Programme müssen Aktionen durchführen, die sich mit SQL gar nicht oder nur sehr schwer umsetzen ließen. Denken Sie nur daran, wie aufwändig die Berechnungen sind, die jedes Jahr vom Finanzamt vorgenommen werden müssen, um die korrekten Steuern zu berechnen! OK, vielleicht möchten Sie sich lieber ein anderes Beispiel vorstellen. Auf jeden Fall ist SQL alleine nicht sehr nützlich. 8.1 Was ist PL/SQL? Sie werden sich fragen, warum SQL nicht über Fähigkeiten verfügt, die es Ihnen ermöglichen, aufwändigere Berechnungen mit den Daten durchzuführen. Das ist zum Teil historisch bedingt: SQL entstand als Datenbank-Abfragesprache (Structured Query Language und wurde weiterentwickelt und optimiert für genau diesen Zweck: Datenbanken abzufragen. Verschiedene Datenbank-Hersteller haben sich auf bestimmte SQL-Standards geeinigt, nicht aber darauf, wie den Benutzern weitergehende SQL-orientierte Programmierumgebungen zur Verfügung gestellt werden sollten. Daher präsentiert jeder Datenbank-Hersteller seine proprietäre oder semi-proprietäre Lösung. Oracle bezeichnet seine Lösung als PL/SQL. Dies steht für Programming Language for SQL. In diesem Kapitel werden Sie in die Grundlagen von PL/SQL eingeführt. Sie werden den Unterschied zwischen SQL, SQL*Plus und PL/SQL kennen lernen. Weiterhin werden Sie erste einfache PL/SQL-Prozeduren schreiben sowie Funktionen, die grundlegende PL/SQL-Konstrukte wie Variablen, Schleifen und Cursor verwenden. Dann werden Sie den wichtigen Bereich der Fehlerbehandlung kennen lernen, damit dem Benutzer verständliche Mitteilungen gemacht werden können. Wenn Sie erst in diesem Kapitel mit dem Lesen des Buchs begonnen und noch keine der Übungen aus den vorigen Kapiteln nachgespielt haben, sollten Sie die Beispielta-
2 280 8 Einführung in PL/SQL bellen aus den vorigen Kapiteln erstellen, bevor Sie die Übungen aus diesem Kapitel nachvollziehen können. Dazu dienen die folgenden SQL-Befehle: DROP TABLE plsql101_purchase DROP TABLE plsql101_product DROP TABLE plsql101_person DROP TABLE plsql101_old_item DROP TABLE plsql101_purchase_archive CREATE TABLE plsql101_person ( person_code VARCHAR2(3 PRIMARY KEY, first_name VARCHAR2(15, last_name VARCHAR2(20, hire_date DATE CREATE INDEX plsql101_person_name_index ON plsql101_person(last_name, first_name ALTER TABLE plsql101_person ADD CONSTRAINT plsql101_person_unique UNIQUE ( first_name, last_name, hire_date INSERT INTO plsql101_person VALUES ( CA, Charlotte, Atlas, INSERT INTO plsql101_person VALUES ( GA, Gerhard, Anderson, INSERT INTO plsql101_person VALUES ( BB, Bernd, Barkenhagen, INSERT INTO plsql101_person VALUES ( LB, Lars, Baxter, INSERT INTO plsql101_person VALUES ( LN, Lara, Normann, CREATE TABLE plsql101_product ( product_name VARCHAR2(25 PRIMARY KEY, product_price NUMBER(4,2, quantity_on_hand NUMBER(5,0, last_stock_date DATE ALTER TABLE plsql101_product ADD CONSTRAINT positive_quantity CHECK( quantity_on_hand IS NOT NULL AND
3 8.1 Was ist PL/SQL? 281 quantity_on_hand >= 0 INSERT INTO plsql101_product VALUES ( Small Widget, 99, 1, INSERT INTO plsql101_product VALUES ( Medium Wodget, 75, 1000, INSERT INTO plsql101_product VALUES ( Chrome Phoobar, 50, 100, INSERT INTO plsql101_product VALUES ( Round Chrome Snaphoo, 25, 10000, NULL INSERT INTO plsql101_product VALUES ( Extra Huge Mega Phoobar +,9.95,1234, INSERT INTO plsql101_product VALUES ( Square Zinculator, 45, 1, TO_DATE( 31. Dezember 2002, 23:30, dd. Month YYYY, HH24:MI INSERT INTO plsql101_product VALUES ( Anodized Framifier, 49, 5, NULL INSERT INTO plsql101_product VALUES ( Red Snaphoo, 1.95, 10, INSERT INTO plsql101_product VALUES ( Blue Snaphoo, 1.95, 10, CREATE TABLE plsql101_purchase ( product_name VARCHAR2(25, salesperson VARCHAR2(3, purchase_date DATE, quantity NUMBER(4,2 ALTER TABLE plsql101_purchase ADD PRIMARY KEY (product_name, salesperson, purchase_date ALTER TABLE plsql101_purchase ADD CONSTRAINT reasonable_date CHECK( purchase_date IS NOT NULL AND TO_CHAR(purchase_date, YYYY-MM-DD >=
4 282 8 Einführung in PL/SQL ALTER TABLE plsql101_purchase ADD CONSTRAINT plsql101_purchase_fk_product FOREIGN KEY (product_name REFERENCES plsql101_product ALTER TABLE plsql101_purchase ADD CONSTRAINT plsql101_purchase_fk_person FOREIGN KEY (salesperson REFERENCES plsql101_person CREATE INDEX plsql101_purchase_product ON plsql101_purchase(product_name CREATE INDEX plsql101_purchase_salesperson ON plsql101_purchase(salesperson INSERT INTO plsql101_purchase VALUES ( Small Widget, CA, , 1 INSERT INTO plsql101_purchase VALUES ( Medium Wodget, BB, , 75 INSERT INTO plsql101_purchase VALUES ( Chrome Phoobar, GA, , 2 INSERT INTO plsql101_purchase VALUES ( Small Widget, GA, , 8 INSERT INTO plsql101_purchase VALUES ( Medium Wodget, LB, , 20 INSERT INTO plsql101_purchase VALUES ( Round Chrome Snaphoo, CA, , 5 INSERT INTO plsql101_purchase VALUES ( Small Widget, CA, , 1 UPDATE plsql101_product SET product_price = product_price *.9 WHERE product_name NOT IN ( SELECT DISTINCT product_name FROM plsql101_purchase CREATE TABLE plsql101_old_item ( item_id CHAR(20, item_desc CHAR(25 INSERT INTO plsql101_old_item VALUES ( LA-101, Can, Small INSERT INTO plsql101_old_item VALUES ( LA-102, Can, Large INSERT INTO plsql101_old_item VALUES ( LA-103, Bottle, Small
5 8.1 Was ist PL/SQL? 283 INSERT INTO plsql101_old_item VALUES ( LA-104, Bottle, Large INSERT INTO plsql101_old_item VALUES ( NY-101, Box, Small INSERT INTO plsql101_old_item VALUES ( NY-102, Box, Large INSERT INTO plsql101_old_item VALUES ( NY-103, Shipping Carton, Small INSERT INTO plsql101_old_item VALUES ( NY-104, Shipping Carton, Large CREATE TABLE plsql101_purchase_archive ( product_name VARCHAR2(25, salesperson VARCHAR2(3, purchase_date DATE, quantity NUMBER(4,2 INSERT INTO plsql101_purchase_archive VALUES ( Round Snaphoo, BB, , 10 INSERT INTO plsql101_purchase_archive VALUES ( Large Harflinger, GA, , 50 INSERT INTO plsql101_purchase_archive VALUES ( Medium Wodget, LB, , 20 INSERT INTO plsql101_purchase_archive VALUES ( Small Widget, ZZ, , 80 INSERT INTO plsql101_purchase_archive VALUES ( Chrome Phoobar, CA, , 2 INSERT INTO plsql101_purchase_archive VALUES ( Small Widget, JT, , Beschreibung von PL/SQL PL/SQL bietet Möglichkeiten, die es Ihnen erlauben, Informationen auf komplexe Art und Weise zu verarbeiten. Jede Nacht werden Sie die Zusammenfassung der täglichen Geschäftsvorgänge in eine Übersichtstabelle transferieren wollen PL/SQL-Pakete können Ihnen dabei helfen. Möchten Sie wissen, ob Sie zusätzliche Lieferungen anfordern müssen, um große Bestellungen bedienen zu können PL/SQL bietet Trigger, die Sie benachrichtigen, sobald eine Bestellung eingegeben wird, die bestimmte, vorgegebene Grenzen überschreitet. Sie können gespeicherte PL/SQL-Prozeduren nutzen, um die Leistung Ihrer Mitarbeiter zu berechnen und den Bonus festzulegen. Eine nette kleine PL/SQL-Funktion kann die Steuersätze für einen Angestellten ermitteln. PL/SQL stellt Ihnen alle Datenmanipulationsmöglichkeiten, Cursor-Kontrollen und Transaktionskontrollbefehle von SQL zur Verfügung, wie auch sämtliche SQL-Funktionen und -Operatoren. Damit behalten Sie bei der Manipulation von Daten in Ora-
6 284 8 Einführung in PL/SQL cle die volle Flexibilität und Kontrolle. Außerdem unterstützt PL/SQL alle SQL- Datentypen. Dadurch verringert sich die Notwendigkeit, Daten zu konvertieren, die zwischen Ihrer Applikation und der Datenbank ausgetauscht werden. PL/SQL stellt auch Dynamic SQL zur Verfügung, eine fortgeschrittene Programmiertechnik, mit der Ihre Applikationen flexibler und anpassbarer werden. Ihre Programme können SQL-Befehle zur Datendefinition, Datenkontrolle und Transaktionskontrolle on the fly zur Laufzeit erstellen und ausführen lassen. Bevor wir mehr über einige dieser Fähigkeiten erfahren, werde ich Ihnen erläutern, wie PL/SQL, SQL und SQL*Plus miteinander verbunden sind Who s Who in SQL, PL/SQL und SQL*Plus Stellen Sie sich ein Restaurant vor. Sie gehen hinein und werden (hoffentlich von einem gut ausgebildeten Ober erwartet. Sie schauen sich die Speisekarte an und geben eine Bestellung auf. Der Ober notiert Ihre Bestellung und bringt sie in die Küche. Die Küche ist groß es gibt viele Köche und Hilfsköche. Sie können viele Speisen sehen gekocht, vorgegart und ungekocht die in der Küche abgestellt sind. Es gibt auch Personen mit unterschiedlichen Aufgaben: Sie holen die Vorräte aus dem Lager, bereiten bestimmte Gänge vor (zum Beispiel nur Suppen oder Salate und so weiter. Ihrer Menüfolge entsprechend gibt der Ober die Bestellung an verschiedene Köche weiter. Einfache Gänge werden von nur einem Koch zubereitet, während aufwändigere Menüs die Hilfe eines Assistenten bei der Zubereitung erfordern oder sogar mehrere Köche. Zusätzlich gibt es Standardbestellungen ein Ober teilt einem Koch nur Pizza Hawaii mit während andere Bestellungen individuell zusammengestellt sind und eine genaue Liste der Zutaten erfordern. Nun ändern wir das Szenario ein bisschen. Denken Sie an eine Oracle-Datenbank als Küche des Restaurants, in der SQL*Plus als Ober unsere Bestellungen Skripte, Befehle oder Programme an die Küche oder Datenbank weiterleitet. Innerhalb der Küche gibt es zwei Köche: SQL und PL/SQL. Wie ein Ober weiß SQL*Plus, welche Bestellungen es selbst abwickeln kann und welche es an wen weiterleiten muss. Genau wie ein Ober Ihnen ein Glas Wasser bringen kann, ohne den Chefkoch zu belästigen, kann SQL*Plus die Zeilenlänge auf Ihrem Bildschirm anpassen, ohne auf die Datenbank zugreifen zu müssen. Die Befehle oder Programme, die Sie am SQL*Plus-Prompt eingeben und ausführen, sind so etwas wie Ihre individuell zusammengestellte Pizza. Bei solchen Bestellungen müssen die Köche jedes Mal ein bisschen nachdenken. Wie auch der Koch ein Rezept für eine Käse-Pizza in seinem Gehirn gespeichert hat, können Sie PL/SQL Rezepte für Ihre Lieblingsgerichte speichern lassen. Diese gespeicherten PL/SQL-Elemente werden Trigger, gespeicherte Funktionen und Pakete genannt. Sie werden bald mehr über sie lernen.
7 8.1 Was ist PL/SQL? 285 Wie ich schon weiter oben erwähnte, benötigen einige Bestellungen mehr als einen Koch, um sie zu bearbeiten. Die meisten der interessanteren und nützlicheren Datenbank-Applikationen, die Sie erstellen, werden SQL und PL/SQL zusammen einsetzen, wobei Informationen zwischen beiden Bereichen ausgetauscht werden, um ein Skript oder ein Programm auszuführen. In einem Restaurant wird die Bestellung nach der Zubereitung von einem Ober an Ihren Tisch gebracht. In ähnlicher Weise werden die Ergebnisse von SQL- und PL/SQL-Programmen an SQL*Plus (oder ein eigenes Frontend zurückgeliefert, um sie dem Benutzer anzuzeigen Gespeicherte Prozeduren, Funktionen und Trigger PL/SQL-Prozeduren, Funktionen und Trigger helfen Ihnen dabei, komplexe Geschäftslogiken einfach und in modularer Form (das heißt, Stück für Stück, wobei die einzelnen Stücke von anderen Elementen wiederverwendet werden können zu erstellen. Beim Abspeichern auf dem Oracle-Server bietet das zwei direkte Vorteile: Sie können immer wieder mit vorhersagbaren Ergebnissen genutzt werden und sie lassen sich deutlich schneller ausführen, da Server-Operationen wenig oder gar keinen Netzwerkverkehr erzeugen. Gespeicherte Prozeduren Eine gespeicherte Prozedur ist ein festgelegtes Set von Aktionen, die mit der Programmiersprache PL/SQL geschrieben wurden. Wenn eine Prozedur aufgerufen wird, führt sie die enthaltenen Aktionen aus. Die Prozedur ist in der Datenbank abgespeichert, daher heißt sie gespeicherte Prozedur. Eine gespeicherte Prozedur kann SQL-Befehle ausführen und Daten in Tabellen verändern. Sie kann dazu auch von anderen gespeicherten PL/SQL-Prozeduren, Funktionen oder Triggern aufgerufen werden. Eine gespeicherte Prozedur kann auch direkt vom SQL*Plus-Prompt aus gestartet werden. Wenn Sie die nächsten Seiten lesen, werden Sie lernen, wie jede dieser Methoden zum Aufruf einer gespeicherten Prozedur verwendet wird. Eine Prozedur besteht aus zwei Teilen: der Spezifikation und dem Rumpf. Die Prozedur-Spezifikation enthält den Namen der Prozedur und eine Beschreibung der Einund Ausgabeparameter. Die Ein- und Ausgabeparameter werden formale Parameter oder formale Argumente der Prozedur genannt. Wenn ein Aufruf einer Prozedur Kommandozeilen-Parameter oder andere Eingaben mit einschließt, werden diese Werte konkrete Parameter oder konkrete Argumente genannt. Betrachten wir nun ein paar Beispiele für Prozedur-Spezifikationen. (Denken Sie daran, dass die Spezifikation keinerlei Code enthält sie gibt der Prozedur nur einen Namen und legt die Ein- und Ausgabeparameter fest, die die Prozedur verwenden kann.
8 286 8 Einführung in PL/SQL run_ytd_reports Diese einfache Spezifikation enthält nur den Prozedurnamen. Sie hat keine Parameter. increase_prices (percent_increase NUMBER Ein Wert kann an diese Prozedur weitergegeben werden, wenn sie aufgerufen wird. Innerhalb der Prozedur wird der Wert als PERCENT_INCREASE angesprochen. Beachten Sie, dass der Datentyp festgelegt wurde: NUMBER. increase_salary_find_tax (increase_percent IN NUMBER := 7, sal IN OUT NUMBER, tax OUT NUMBER Hier haben wir eine Prozedur mit drei formalen Parametern. Das Wort IN nach einem Parameternamen zeigt an, dass die Prozedur einen Eingabewert aus den Parametern nutzen kann, wenn sie aufgerufen wird. Das Wort OUT nach einem Parameternamen zeigt an, dass die Prozedur diesen Parameter nutzen kann, um Werte an den Aufrufenden zurückzuliefern. Ein Parameter mit den Schlüsselwörtern IN OUT kann einen Wert in die Prozedur einbringen, aber auch als Rückgabewert dienen. Dem Parameter INCREASE_PERCENT wird in diesem Beispiel ein Standardwert von 7 zugewiesen, indem := 7 nach dem Datentyp angefügt wird. Wenn nun die Prozedur ohne die Angabe einer prozentualen Erhöhung aufgerufen wird, wird sie die Gehälter um sieben Prozent erhöhen und die Steuern basierend auf den neuen Werten berechnen. Hinweis: Datentypen in einer Prozedur können keine Größenangaben enthalten. Sie können zum Beispiel festlegen, dass ein Parameter vom Typ NUMBER ist, aber nicht vom Typ NUMBER(10, 2. Der Prozedurrumpf ist ein Block mit PL/SQL-Code, über den Sie im nächsten Abschnitt dieses Kapitels einiges lernen werden. Gespeicherte Funktionen Eine PL/SQL-Funktion ist einer PL/SQL-Prozedur sehr ähnlich: Sie besitz eine Funktionsspezifikation und einen Funktionsrumpf. Der entscheidende Unterschied zwischen einer Prozedur und einer Funktion ist der, dass eine Funktion dafür gedacht ist, einen Wert zurückzuliefern, der in einem größeren SQL-Befehl genutzt werden kann.
9 8.1 Was ist PL/SQL? 287 Stellen Sie sich zum Beispiel eine Funktion vor, die zum Berechnen der prozentualen Differenz zwischen zwei Zahlen gedacht ist. Ohne den Code, der die Berechnung durchführt, würde die Spezifikation so aussehen: calc_percent(value_1 NUMBER, value_2 NUMBER return NUMBER Diese Funktion akzeptiert zwei Zahlen als Eingabewerte, auf die intern mit VALUE_1 und VALUE_2 verwiesen wird. Nachdem der Rumpf der Funktion geschrieben wurde, können Sie sie in einem SQL-Befehl wie folgt verwenden: INSERT INTO employee VALUES (3000, CALC_PERCENT(300, 3000 Trigger Ein Trigger ist eine PL/SQL-Prozedur, die automatisch ausgeführt wird, sobald ein bestimmtes, vom Trigger definiertes Ereignis das auslösende Ereignis eintritt. Sie können Trigger schreiben, die ausgelöst werden, sobald ein INSERT-, UPDATE- oder DELETE-Befehl auf eine Tabelle ausgeführt wird wenn DDL-Befehle genutzt werden wenn sich ein Benutzer an- oder abmeldet, oder wenn die Datenbank startet, einen Fehler meldet oder herunterfährt. Trigger unterscheiden sich von PL/SQL-Prozeduren in drei Punkten: Sie können einen Trigger nicht aus Ihrem Code aufrufen. Trigger werden von Oracle automatisch als Reaktion auf ein vorgegebenes Ereignis aufgerufen. Trigger enthalten keine Parameterliste. Die Spezifikation eines Triggers enthält andere Informationen als die für eine Prozedur. Sie werden mehr über Trigger und ihre Verwendung im nächsten Kapitel lernen Gespeicherte Prozeduren und SQL-Skripte Während SQL-Skripte auf der Festplatte Ihres Rechners gespeichert sind, werden gespeicherte Prozeduren innerhalb Ihrer Oracle-Datenbank abgelegt. Ein SQL-Skript enthält eine Reihe von SQL-Befehlen, die nacheinander ausgeführt werden, wenn Sie das Skript aufrufen. Eine gespeicherte Prozedur dagegen kann Befehle zur Ablaufkontrolle enthalten, die es ihr ermöglichen, einen bestimmten Teil des Codes immer wieder abzuarbeiten, zu einem anderen Code-Abschnitt zu verzweigen, wenn bestimmte Situationen auftreten, und auf Fehler in der von Ihnen vorgegebenen Art und Weise zu reagieren.
10 288 8 Einführung in PL/SQL 8.2 Struktur eines PL/SQL-Blocks In diesem Abschnitt werden Sie einen einfachen PL/SQL-Block kennen lernen. Alles, was in PL/SQL läuft, besteht aus Blöcken. Nachdem Sie sich mit dem PL/SQL-Block vertraut gemacht haben, werden Sie im nächsten Abschnitt Beispiele für komplette Prozeduren, Funktionen und Trigger gezeigt bekommen. Ein PL/SQL-Block besteht aus vier Abschnitten: dem Kopf, einem optionalen Deklarationsabschnitt, dem Ausführungsabschnitt und einem optionalen Ausnahmeabschnitt. Ein anonymer Block ist ein PL/SQL-Block ohne Kopf oder Namensabschnitt, daher auch der Begriff anonymer Block. Anonyme Blöcke können unter SQL*Plus ausgeführt werden und in PL/SQL-Funktionen, Prozeduren und Triggern Verwendung finden. Denken Sie daran, dass PL/SQL-Prozeduren, Funktionen und Trigger selbst alle aus PL/SQL-Blöcken bestehen. Das bedeutet, dass Sie einen PL/SQL-Block innerhalb eines anderen PL/SQL-Blocks haben können. Sie werden mehr darüber weiter unten in diesem Abschnitt lernen. Vielleicht ist der beste Weg, einen PL/SQL-Block zu verstehen, ein Beispiel auszuführen. Geben Sie zunächst den folgenden Befehl ein, damit Informationen von Programmen in SQL*Plus ausgegeben werden. set serveroutput on Nun geben Sie den folgenden Code ein, um einen anonymen Block zu erstellen. Vergleichen Sie Ihre Ergebnisse mit Abbildung 8-1. DECLARE num_a NUMBER := 6 num_b NUMBER BEGIN num_b := 0 num_a := num_a / num_b num_b := 7 dbms_output.put_line( Wert von num_b num_b EXCEPTION WHEN ZERO_DIVIDE THEN dbms_output.put_line( Versuch, durch Null zu teilen dbms_output.put_line( Wert von num_a num_a dbms_output.put_line( Wert von num_b num_b END /
11 8.2 Struktur eines PL/SQL-Blocks 289 Abbildung 8-1: Beispiel für einen anonymen PL/SQL-Block Kopf Der Kopf eines Blocks sieht abhängig davon, wozu er gehört, unterschiedlich aus. Erinnern Sie sich daran, dass Prozeduren, Funktionen, Trigger und anonyme Blöcke aus PL/SQL-Blöcken bestehen. Tatsächlich hat jeder von ihnen einen PL/SQL-Block, der den Rumpf darstellt. Dieser Rumpf-Block kann nun wiederum mehrere PL/SQL-Blöcke enthalten. Der Kopf dieses obersten Blocks einer Funktion, Prozedur oder eines Triggers ist die Spezifikation für diese Funktion, Prozedur oder diesen Trigger. Bei anonymen Blöcken enthält der Kopf nur das Schlüsselwort DECLARE. Bezeichnete Blöcke enthalten im Kopf den Namen, der durch << und >> umschlossen wird, gefolgt vom Schlüsselwort DECLARE, wie im Folgenden gezeigt: <<just_a_label>> DECLARE Blockbezeichner erhöhen die Lesbarkeit des Codes. In einer Prozedur, die verschachtelte Blöcke verwendet (Blöcke innerhalb anderer Blöcke können Sie sich auf ein Element in einem bestimmten Block beziehen, indem Sie vor den Namen des Elements den Namen des Blocks setzen (zum Beispiel block_label.item_label.
12 290 8 Einführung in PL/SQL Deklarationsabschnitt Der Deklarationsabschnitt ist optional. Wenn er genutzt wird, beginnt er direkt nach dem Kopf und endet mit dem Schlüsselwort BEGIN. Der Deklarationsabschnitt enthält die Deklarationen für PL/SQL-Variablen, Konstanten, Cursor, Exceptions, Funktionen und Prozeduren, die von den Ausführungs- und Ausnahmeabschnitten verwendet werden. Alle Deklarationen von Variablen und Konstanten müssen angegeben werden, bevor die erste Funktions- oder Prozedurdeklaration aufgeführt ist. Sie werden mehr über PL/SQL-Variablen und Konstanten im folgenden Abschnitt lernen. Eine Deklaration teilt PL/SQL mit, dass es eine Variable, Konstante, Funktion, Prozedur oder einen Cursor so erstellen soll, wie es in der Deklaration festgelegt wurde. Der Deklarationsabschnitt im Beispiel von Abbildung 8-1 auf Seite 289 fordert PL/SQL dazu auf, zwei Variablen vom Typ NUMBER anzulegen, die die Namen Num_a und Num_b erhalten sollen. Er weist der Variablen Num_a zudem noch den Standardwert 6 zu. Wenn ein PL/SQL-Block abgearbeitet wurde, hören alle Deklarationen aus dessen Deklarationsabschnitt auf zu existieren. Elemente aus dem Deklarationsabschnitt eines Blocks können nur innerhalb des gleichen Blocks verwendet werden. Daher gibt es nach dem Durchlauf des Beispiel-Blocks in SQL*Plus auch keinerlei Möglichkeit mehr, Num_a an eine andere PL/SQL-Prozedur weiterzugeben. Num_a und Num_b verschwinden direkt nach der Beendigung des Blocks aus dem Blickfeld. Wenn Sie allerdings eine PL/SQL-Funktion oder -Prozedur innerhalb des Ausführungs- oder Ausnahmeabschnitts des Blocks aufrufen, können Sie ihnen Num_a oder Num_b als konkrete Parameter mitgeben. Langer Rede kurzer Sinn: Alles, was im Deklarationsabschnitt angelegt wird, ist das Privateigentum des Blocks es kann nur durch ihn genutzt werden und ist auch nur für ihn sichtbar. Alles aus dem Deklarationsabschnitt des Blocks existiert nur solange wie der Block selbst. Technisch gesprochen: Num_a und Num_b besitzen den Geltungsbereich des Blocks, in dem sie deklariert wurden. Der Geltungsbereich des Blocks beginnt mit dem Anfang des Deklarationsabschnitts und endet mit dem Ende seines Ausnahmeabschnitts Ausführungsabschnitt Der Ausführungsabschnitt beginnt mit dem Schlüsselwort BEGIN und endet auf zwei verschiedene Arten. Wenn es einen Ausnahmeabschnitt gibt, endet der Ausführungsabschnitt mit dem Schlüsselwort EXCEPTION. Wenn es keinen Ausnahmeabschnitt gibt, endet er mit dem Schlüsselwort END, optional gefolgt vom Namen der Funktion oder Prozedur, und einem Semikolon. Der Ausführungsabschnitt enthält einen oder mehrere PL/SQL-Befehle, die ausgeführt werden, wenn der Block abläuft. Die Struktur des Ausführungsabschnitts sieht wie folgt aus:
13 8.2 Struktur eines PL/SQL-Blocks 291 BEGIN einer oder mehrere PL/SQL-Befehle [Ausnahmeabschnitt] END [Name der Funktion oder Prozedur] Der Ausführungsabschnitt des Beispielblocks enthält drei PL/SQL-Zuweisungsbefehle. Der Zuweisungsbefehl ist der am häufigsten verwendete Befehl im PL/SQL-Code. Der erste Befehl weist Num_b den Wert 0 zu. Der Doppelpunkt, gefolgt von einem Gleichheitszeichen, ist der Zuweisungsoperator. Er teilt PL/SQL mit, alles rechts von ihm zu berechnen und das Ergebnis dem zuzuweisen, was sich links von ihm befindet. Der zweite Befehl weist Num_a den Wert von Num_a geteilt durch Num_b zu. Beachten Sie, dass sich nach erfolgreicher Ausführung dieses Befehls der Wert von Num_a geändert hat. Der dritte Befehl weist Num_b den Wert 7 zu Ausnahmeabschnitt Es ist möglich, dass während der Ausführung von PL/SQL-Anweisungen im Ausführungsabschnitt ein Fehler auftaucht, der es unmöglich macht, mit der Ausführung fortzufahren. Diese Fehlerbedingungen werden Exceptions (oder Ausnahmen genannt. Der Benutzer der Prozedur sollte über das Auftreten und den Grund einer Exception informiert werden. Vielleicht wollen Sie dem Benutzer eine sinnvolle Fehlermeldung präsentieren, oder korrigierend eingreifen und versuchen, die Prozedur an der entsprechenden Stelle fortzuführen. Eventuell möchten Sie ja auch alle Änderungen an der Datenbank bis zum Auftreten des Fehlers rückgängig machen. Für all diese Situationen stellt PL/SQL die Exception-Behandlung zur Verfügung. Exceptions sind für gut geschriebene Applikationen so wichtig, dass ich am Ende des Kapitels einen speziellen Abschnitt über sie angefügt habe, in dem Sie mehr darüber erfahren können. Als Einführung sei hier die Struktur des Ausnahmeabschnitts aufgeführt: EXCEPTION WHEN exception_name THEN Aktionen, die beim Auftreten dieser Exception ausgeführt werden sollen WHEN exception_name THEN Aktionen, die beim Auftreten dieser Exception ausgeführt werden sollen
14 292 8 Einführung in PL/SQL Der Ausnahmeabschnitt beginnt mit dem Schlüsselwort EXCEPTION und endet am Ende des Blocks. Für jede Exception gibt es eine Anweisung WHEN exception_name, die angibt, was getan werden soll, wenn diese Exception auftritt. Unser Beispiel enthält drei lustig aussehende Zeilen, die dafür sorgen, dass auf Ihrem SQL*Plus-Bildschirm Text ausgegeben wird. Zum Verständnis ihrer Arbeitsweise sind allerdings weitere Informationen notwendig, die in Kapitel 9 gegeben werden. Das Paket DBMS_OUTPUT und die Prozedur PUT_LINE sind Teil der Oracle-Datenbank zusammen sorgen sie dafür, dass auf Ihrem SQL*Plus-Bildschirm Zeile für Zeile Text ausgegeben wird. Alle Befehle zwischen der Anweisung, die den Fehler auslöste, und dem Ende des Abschnitts werden ignoriert. Daher wird im Beispielblock die Zuweisung des Werts 7 an die Variable Num_b nicht durchgeführt. Sie können dies kontrollieren, indem Sie sich den Wert von Num_b anschauen, der vom Beispielcode ausgegeben wird. Wenn eine Exception durch eine Anweisung im Ausnahmeabschnitt behandelt wird, bezeichnen wir diese Aktion als Exception-Behandlung. Das Erkennen eines aufgetretenen Fehlers, das Zuordnen der passendsten Exception und das Ausführen entsprechender Schritte, um PL/SQL darüber zu informieren, welcher Teil des Ausnahmeabschnitts verwendet werden soll, bezeichnet man als das Auslösen einer Exception (raising an exception. Im Beispielcode wird die Exception von PL/SQL selbst ausgelöst, da es einen Versuch feststellt, durch Null zu teilen. PL/SQL hat einen vorgegebenen Namen für diese Exception ZERO_DIVIDE. Häufig muss der Fehler aber von Ihrem eigenen Code entdeckt werden, da PL/SQL dies nicht erkennt. 8.3 Eine einfache PL/SQL-Prozedur erstellen Wir haben nun alle Zutaten, um zu versuchen, eine komplette PL/SQL-Prozedur zu schreiben. Sie kennen PL/SQL-Blöcke und haben gelernt, wie die Spezifikation einer Prozedur aussehen muss. Geben Sie einmal den folgenden Code ein. CREATE PROCEDURE my_first_proc IS greetings VARCHAR2(20 BEGIN greetings := Hallo Welt dbms_output.put_line(greetings END my_first_proc / Die Syntax für das Erstellen einer gespeicherten Prozedur lautet: CREATE PROCEDURE procedure_specification IS procedure_body In unserem Beispiel besteht die Spezifikation der Prozedur nur aus dem Namen, und der Rumpf aus allem bis zum letzten Semikolon. Für Funktionen nutzen Sie statt des Schlüsselworts PROCEDURE das Wort FUNCTION.
15 8.3 Eine einfache PL/SQL-Prozedur erstellen 293 CREATE FUNCTION function_specification IS function_body Der Schrägstrich (/ teilt SQL*Plus mit, dass die Befehle nun abgearbeitet werden sollen. Sie können die gleiche Prozedur oder Funktion erneut erstellen, indem Sie den Befehl CREATE in CREATE OR REPLACE abwandeln. Damit wird die alte Definition zerstört und duch die neue ersetzt. Wenn keine alte Definition vorhanden ist, wird einfach eine neue angelegt. CREATE OR REPLACE PROCEDURE procedure_specification IS procedure_body Betrachten wir nun, wie diese Prozedur aus SQL*Plus heraus aufgerufen werden kann: set serveroutput on EXECUTE my_first_proc SERVEROUTPUT ON ermöglicht Ihnen, die ausgegebenen Zeilen zu betrachten. Der Befehl EXECUTE führt dann die Prozedur aus. Sie können die Prozedur auch aus einem anonymen Block aufrufen, wie im Folgenden gezeigt wird. Vergleichen Sie Ihre Ergebnisse mit denen in Abbildung 8-2. BEGIN my_first_proc END / Abbildung 8-2: Eine einfache Hallo Welt -PL/SQL-Prozedur
16 294 8 Einführung in PL/SQL Prozeduren und Funktionen aufrufen Eine Prozedur oder Funktion kann formale Parameter mit Standardwerten enthalten oder auch nicht. Tatsächlich muss sie gar keine formalen Parameter enthalten. Dem jeweiligen Fall entsprechend ist die Aufrufkonvention unterschiedlich. Die folgenden Punkte sind aber unabhängig von den Parametern gültig. Die Datentypen der konkreten Parameter müssen passen oder sollten wenigstens von PL/SQL in die entsprechenden formalen Parameter konvertierbar sein. Konkrete Parameter müssen für alle formalen Parameter angegeben werden, die keine Standardwerte haben. Wenn Sie eine Funktion ohne Parameter aufrufen, können Sie den Namen der Funktion mit oder ohne Klammern angeben: procedure_name( oder procedure_name Die gleiche Syntax wird beim Verwenden von Funktionen genutzt, nur dass innerhalb eines Ausdrucks kein Semikolon angegeben werden darf. Wenn eine Prozedur formale Parameter mit Standardwerten besitzt und diese sich alle am Ende der Liste mit den formalen Parametern in der Prozedurspezifikation befinden, kann die Prozedur einfach ohne die Angabe der Werte für die letzten formalen Parameter aufgerufen werden, für die Standardwerte existieren. Dies geht aber nur dann, wenn für alle vorigen Parameter auch konkrete Werte mitgeliefert werden. Der Aufruf sieht dann so aus: procedure_name(actual_param1, actual_param2,... actual_paramn N kann kleiner oder gleich der Anzahl der formalen Parameter dieser Prozedur sein, muss aber größer oder gleich der Anzahl der formalen Parameter ohne Standardwerte sein. Wenn die formalen Parameter mit gegebenen Standardwerten nicht die letzten Parameter in der Spezifikation sind, oder wenn Sie vermeiden wollen, dass PL/SQL selbst anhand der Reihenfolge herausfinden muss, welcher konkrete Wert welchem formalen Parameter zugeordnet werden soll, können Sie mit der folgenden Syntax PL/SQL exakt mitteilen, welcher konkrete Parameter für welchen formalen Parameter genutzt werden soll:
17 8.4 PL/SQL-Variablen und Konstanten 295 procedure_name(formal_param1 => actual_param1, formal_param2 => actual_param2,... Dies wird als benannte Notation beim Aufruf von Funktionen und Prozeduren bezeichnet. Die vorige Notation dagegen heißt positionsabhängige Notation, da die Parameter über ihre Position in der Liste zugeordnet werden. Die gleiche Art des Aufrufs ist auch für Funktionen gültig. Sie können aber in anderen Ausdrücken auftauchen und haben dann kein Semikolon am Ende. Sie werden Beispiele für die benannte Notation im nächsten Abschnitt sehen. Es ist möglich, die beiden Notationen zu kombinieren, dann muss aber die positionsabhängige Liste im Aufruf vor der benannten Liste angegeben werden. 8.4 PL/SQL-Variablen und Konstanten Sie haben einige Beispiel für PL/SQL-Variablen im vorigen Abschnitt kennen gelernt. Nun wollen wir sie uns genauer anschauen. Variablen sind prinzipiell Schachteln mit Namensschildchen. Sie können Informationen oder Daten verschiedenen Typs enthalten. Abhängig von der Art der Daten, die sie aufbewahren können, haben sie unterschiedliche Datentypen, und um sie auseinanderhalten zu können, haben sie Namen. Genauso, wie Öl in Flaschen und Mehl in Papiertüten aufbewahrt wird, speichert PL/SQL Zahlen in Variablen des Datentyps NUMBER und Text in Variablen der Datentypen CHAR oder VARCHAR2. Gehen wir noch einen Schritt weiter: Stellen Sie sich einen Kühlschrank in der Kantine Ihrer Firma vor. Er ist voller brauner Papiertüten mit Ihrem Lunch und dem Ihrer Kollegen. Wie finden Sie nun heraus, welches Ihrer ist? Genau! Ihr Lunchpaket ist beschriftet mit Ihrem Namen. Variablen haben auch Namen, um Verwechslungen zu vermeiden. Wenn Ihr Lunch nur aus Bananen bestand, geben Sie nach ihrem Verzehr vielleicht die Schalen wieder in die braune Tüte. Der Inhalt der Tüte hat sich also geändert. Genauso kann sich der Inhalt von Variablen während der Ausführung von PL/SQL-Anweisungen ändern.
18 296 8 Einführung in PL/SQL PL/SQL-Variablen deklarieren Die Syntax für das Deklarieren einer Variable in PL/SQL lautet wie eine der beiden folgenden Zeilen: variable_name data_type [ [NOT NULL] := default_value_expression] variable_name data_type [ [NOT NULL] DEFAULT default_value_expression] variable_name ist jeder gültige PL/SQL-Bezeichner. Ein gültiger PL/SQL-Bezeichner muss folgende Bedingungen erfüllen: Er kann bis zu 30 Zeichen lang sein und darf keinerlei Leerzeichen oder Tabulatoren beinhalten. Er besteht aus Buchstaben, den Ziffern 0 bis 9, dem Unterstrich (_, Dollar ($ oder dem Nummernzeichen (#. Er beginnt mit einem Buchstaben. Er darf kein reserviertes Wort in PL/SQL oder SQL sein, das eine spezielle Bedeutung für PL/SQL oder SQL hat. Ein Variablenname kann zum Beispiel nicht BE- GIN heißen. BEGIN teilt nämlich PL/SQL mit, dass hier der Anfang eines PL/SQL-Blocks ist. data_type ist jeder gültige SQL- oder PL/SQL-Datentyp. Im nächsten Abschnitt erhalten Sie weitere Informationen über Datentypen. Die Verwendung von NOT NULL erfordert, dass die Variable immer einen Wert hat. Wenn dies angegeben wurde, muss auch zwingend ein Standardwert mit angegeben werden. Wenn eine Variable angelegt wird, kann sie gleich mit einem Standardwert ausgestattet werden. Dies ist eine einfache Möglichkeit, Variablen Werte zuzuweisen. Sie kennen bereits SQL-Datentypen NUMBER, VARCHAR2 und DATE. PL/SQL verfügt wie SQL über diese Datentypen, hat darüber hinaus aber noch weitere Datentypen, die SQL nicht bietet. Eine komplette Liste finden Sie in den PL/SQL-Referenzen von Oracle PL/SQL-Konstanten deklarieren Die Syntax für das Deklarieren einer Konstante lautet: variable_name data_type CONSTANT := constant_value_expression Anders als Variablen muss Konstanten ein Wert mitgegeben werden, der während der Lebenszeit der Konstanten auch nicht geändert werden kann. Konstanten sind sehr nützlich, wenn Sie die Entwicklung großer und komplexer Applikationen sicherer und
19 8.4 PL/SQL-Variablen und Konstanten 297 disziplinierter machen wollen. Wenn Sie zum Beispiel sicherstellen wollen, dass die Daten, die einer PL/SQL-Prozedur mitgeteilt werden, sich von der Prozedur nicht ändern lassen, können Sie diese Daten zu Konstanten machen. Wenn die Prozedur dann versucht, sie zu ändern, löst PL/SQL eine Exception aus Variablen Werte zuweisen Es gibt drei verschiedene Wege, den Wert einer Variable zu ändern. Das Zuweisen eines gültigen Ausdrucks mit dem Zuweisungsoperator von PL/SQL ist der erste Weg. Sie haben schon einige Beispiele dafür gesehen. Die Syntax lautet: variable_name := expression Als zweite Möglichkeit kann eine Variable als konkreter Parameter für formale IN OUT- oder OUT-Parameter an eine PL/SQL-Prozedur übergeben werden. Nachdem die Prozedur abgearbeitet wurde, kann sich der Wert der Variablen geändert haben. Das folgende Beispiel zeigt die benannte Notation beim Aufruf einer Prozedur. Schauen Sie sich für die Ausgabe Abbildung 8-3 auf Seite 298 an. CREATE PROCEDURE hike_prices (old_price NUMBER, percent_hike NUMBER := 5, new_price OUT NUMBER IS BEGIN new_price := old_price + old_price * percent_hike / 100 END hike_prices / Die folgende Prozedur zeigt, wie die Variablen ihren Wert ändern: DECLARE price_to_hike NUMBER(6,2 := 20 hiked_price NUMBER(6,2 := 0 BEGIN dbms_output.put_line( Preis vor hike_prices price_to_hike dbms_output.put_line( hiked_price vor hike_prices hiked_price hike_prices (old_price => price_to_hike, new_price => hiked_price dbms_output.put_line( Preis nach hike_prices price_to_hike dbms_output.put_line( hiked_price nach hike_prices hiked_price END /
20 298 8 Einführung in PL/SQL Abbildung 8-3: PL/SQL-Variablen Werte zuweisen, indem sie als konkrete Parameter genutzt werden Der dritte Weg, um Variablen Werte zuzuweisen oder sie zu ändern, wird detaillierter im nächsten Kapitel besprochen. Hier nur ein kleines Beispiel, zu dem Abbildung 8-4 auf Seite 299 das Ergebnis zeigt. DECLARE product_quant NUMBER BEGIN SELECT quantity_on_hand INTO product_quant FROM plsql101_product WHERE product_name = Small Widget dbms_output.put_line ( Small Widget product_quant END / product_quant wird der Wert zugewiesen, der der Anzahl der Small Widgets entspricht.
21 8.5 Kontrollstrukturen in PL/SQL 299 Abbildung 8-4: Einer PL/SQL-Variablen einen Wert durch SQL zuweisen Variablen verwenden Variablen sind die grundlegenden Elemente von PL/SQL-Programmen. Sie werden verwendet, um die Ergebnisse von Berechnungen zu speichern, um Werte aus Funktionsaufrufen zurückzuliefern, und als konkrete Parameter für Funktionen und Prozeduren und so weiter. Variablen sollen Ihre Applikation ordentlicher und lesbarer machen, damit den Wartungsaufwand reduzieren und ein effizienteres Programm schaffen. Angenommen, Sie wollen einige Berechnungen mit der aktuellen Anzahl der Small Widgets durchführen sie mit der Anzahl von vor drei Monaten oder der Anzahl der Medium Widgets vergleichen. Wenn Sie eine Variable zum Speichern des Werts nutzen, vermeiden Sie die Verzögerungen, die entstehen, wenn Sie den Wert wieder und wieder aus der Tabelle auslesen. Wenn Sie Variablen sinnvoll benennen, wird Ihr Code leichter lesbar und verständlicher. Dieselben Prinzipien gelten auch, wenn Sie Variablen zum Speichern von Ergebnissen aus komplexen Berechnungen verwenden, anstatt die Berechnung im Code an mehreren Stellen direkt auszuführen. 8.5 Kontrollstrukturen in PL/SQL Häufig wollen Sie etwas tun, wenn eine Bedingung wahr ist, und etwas anderes, wenn sie falsch ist. Wenn zum Beispiel eine Bestellung über einem gewissen Betrag liegt, sollen vielleicht fünf Prozent abgezogen werden, und sogar zehn Prozent, wenn sie über einem anderen Betrag liegt. Diese Art von Logik mag innerhalb Ihrer Applikation erforderlich sein, wenn die abschließende Rechnung für Ihre Kunden ausgedruckt wird.
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
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.
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
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
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
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
Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten
Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten 2008 netcadservice GmbH netcadservice GmbH Augustinerstraße 3 D-83395 Freilassing Dieses Programm ist urheberrechtlich geschützt. Eine Weitergabe
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,
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
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
Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster
Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.
Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)
Seite 1/7 Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.) Hier sehen Sie eine Anleitung wie man einen Serienbrief erstellt. Die Anleitung
M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung
M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales
Zwischenablage (Bilder, Texte,...)
Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen
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
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
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
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
Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)
Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...
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
Die besten Excel-Tastenkombinationen im Überblick
Die besten Excel-Tastenkombinationen im Überblick Erfahrungsgemäß sind es nicht unbedingt die umfangreichen Tipps, die den Nutzen haben. So kann dir häufig schon eine kleine Hilfe bei der täglichen Arbeit
Kapitel 4 Die Datenbank Kuchenbestellung Seite 1
Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 4 Die Datenbank Kuchenbestellung In diesem Kapitel werde ich die Theorie aus Kapitel 2 Die Datenbank Buchausleihe an Hand einer weiteren Datenbank Kuchenbestellung
MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH
MORE Profile Pass- und Lizenzverwaltungssystem erstellt von: Thorsten Schumann erreichbar unter: [email protected] Stand: MORE Projects GmbH Einführung Die in More Profile integrierte
1. Einführung. 2. Alternativen zu eigenen Auswertungen. 3. Erstellen eigener Tabellen-Auswertungen
1. Einführung Über die Tabellen-Auswertungen können Sie eigene Auswertungen nach Ihren Wünschen erstellen. Diese Auswertungen werden immer anhand der aktuellen Daten aus orgamax ermittelt, Sie können also
Anleitung über den Umgang mit Schildern
Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder
Inhalt. Allgemeine Einführung. Argumentationsvermögen. Räumliches Vorstellungsvermögen. Begabungen und Fähigkeiten messen
Beispielheft Inhalt Allgemeine Einführung Test Eins: Test Zwei: Test Drei: Test Vier: Test Fünf: Argumentationsvermögen Auffassungsvermögen Zahlenvermögen Sprachverständnis Räumliches Vorstellungsvermögen
CMS.R. Bedienungsanleitung. Modul Cron. Copyright 10.09.2009. www.sruttloff.de CMS.R. - 1 - Revision 1
CMS.R. Bedienungsanleitung Modul Cron Revision 1 Copyright 10.09.2009 www.sruttloff.de CMS.R. - 1 - WOZU CRON...3 VERWENDUNG...3 EINSTELLUNGEN...5 TASK ERSTELLEN / BEARBEITEN...6 RECHTE...7 EREIGNISSE...7
4. BEZIEHUNGEN ZWISCHEN TABELLEN
4. BEZIEHUNGEN ZWISCHEN TABELLEN Zwischen Tabellen können in MS Access Beziehungen bestehen. Durch das Verwenden von Tabellen, die zueinander in Beziehung stehen, können Sie Folgendes erreichen: Die Größe
1 BEDIENUNGSANLEITUNG
1 BEDIENUNGSANLEITUNG 1.1 Kunde In diesem Fenster können die Stammdaten des Kunden eingetragen werden oder es kann eine Änderung der Stammdaten durchgeführt werden. Zusätzlich kann man auch Kunden nach
Fallbeispiel: Eintragen einer Behandlung
Fallbeispiel: Eintragen einer Behandlung Im ersten Beispiel gelernt, wie man einen Patienten aus der Datenbank aussucht oder falls er noch nicht in der Datenbank ist neu anlegt. Im dritten Beispiel haben
Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich
Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich Mitgliederbereich (Version 1.0) Bitte loggen Sie sich in den Mitgliederbereich mit den Ihnen bekannten Zugangsdaten
1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.
Der Serienversand Was kann man mit der Maske Serienversand machen? 1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden. 2. Adressen auswählen,
Bereich METIS (Texte im Internet) Zählmarkenrecherche
Bereich METIS (Texte im Internet) Zählmarkenrecherche Über die Zählmarkenrecherche kann man nach der Eingabe des Privaten Identifikationscodes einer bestimmten Zählmarke, 1. Informationen zu dieser Zählmarke
4.1 Wie bediene ich das Webportal?
4.1 Wie bediene ich das Webportal? Die Bedienung ist durch ein Redaktionssystem sehr einfach möglich. Das Tutorial zeigt Ihnen wie Sie SMS-News und Top-News erstellen und veröffentlichen können. Schritt
Präventionsforum+ Erfahrungsaustausch. HANDOUT GRUPPEN-ADMINISTRATOREN Anlage zum Endnutzer-Handbuch. Stand: 11.09.2014 Änderungen vorbehalten
Präventionsforum+ Erfahrungsaustausch HANDOUT GRUPPEN-ADMINISTRATOREN Anlage zum Endnutzer-Handbuch Stand: 11.09.2014 Änderungen vorbehalten Anlage zum Endnutzer-Handbuch Handout Gruppen-Administratoren
Erstellen von x-y-diagrammen in OpenOffice.calc
Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei
Access 2000 und MS SQL Server im Teamwork
Access 2000 und MS SQL Server im Teamwork von Irene Bauder, Jürgen Bär 1. Auflage Hanser München 2000 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 21473 6 Zu Inhaltsverzeichnis schnell und
Lieferschein Dorfstrasse 143 CH - 8802 Kilchberg Telefon 01 / 716 10 00 Telefax 01 / 716 10 05 [email protected] www.hp-engineering.
Lieferschein Lieferscheine Seite 1 Lieferscheine Seite 2 Inhaltsverzeichnis 1. STARTEN DER LIEFERSCHEINE 4 2. ARBEITEN MIT DEN LIEFERSCHEINEN 4 2.1 ERFASSEN EINES NEUEN LIEFERSCHEINS 5 2.1.1 TEXTFELD FÜR
Dokumentation IBIS Monitor
Dokumentation IBIS Monitor Seite 1 von 16 11.01.06 Inhaltsverzeichnis 1. Allgemein 2. Installation und Programm starten 3. Programmkonfiguration 4. Aufzeichnung 4.1 Aufzeichnung mitschneiden 4.1.1 Inhalt
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
Aufklappelemente anlegen
Aufklappelemente anlegen Dieses Dokument beschreibt die grundsätzliche Erstellung der Aufklappelemente in der mittleren und rechten Spalte. Login Melden Sie sich an der jeweiligen Website an, in dem Sie
Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl
Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut Von Susanne Göbel und Josef Ströbl Die Ideen der Persönlichen Zukunftsplanung stammen aus Nordamerika. Dort werden Zukunftsplanungen schon
affilinet_ Flash-Spezifikationen
affilinet_ Flash-Spezifikationen Inhaltsverzeichnis Allgemeines...2 Klickzählung...2 Lead/Sale Programme... 2 PPC und Kombi Programme...3 Übergabe von Formulardaten...4 clicktag Variante Sale/Lead Programm...4
So gehts Schritt-für-Schritt-Anleitung
So gehts Schritt-für-Schritt-Anleitung Software WISO Mein Büro Thema Eigene Auswertungen, Tabellenauswertungen Version/Datum V 13.00.05.101 Über die Tabellen-Auswertungen ist es möglich eigene Auswertungen
CARL HANSER VERLAG. Christopher Allen. Oracle PL/SQL für Einsteiger Der Einsatz von SQL und PL/SQL in der Oracle-Datenbank 3-446-21801-7
CARL HANSER VERLAG Christopher Allen Oracle PL/SQL für Einsteiger Der Einsatz von SQL und PL/SQL in der Oracle-Datenbank 3-446-21801-7 www.hanser.de Inhaltsverzeichnis Danksagung...XI Einleitung...XIII
Dokumentenverwaltung im Internet
Dokumentenverwaltung im Internet WS 09/10 mit: Thema: Workflow und Rollenverteilung im Backend Gruppe: DVI 10 Patrick Plaum und Kay Hofmann Inhalt 1. Benutzer und Benutzergruppen erstellen...2 1.1. Benutzergruppen...2
Kurzanleitung der Gevopa Plattform
Kurzanleitung der Gevopa Plattform Das Hauptmenü Der Weg zu Ihrem Geld Informationen Hier werden die neuesten 5 Kreditprojekte angezeigt, sobald Sie Ihre Profildaten angegeben haben. Der Startbildschirm
teamsync Kurzanleitung
1 teamsync Kurzanleitung Version 4.0-19. November 2012 2 1 Einleitung Mit teamsync können Sie die Produkte teamspace und projectfacts mit Microsoft Outlook synchronisieren.laden Sie sich teamsync hier
PowerPoint: Text. Text
PowerPoint: Anders als in einem verarbeitungsprogramm steht in PowerPoint der Cursor nicht automatisch links oben auf einem Blatt in der ersten Zeile und wartet auf eingabe. kann hier vielmehr frei über
Repetitionsaufgaben Wurzelgleichungen
Repetitionsaufgaben Wurzelgleichungen Inhaltsverzeichnis A) Vorbemerkungen B) Lernziele C) Theorie mit Aufgaben D) Aufgaben mit Musterlösungen 4 A) Vorbemerkungen Bitte beachten Sie: Bei Wurzelgleichungen
Zahlen auf einen Blick
Zahlen auf einen Blick Nicht ohne Grund heißt es: Ein Bild sagt mehr als 1000 Worte. Die meisten Menschen nehmen Informationen schneller auf und behalten diese eher, wenn sie als Schaubild dargeboten werden.
OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland
OECD Programme for International Student Assessment Deutschland PISA 2000 Lösungen der Beispielaufgaben aus dem Mathematiktest Beispielaufgaben PISA-Hauptstudie 2000 Seite 3 UNIT ÄPFEL Beispielaufgaben
104 WebUntis -Dokumentation
104 WebUntis -Dokumentation 4.1.9.2 Das elektronische Klassenbuch im Betrieb Lehrer Aufruf Melden Sie sich mit Ihrem Benutzernamen und Ihrem Passwort am System an. Unter den aktuellen Tagesmeldungen erscheint
Jederzeit Ordnung halten
Kapitel Jederzeit Ordnung halten 6 auf Ihrem Mac In diesem Buch war bereits einige Male vom Finder die Rede. Dieses Kapitel wird sich nun ausführlich diesem so wichtigen Programm widmen. Sie werden das
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
Das Modul ARTIKEL-BARCODE ermöglicht den Druck von Barcode-Etiketten der EAN-Codes 8 und 13.
FAKTURA Artikel-Barcode 1 Modul ARTIKEL-BARCODE Das Modul ARTIKEL-BARCODE ermöglicht den Druck von Barcode-Etiketten der EAN-Codes 8 und 13. Es können Etiketten aller gängigen Standard-Größen verwendet
Der neue persönliche Bereich/die CommSy-Leiste
Der neue persönliche Bereich/die CommSy-Leiste Mit der neue CommSy-Version wurde auch der persönliche Bereich umstrukturiert. Sie finden all Ihre persönlichen Dokumente jetzt in Ihrer CommSy-Leiste. Ein
Grundlagen der Theoretischen Informatik, SoSe 2008
1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)
Rundung und Casting von Zahlen
W E R K S T A T T Rundung und Casting von Zahlen Intrexx 7.0 1. Einleitung In diesem Werkstattbeitrag erfahren Sie, wie Zahlenwerte speziell in Velocity, aber auch in Groovy, gerundet werden können. Für
1 Mathematische Grundlagen
Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.
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
Stammdatenanlage über den Einrichtungsassistenten
Stammdatenanlage über den Einrichtungsassistenten Schritt für Schritt zur fertig eingerichteten Hotelverwaltung mit dem Einrichtungsassistenten Bitte bereiten Sie sich, bevor Sie starten, mit der Checkliste
Handbuch für Redakteure
Handbuch für Redakteure Erste Schritte... 1 Artikel erstellen... 2 Artikelinhalt bearbeiten... 3 Artikel bearbeiten... 3 Grunddaten ändern... 5 Weitere Artikeleigenschaften... 5 Der WYSIWYG-Editor... 6
mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank
mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank In den ersten beiden Abschnitten (rbanken1.pdf und rbanken2.pdf) haben wir uns mit am Ende mysql beschäftigt und kennengelernt, wie man
Kreativ visualisieren
Kreativ visualisieren Haben Sie schon einmal etwas von sogenannten»sich selbst erfüllenden Prophezeiungen«gehört? Damit ist gemeint, dass ein Ereignis mit hoher Wahrscheinlichkeit eintritt, wenn wir uns
HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG
it4sport GmbH HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG Stand 10.07.2014 Version 2.0 1. INHALTSVERZEICHNIS 2. Abbildungsverzeichnis... 3 3. Dokumentenumfang... 4 4. Dokumente anzeigen... 5 4.1 Dokumente
Professionelle Seminare im Bereich MS-Office
Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion
Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1
Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Wenn der Name nicht gerade www.buch.de oder www.bmw.de heißt, sind Internetadressen oft schwer zu merken Deshalb ist es sinnvoll, die Adressen
Buchhaltung mit WISO EÜR & Kasse 2011
Vorbemerkung... 1 1. Erste Schritte...Fehler! Textmarke nicht definiert.3 2. Einrichten des Programms... 5 3. Buchungen... 22 1. Anfangsbestand buchen... 22 2. Privateinlage in die Kasse... 26 4. Buchungen
Speicher in der Cloud
Speicher in der Cloud Kostenbremse, Sicherheitsrisiko oder Basis für die unternehmensweite Kollaboration? von Cornelius Höchel-Winter 2013 ComConsult Research GmbH, Aachen 3 SYNCHRONISATION TEUFELSZEUG
Hilfedatei der Oden$-Börse Stand Juni 2014
Hilfedatei der Oden$-Börse Stand Juni 2014 Inhalt 1. Einleitung... 2 2. Die Anmeldung... 2 2.1 Die Erstregistrierung... 3 2.2 Die Mitgliedsnummer anfordern... 4 3. Die Funktionen für Nutzer... 5 3.1 Arbeiten
Datenbank LAP - Chefexperten Detailhandel
AJR Informatique Conseil Datenbank LAP - Chefexperten Detailhandel Kurzanleitung Version 01-17 Februar 2009 1 Zugang zur Datenbank Zugang zur Datenbank erhalten Sie unter www.dblap.ch. Zum Training können
L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016
L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 Referentin: Dr. Kelly Neudorfer Universität Hohenheim Was wir jetzt besprechen werden ist eine Frage, mit denen viele
Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel
Sehr vielen Mitarbeitern fällt es schwer, Serienbriefe an Kunden zu verschicken, wenn sie die Serienbrieffunktion von Word nicht beherrschen. Wenn die Kunden mit Excel verwaltet werden, genügen nur ein
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
Gruppenrichtlinien und Softwareverteilung
Gruppenrichtlinien und Softwareverteilung Ergänzungen zur Musterlösung Bitte lesen Sie zuerst die gesamte Anleitung durch! Vorbemerkung: Die Begriffe OU (Organizational Unit) und Raum werden in der folgenden
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
Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen
Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen Wir wollen, dass ihr einfach für eure Ideen und Vorschläge werben könnt. Egal ob in ausgedruckten Flyern, oder in sozialen Netzwerken und
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
Wir arbeiten mit Zufallszahlen
Abb. 1: Bei Kartenspielen müssen zu Beginn die Karten zufällig ausgeteilt werden. Wir arbeiten mit Zufallszahlen Jedesmal wenn ein neues Patience-Spiel gestartet wird, muss das Computerprogramm die Karten
7DVWH.HOOQHU. Kassensystem SANYO (X&D6RIWKapitel 42
7DVWH.HOOQHU Sie befinden sich im Dialog 5DXP%LOG Sie Tippen auf die Taste.HOOQHU Sie gelangen danach in den Dialog.HOOQHU/RJLQ. Alle Handlungen, die YRQ,KQHQ durchgeführt werden können sind schwarz dargestellt.
ecaros2 - Accountmanager
ecaros2 - Accountmanager procar informatik AG 1 Stand: FS 09/2012 Inhaltsverzeichnis 1 Aufruf des ecaros2-accountmanager...3 2 Bedienung Accountmanager...4 procar informatik AG 2 Stand: FS 09/2012 1 Aufruf
ArluText Textbausteinverwaltung für Word für Windows & Microsoft Outlook Schnellstart 2003-2014 Biermann & Winzenried
Arlu utext Textbausteinverwaltung für Word für Windows & Micro soft Outlook 2003-2014 Biermann & Winzenried 1 Vorbemerkung Nach der Installation von ArluText erscheint in Word für Windows 2010 & 2013 ein
P&P Software - Adressexport an Outlook 05/29/16 14:44:26
Adressexport an Outlook Wozu? Aus EASY können viele Daten im Excelformat ausgegeben werden. Diese Funktion kann zum Beispiel zum Export von Lieferantenadressen an Outlook genutzt werden. Hinweis Wir können
Stundenerfassung Version 1.8
Stundenerfassung Version 1.8 Anleitung Überstunden Ein Modul der Plusversion 2008 netcadservice GmbH netcadservice GmbH Augustinerstraße 3 D-83395 Freilassing Dieses Programm ist urheberrechtlich geschützt.
Bedienungsanleitung Albumdesigner. Neues Projekt: Bestehendes Projekt öffnen:
Bedienungsanleitung Albumdesigner Hier wählen Sie aus ob Sie mit einem neuen Album beginnen - Neues Projekt erstellen oder Sie arbeiten an einem bestehenden weiter - Bestehendes Projekt öffnen. Neues Projekt:
CC Modul Leadpark. 1. Setup 1.1 Providerdaten 1.2 Einstellungen 1.3 Qualifizierungsstati 1.4 Reklamationsstati 1.5 Design 1.
CC Modul Leadpark 1. Setup 1.1 Providerdaten 1.2 Einstellungen 1.3 Qualifizierungsstati 1.4 Reklamationsstati 1.5 Design 1.6 Dateien 2. Mein Account 2.1 Shortcutmenü 2.2 Passwort 2.3 E-Mail 2.4 Daten 3.
Informatik Kurs Simulation. Hilfe für den Consideo Modeler
Hilfe für den Consideo Modeler Consideo stellt Schulen den Modeler kostenlos zur Verfügung. Wenden Sie sich an: http://consideo-modeler.de/ Der Modeler ist ein Werkzeug, das nicht für schulische Zwecke
LOPRODOC Klassenrechnung und Rechnung an die Direktion (Umsatzsteuer)
LOPRODOC Klassenrechnung und Rechnung an die Direktion (Umsatzsteuer) In der Jahreshauptversammlung des Zentralverbands der SKL-Einnehmer am 9.4.11 in Mannheim wurde unter anderem das Thema der Umsatzsteuer
KVIrc - registrierte Benutzer i. KVIrc - registrierte Benutzer
i KVIrc - registrierte Benutzer ii REVISION HISTORY NUMBER DATE DESCRIPTION NAME iii Contents 1 Einleitung 1 1.1 Wozu?......................................................... 1 1.2 Wie?..........................................................
Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen
Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen Dateiname: ecdl5_01_02_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Access
Professionelle Seminare im Bereich MS-Office
Serienbrief aus Outlook heraus Schritt 1 Zuerst sollten Sie die Kontakte einblenden, damit Ihnen der Seriendruck zur Verfügung steht. Schritt 2 Danach wählen Sie bitte Gerhard Grünholz 1 Schritt 3 Es öffnet
Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER
Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos in Verbindung mit der Webshopanbindung wurde speziell auf die Shop-Software shop to date von DATA BECKER abgestimmt. Mit
So gelingt Ihre Online-Bewerbung!
So gelingt Ihre Online-Bewerbung! Erstmalige Bewerbung: Wenn Sie sich zum ersten Mal dazu entschieden haben, sich auf ein Stellenangebot des waff-personalfinder zu bewerben, wird im Zuge Ihrer Bewerbung
Doku zur Gebäudebrüter Datenbank
Autor: Christina Baradari, [email protected], 0162 2008 114 Doku zur Gebäudebrüter Datenbank Team Web Programmierer: Rahim Baradari Inhaltsverzeichnis 1 Suchen nach Kartierungsdaten... 2 1.1
So geht s Schritt-für-Schritt-Anleitung
So geht s Schritt-für-Schritt-Anleitung Software WISO Mein Verein Thema Fällige Rechnungen erzeugen und Verbuchung der Zahlungen (Beitragslauf) Version/Datum V 15.00.06.100 Zuerst sind die Voraussetzungen
Anleitung zur Verwendung der VVW-Word-Vorlagen
Anleitung zur Verwendung der VVW-Word-Vorlagen v1.0. Jun-15 1 1 Vorwort Sehr geehrte Autorinnen und Autoren, wir haben für Sie eine Dokumentenvorlage für Microsoft Word entwickelt, um Ihnen die strukturierte
Auftragsbearbeitung 3.1
Auftragsbearbeitung / Bearbeitung bestehender Aufträge Automatische / manuelle Soll/Ist-Aufteilung (Stempelungen) Auf Aufträge kann über das Programm 15.2.1 gestempelt werden (PC in der Werkstatt auf dem
S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine
PhotoLine S/W mit PhotoLine Erstellt mit Version 16.11 Ich liebe Schwarzweiß-Bilder und schaue mir neidisch die Meisterwerke an, die andere Fotografen zustande bringen. Schon lange versuche ich, auch so
