<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Gespeicherte_Prozedur</id>
	<title>Gespeicherte Prozedur - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Gespeicherte_Prozedur"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Gespeicherte_Prozedur&amp;action=history"/>
	<updated>2026-06-21T16:17:32Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Gespeicherte_Prozedur&amp;diff=86115&amp;oldid=prev</id>
		<title>imported&gt;SchlurcherBot: Bot: http → https</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Gespeicherte_Prozedur&amp;diff=86115&amp;oldid=prev"/>
		<updated>2026-02-16T12:11:18Z</updated>

		<summary type="html">&lt;p&gt;Bot: http → https&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Eine &amp;#039;&amp;#039;&amp;#039;gespeicherte Prozedur&amp;#039;&amp;#039;&amp;#039; ({{enS|&amp;#039;&amp;#039;stored procedure&amp;#039;&amp;#039;}}) ist eine Anweisung in [[Datenbankmanagementsystem]]en, mit der ganze Abläufe von Anweisungen vom [[Datenbank]]-Client aufgerufen werden können. Sie ist somit ein eigenständiger Befehl, der eine Abfolge gespeicherter Befehle ausführt. Gespeicherte Prozeduren werden im [[Data-Dictionary]] der jeweiligen Datenbank gespeichert.&lt;br /&gt;
&lt;br /&gt;
Mittels gespeicherter Prozeduren können häufiger verwendete Abläufe, die sonst durch viele einzelne Befehle vom [[Client]] ausgeführt werden würden, auf das [[Datenbank]]system ausgelagert und durch einen einzigen Aufruf (&amp;lt;code&amp;gt;CALL&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;EXECUTE&amp;lt;/code&amp;gt;) ausgeführt werden (siehe auch [[Client-Server-System]]). Mitunter wird dadurch die Leistung gesteigert, da weniger Daten zwischen Client und Datenbanksystem ausgetauscht werden müssen und das [[Datenbankmanagementsystem]] häufig auf leistungsfähigeren [[Hostrechner|Servern]] läuft.&lt;br /&gt;
&lt;br /&gt;
Neben der gewöhnlichen Syntax der Abfragesprache, meist [[SQL]], können in gespeicherten Prozeduren auch zusätzliche Befehle zur Ablaufsteuerung oder Auswertung von Bedingungen hinzugefügt werden. Damit können sie mit [[Makro]]sprachen bestimmter [[Anwendungsprogramm]]e verglichen werden. Oft wird das verwendete SQL um herstellerspezifische Funktionen erweitert. Auch der Einsatz anderer [[Programmiersprache]]n wie etwa [[Java (Programmiersprache)|Java]] oder [[C-Sharp|C#]] ist inzwischen teilweise möglich.&lt;br /&gt;
&lt;br /&gt;
Gespeicherte Prozeduren tragen dazu bei, die Sicherheit einer Anwendung stark zu erhöhen. Da der Client in der Regel keine &amp;lt;code&amp;gt;DELETE&amp;lt;/code&amp;gt;-, &amp;lt;code&amp;gt;UPDATE&amp;lt;/code&amp;gt;- oder &amp;lt;code&amp;gt;INSERT&amp;lt;/code&amp;gt;-Zugriffsrechte mehr benötigt, ist es Angreifern nicht möglich, selbst [[Datenbank]]en zu manipulieren, z.&amp;amp;nbsp;B. durch [[SQL-Injection]]. Der Client hat ausschließlich die Möglichkeit, bereits vorgefertigte Prozeduren aufzurufen. So können [[Softwareentwickler]] vermeiden, dass ein ungewünschtes Verhalten von Dritten hervorgerufen werden kann.&lt;br /&gt;
&lt;br /&gt;
{{Zitat&lt;br /&gt;
 |Text=In diesen Konstrukten sind SQL-Injection-Angriffe fast unmöglich. Eine theoretische Chance besteht jedoch weiterhin.&lt;br /&gt;
 |Autor=Christopher Kunz&lt;br /&gt;
 |Quelle=PHP-Sicherheit (Seite 143)&lt;br /&gt;
 |ref=&amp;lt;ref&amp;gt;{{Literatur |Autor=Christopher Kunz, Stefan Esser |Titel=PHP-Sicherheit: PHP/MySQL-Webanwendungen sicher programmieren |Auflage=3. |Verlag=dpunkt.verlag |Ort=Heidelberg |Datum=2008 |ISBN=978-3-89864-535-5}}&amp;lt;/ref&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== Implementierung ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Datenbanksystem !! Implementierungssprache&lt;br /&gt;
|-&lt;br /&gt;
| [[Db2]] || [[Db2#SQL PL|SQL PL]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Firebird (Datenbank)|Firebird]] || [[PSQL]] (teilweise auch Oracles PL/SQL)&lt;br /&gt;
|-&lt;br /&gt;
| [[Informix]] || [[Stored Procedure Language|S]]&lt;br /&gt;
[[Stored Procedure Language|PL]]&amp;lt;ref&amp;gt;&amp;#039;&amp;#039;Informix Guide to SQL: Tutorial&amp;#039;&amp;#039;, Kapitel 10, &amp;#039;&amp;#039;Creating &amp;amp; Using SPL Routines&amp;#039;&amp;#039;, S. 371&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;&amp;#039;&amp;#039;Informix Guide to SQL: Reference and Syntax&amp;#039;&amp;#039;, Kapitel 3, &amp;#039;&amp;#039;SPL Statements&amp;#039;&amp;#039;, S. 901&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Oracle (Datenbanksystem)|Oracle]] || [[PL/SQL]] und [[Java (Programmiersprache)|Java]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Microsoft SQL Server]] || [[Transact-SQL]] und diverse [[.NET Framework]] Sprachen&lt;br /&gt;
|-&lt;br /&gt;
| [[MySQL]], [[MariaDB]] || [[SQL:2003]]&amp;lt;ref&amp;gt;{{Internetquelle |hrsg=[[Oracle]] |url=http://dev.mysql.com/doc/refman/5.5/en/create-procedure.html |titel=MySQL 5.5 Reference Manual: &amp;lt;code&amp;gt;CREATE PROCEDURE&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;CREATE FUNCTION&amp;lt;/code&amp;gt; Syntax |sprache=en |zugriff=2010-02-25}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[PostgreSQL]] || [[PL/pgSQL]] und viele weitere eigene Sprachkonstrukte wie PL/Tcl, PL/Perl oder [[PL/Python]]&lt;br /&gt;
|-&lt;br /&gt;
| [[SQLite]] || nicht verfügbar&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Extended Stored Procedure ==&lt;br /&gt;
&amp;#039;&amp;#039;Extended Stored Procedure&amp;#039;&amp;#039; (Abkürzung: &amp;#039;&amp;#039;XP&amp;#039;&amp;#039;) ist eine von [[Microsoft SQL Server|Microsoft SQL]] erweiterte Form der Stored procedure. XPs erlauben durch die Verwendung von [[Dynamic Link Library|DLLs]] komplexere Prozesse auszuführen. Je nach Microsoft SQL-Version sind diverse erweiterte gespeicherte Prozeduren vordefiniert,&amp;lt;ref&amp;gt;[https://msdn.microsoft.com/en-us/library/ms187389%28v=SQL.100%29.aspx General Extended Stored Procedures (Transact-SQL).] Microsoft MSDN&amp;lt;/ref&amp;gt; während [[Systemadministrator|Administratoren]] weitere hinzufügen können.&amp;lt;ref&amp;gt;[https://msdn.microsoft.com/en-us/library/aa215797(v=sql.80).aspx Adding an Extended Stored Procedure to SQL Server.] Microsoft MSDN&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Microsoft]] hat die Verwendung von XPs inzwischen als [[deprecated]] gekennzeichnet, was bedeutet, dass zukünftige [[Microsoft SQL Server|Microsoft SQL]]-Versionen erweiterte Prozeduren nicht mehr unterstützen werden. Microsoft SQL Server 2012 unterstützt XPs allerdings noch. Als Ersatz nennt Microsoft die Verwendung der [[Laufzeitumgebung]] [[Common Language Runtime]].&amp;lt;ref&amp;gt;[https://msdn.microsoft.com/en-us/library/ms143729.aspx Deprecated Database Engine Features in SQL Server 2012.] Microsoft MSDN&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
Die folgende gespeicherte Prozedur in [[SQL]] hat zwei [[Parameter (Informatik)|Parameter]] &amp;#039;&amp;#039;@VorlNr&amp;#039;&amp;#039;, &amp;#039;&amp;#039;@PersNr&amp;#039;&amp;#039; vom [[Datentyp]] [[Integer (Datentyp)|Integer]]&amp;lt;ref&amp;gt;Microsoft Docs: [https://docs.microsoft.com/en-us/sql/relational-databases/stored-procedures/create-a-stored-procedure?view=sql-server-ver15 Create a Stored Procedure]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
CREATE PROCEDURE GibVorlesungen&lt;br /&gt;
    @VorlNr INT,&lt;br /&gt;
    @PersNr INT&lt;br /&gt;
AS&lt;br /&gt;
    SELECT Vorlesung.VorlNr, Vorlesung.Titel, Professor.PersNr, Professor.Name&lt;br /&gt;
    FROM Professor INNER JOIN Vorlesung&lt;br /&gt;
    ON Professor.PersNr = Vorlesung.PersNr&lt;br /&gt;
    WHERE VorlNr = @VorlNr AND PersNr = @PersNr;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Der Aufruf&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
EXECUTE GibVorlesungen 1001, 15;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;könnte folgendes Ergebnis zurückgeben (siehe [[SQL#Sicht|SQL - Sicht]]):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!VorlNr&lt;br /&gt;
!Titel&lt;br /&gt;
!PersNr&lt;br /&gt;
!Name&lt;br /&gt;
|-&lt;br /&gt;
|1001&lt;br /&gt;
|Datenbanken&lt;br /&gt;
|15&lt;br /&gt;
|Urlauber&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[User Defined Function]]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* {{Literatur&lt;br /&gt;
   |Autor=Guy Harrison und Steven Feuerstein&lt;br /&gt;
   |Titel=MySQL Stored Procedure Programming&lt;br /&gt;
   |Auflage=1.&lt;br /&gt;
   |Verlag=O’Reilly Media&lt;br /&gt;
   |Datum=2006&lt;br /&gt;
   |ISBN=978-0-596-10089-6&lt;br /&gt;
   |Seiten=640}}&lt;br /&gt;
* {{Literatur&lt;br /&gt;
   |Autor=Informix Software&lt;br /&gt;
   |Titel=Informix Guide to SQL: Tutorial&lt;br /&gt;
   |Auflage=2.&lt;br /&gt;
   |Verlag=Prentice Hall PTR&lt;br /&gt;
   |Datum=1999&lt;br /&gt;
   |ISBN=978-0-13-016165-9&lt;br /&gt;
   |Seiten=350}}&lt;br /&gt;
* {{Literatur&lt;br /&gt;
   |Autor=Informix Software&lt;br /&gt;
   |Titel=Informix Guide to SQL: Reference and Syntax&lt;br /&gt;
   |Auflage=2.&lt;br /&gt;
   |Verlag=Prentice Hall PTR&lt;br /&gt;
   |Datum=1999&lt;br /&gt;
   |ISBN=978-0-13-016166-6&lt;br /&gt;
   |Seiten=1776}}&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* {{Internetquelle&lt;br /&gt;
   |hrsg=Janus Software&lt;br /&gt;
   |url=http://www.janus-software.com/fbmanual/manual.php?book=PSQL&amp;amp;topic=2&lt;br /&gt;
   |titel=Firebird 2.0 Online Manual: Overview of PSQL Stored Procedures&lt;br /&gt;
   |sprache=en&lt;br /&gt;
   |zugriff=2010-02-25}}&lt;br /&gt;
* {{Internetquelle&lt;br /&gt;
   |hrsg=[[Oracle]]&lt;br /&gt;
   |autor=Peter Gulutzan&lt;br /&gt;
   |url=http://dev.mysql.com/tech-resources/articles/mysql-storedprocedures.pdf&lt;br /&gt;
   |titel=MySQL 5.0 Stored Procedures&lt;br /&gt;
   |format=PDF; 588&amp;amp;nbsp;kB&lt;br /&gt;
   |sprache=en&lt;br /&gt;
   |datum=2005-05&lt;br /&gt;
   |zugriff=2010-02-25}}&lt;br /&gt;
* {{Internetquelle&lt;br /&gt;
   |hrsg=PostgreSQL Global Development Group&lt;br /&gt;
   |url=https://www.postgresql.org/docs/current/interactive/xplang.html&lt;br /&gt;
   |titel=PostgreSQL Documentation: Procedural Languages&lt;br /&gt;
   |sprache=en&lt;br /&gt;
   |zugriff=2010-02-25}}&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:SQL]]&lt;/div&gt;</summary>
		<author><name>imported&gt;SchlurcherBot</name></author>
	</entry>
</feed>