<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="hu">
	<id>https://vik.wiki/index.php?action=history&amp;feed=atom&amp;title=Adatb%C3%A1zisok_szerver_oldali_programoz%C3%A1sa_El%C5%91ad%C3%A1s%2C_2006.02.24.</id>
	<title>Adatbázisok szerver oldali programozása Előadás, 2006.02.24. - Laptörténet</title>
	<link rel="self" type="application/atom+xml" href="https://vik.wiki/index.php?action=history&amp;feed=atom&amp;title=Adatb%C3%A1zisok_szerver_oldali_programoz%C3%A1sa_El%C5%91ad%C3%A1s%2C_2006.02.24."/>
	<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Adatb%C3%A1zisok_szerver_oldali_programoz%C3%A1sa_El%C5%91ad%C3%A1s,_2006.02.24.&amp;action=history"/>
	<updated>2026-05-16T17:55:04Z</updated>
	<subtitle>Az oldal laptörténete a wikiben</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://vik.wiki/index.php?title=Adatb%C3%A1zisok_szerver_oldali_programoz%C3%A1sa_El%C5%91ad%C3%A1s,_2006.02.24.&amp;diff=165900&amp;oldid=prev</id>
		<title>Juliette88: /* Függvény */</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Adatb%C3%A1zisok_szerver_oldali_programoz%C3%A1sa_El%C5%91ad%C3%A1s,_2006.02.24.&amp;diff=165900&amp;oldid=prev"/>
		<updated>2013-05-20T17:03:52Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Függvény&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;hu&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Régebbi változat&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;A lap 2013. május 20., 19:03-kori változata&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l96&quot;&gt;96. sor:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;96. sor:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;====Függvény====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;====Függvény====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;coe &lt;/del&gt;class=&quot;pre&quot;&amp;gt;FUNCTION név(paraméterek)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;code &lt;/ins&gt;class=&quot;pre&quot;&amp;gt;FUNCTION név(paraméterek)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;RETURN típus&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;RETURN típus&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[IS&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[IS&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l105&quot;&gt;105. sor:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;105. sor:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	...]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	...]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;END;&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;END;&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Komment===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Komment===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key my_wiki:diff:1.41:old-163834:rev-165900:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Juliette88</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Adatb%C3%A1zisok_szerver_oldali_programoz%C3%A1sa_El%C5%91ad%C3%A1s,_2006.02.24.&amp;diff=163834&amp;oldid=prev</id>
		<title>2001:738:2001:2078:0:208:37:0: Új oldal, tartalma: „{{GlobalTemplate|Valaszthato|AdatbServerProgJegyzet20060224}}  &lt;!--  * Set DENYTOPICVIEW = TWikiGuest --&gt;   &lt;style&gt;  	code.pre { white-space: pre; display:block; me…”</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Adatb%C3%A1zisok_szerver_oldali_programoz%C3%A1sa_El%C5%91ad%C3%A1s,_2006.02.24.&amp;diff=163834&amp;oldid=prev"/>
		<updated>2013-03-31T19:03:28Z</updated>

		<summary type="html">&lt;p&gt;Új oldal, tartalma: „{{GlobalTemplate|Valaszthato|AdatbServerProgJegyzet20060224}}  &amp;lt;!--  * Set DENYTOPICVIEW = &lt;a href=&quot;/index.php?title=TWikiGuest&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;TWikiGuest (a lap nem létezik)&quot;&gt;TWikiGuest&lt;/a&gt; --&amp;gt;   &amp;lt;style&amp;gt;  	code.pre { white-space: pre; display:block; me…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Új lap&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{GlobalTemplate|Valaszthato|AdatbServerProgJegyzet20060224}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
* Set DENYTOPICVIEW = [[TWikiGuest]]&lt;br /&gt;
--&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;style&amp;gt; &lt;br /&gt;
	code.pre { white-space: pre; display:block; mergin-top: 2px; margin-bottom: 2px;}&lt;br /&gt;
	li { line-height: 18px; }&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt; [[AdatbServerProgJegyzet20060221|&amp;amp;lt;&amp;amp;lt;]] Előadás, 2006.02.24. [[AdatbServerProgJegyzet20060303|&amp;amp;gt;&amp;amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Oracle és Sql Server 2005 közötti különbségek==&lt;br /&gt;
&lt;br /&gt;
* String összefűzés&lt;br /&gt;
** Oracle: =SELECT vezetéknév ||| &amp;#039; &amp;#039; || keresztnév FROM felhasználók=&lt;br /&gt;
** MS SQL: =SELECT vezetéknév + &amp;#039; &amp;#039; + keresztnév FROM felhasználók= &lt;br /&gt;
&amp;lt;br/&amp;gt; Szám és string összefűzésénél a számot először konvertálni kell: =CONVERT(varchar, oszlopnév)=&lt;br /&gt;
&lt;br /&gt;
* =NULL= érték kezelés&lt;br /&gt;
** Oracle: =NVL(oszlop, érték)=&lt;br /&gt;
** MS SQL: =ISNULL(oszlop, érték)=&lt;br /&gt;
&lt;br /&gt;
* Aktuális dátum&lt;br /&gt;
** Oracle: =SELECT sysdate FROM DUAL= &lt;br /&gt;
&amp;lt;br/&amp;gt; A =DUAL= egy 1 soros beépített tábla. Oracle-ben nem hagyható el a =SELECT= mögül a =FROM=, ezért kell trükközni.&lt;br /&gt;
** MS SQL: =SELECT getdate()=&lt;br /&gt;
&lt;br /&gt;
* Stringből dátum&lt;br /&gt;
** Oracle: =INSERT INTO tábla VALUES(TO_DATE(&amp;#039;2006-02-24&amp;#039;, &amp;#039;yyyy-mm-dd&amp;#039;))=&lt;br /&gt;
** MS SQL: automatikusan konvertál stringből, többféle formátumot felismer (pl. &amp;#039;2006-02-24&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
* Első 5 sor&lt;br /&gt;
** Oracle: =rownum&amp;amp;lt;=5=. Operátorként itt csak &amp;amp;lt; és &amp;amp;lt;= megengedett. Ha egy táblának kérjük valamilyen rendezés (&amp;lt;pre&amp;gt;ORDER BY ...&amp;lt;/pre&amp;gt;) szerinti első néhány sorát, a rendezést allekérdezébe (beágyazott lekérdezésbe) kell rakni, mert különben fordított sorrendben értékeli ki az &amp;lt;pre&amp;gt;ORDER BY&amp;lt;/pre&amp;gt;-t és a &amp;lt;pre&amp;gt;rownum&amp;amp;lt;=5&amp;lt;/pre&amp;gt;-öt. (tehát először kapjuk meg a rendezetlen tábla első öt sorát, majd az &amp;lt;pre&amp;gt;ORDER BY&amp;lt;/pre&amp;gt; csak a lekért rendezetlen öt sort rendezi) &amp;lt;code class=&amp;quot;pre&amp;quot;&amp;gt;SELECT * FROM (&lt;br /&gt;
&amp;lt;br/&amp;gt;	SELECT id, name&lt;br /&gt;
&amp;lt;br/&amp;gt;	FROM students ORDER BY name) a&lt;br /&gt;
&amp;lt;br/&amp;gt;WHERE rownum&amp;amp;lt;=5&amp;lt;/code&amp;gt;&lt;br /&gt;
** MS SQL: =SELECT TOP 5 id, name FROM student ORDER BY name=&lt;br /&gt;
		&lt;br /&gt;
* Intervallum kiválasztása&lt;br /&gt;
** Oracle: &amp;lt;code class=&amp;quot;pre&amp;quot;&amp;gt;SELECT * FROM&lt;br /&gt;
&amp;lt;br/&amp;gt;	(SELECT id, name FROM student ORDER BY name) a&lt;br /&gt;
&amp;lt;br/&amp;gt;WHERE rownum&amp;amp;lt;=10&lt;br /&gt;
&amp;lt;br/&amp;gt;MINUS&lt;br /&gt;
&amp;lt;br/&amp;gt;SELECT * FROM&lt;br /&gt;
&amp;lt;br/&amp;gt;	(SELECT id, name FROM student ORDER BY name) b&lt;br /&gt;
&amp;lt;br/&amp;gt;WHERE rownum&amp;amp;lt;=5&amp;lt;/code&amp;gt;&lt;br /&gt;
** MS SQL: &amp;lt;code class=&amp;quot;pre&amp;quot;&amp;gt;SELECT * FROM&lt;br /&gt;
&amp;lt;br/&amp;gt;	(SELECT TOP 10 id, name FROM student ORDER BY név) a&lt;br /&gt;
&amp;lt;br/&amp;gt;EXCEPT&lt;br /&gt;
&amp;lt;br/&amp;gt;SELECT * FROM&lt;br /&gt;
&amp;lt;br/&amp;gt;	(SELECT TOP 5 id, name FROM student ORDER BY név) b&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Táblanevek lekérdezése&lt;br /&gt;
** Oracle: =SELECT table_name FROM user_tables=&lt;br /&gt;
** MS SQL: =sp_tables=&lt;br /&gt;
&lt;br /&gt;
* Logolás&lt;br /&gt;
** Oracle: =DBMS_OUTPUT.PUT_LINE(&amp;#039;a&amp;#039;)=&lt;br /&gt;
** MS SQL: =print &amp;#039;a&amp;#039;=&lt;br /&gt;
&lt;br /&gt;
* Azonosító generálás (primary key oszlop automatikus generálása):&lt;br /&gt;
** ld. [[AdatbServerProgJegyzet20060217#generate_identifier|2006.02.17. jegyzet]]&lt;br /&gt;
&lt;br /&gt;
==PL/SQL==&lt;br /&gt;
&lt;br /&gt;
===Tárolt eljárások===&lt;br /&gt;
&lt;br /&gt;
Az Oracle-ben minden utasítást blokkba kell zárni. Az utasításokat és a blokkokat pontosvessző zárja le.&lt;br /&gt;
&lt;br /&gt;
====Anonim blokk====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code class=&amp;quot;pre&amp;quot;&amp;gt;[&amp;amp;lt;&amp;amp;lt;cimke&amp;amp;gt;&amp;amp;gt;]&lt;br /&gt;
[DECLARE&lt;br /&gt;
	változó deklaráció, lokális eljárások]&lt;br /&gt;
BEGIN&lt;br /&gt;
	utasítások, blokkok&lt;br /&gt;
[EXCEPTION&lt;br /&gt;
	kivételkezelés]&lt;br /&gt;
END;&amp;lt;/code&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
====Eljárás====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code class=&amp;quot;pre&amp;quot;&amp;gt;PROCEDURE név(paraméterek)&lt;br /&gt;
[IS&lt;br /&gt;
	...]&lt;br /&gt;
BEGIN&lt;br /&gt;
	... &lt;br /&gt;
[EXCEPTION&lt;br /&gt;
	...] &lt;br /&gt;
END;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Függvény====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;coe class=&amp;quot;pre&amp;quot;&amp;gt;FUNCTION név(paraméterek)&lt;br /&gt;
RETURN típus&lt;br /&gt;
[IS&lt;br /&gt;
	...]&lt;br /&gt;
BEGIN&lt;br /&gt;
	...&lt;br /&gt;
[EXCEPTION&lt;br /&gt;
	...]&lt;br /&gt;
END;&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Komment===&lt;br /&gt;
&lt;br /&gt;
* Egysoros: =--=&lt;br /&gt;
* Többsoros: =/* */=, nem ágyazhatók egymásba&lt;br /&gt;
&lt;br /&gt;
===Változók===&lt;br /&gt;
&lt;br /&gt;
* azonosító: [a-zA-Z][a-zA-Z0-9$_]*, nem case sensitive és legfeljebb 30 hosszú. Ha az azonosító ettől különböző formájú, idézőjelek közé kell tenni. A hosszba az idézőjeleket is bele kell számolni.&lt;br /&gt;
* deklaráció: ha nem adunk meg kezdőértéket, &amp;lt;pre&amp;gt;NULL&amp;lt;/pre&amp;gt;-t vesz fel.&amp;lt;code class=&amp;quot;pre&amp;quot;&amp;gt;DECLARE&lt;br /&gt;
&amp;lt;br/&amp;gt;	szam1 INT;&lt;br /&gt;
&amp;lt;br/&amp;gt;	szam2 INT := 3;&lt;br /&gt;
&amp;lt;br/&amp;gt;	szam3 INT DEFAULT 5;&lt;br /&gt;
&amp;lt;br/&amp;gt;	datum DATE NOT NULL := &amp;#039;2006-FEB-12&amp;#039;;&lt;br /&gt;
&amp;lt;br/&amp;gt;	pi CONSTANT REAL := 3.14;&lt;br /&gt;
&amp;lt;br/&amp;gt;	diak_nev student.stud_name%TYPE;&lt;br /&gt;
&amp;lt;br/&amp;gt;	diak_rekord student%ROWTYPE;&amp;lt;/code&amp;gt;&lt;br /&gt;
* értékadás: &amp;lt;code class=&amp;quot;pre&amp;quot;&amp;gt;BEGIN&lt;br /&gt;
&amp;lt;br/&amp;gt;	szám1 := 3;&lt;br /&gt;
&amp;lt;br/&amp;gt;	SELECT id INTO szam2 FROM ...;&lt;br /&gt;
&amp;lt;br/&amp;gt;	=SELECT id,id2 INTO szam3,szam4 FROM ...;&amp;lt;/code&amp;gt; A &amp;lt;pre&amp;gt;SELECT&amp;lt;/pre&amp;gt;-nek pontosan 1 sorral kell visszatérnie, különben &amp;lt;pre&amp;gt;NO_DATA_FOUND&amp;lt;/pre&amp;gt; vagy &amp;lt;pre&amp;gt;TOO_MANY_ROWS&amp;lt;/pre&amp;gt; exceptiont dob.&lt;br /&gt;
* névelfedés&lt;br /&gt;
** az SQL oszlopnév elfedi a változónevet&lt;br /&gt;
** a belső blokkban deklarált változó elfedi a külsőt&lt;br /&gt;
** az elfedett változóra &amp;lt;i&amp;gt;cimkenév.változónév&amp;lt;/i&amp;gt; alakban tudunk hivatkozni&lt;br /&gt;
* változó hatásköre = a kódnak azon része, ahol tudunk rá hivatkozni&lt;br /&gt;
* változó láthatósága = az a blokk, amiben a változót dekaráltuk&lt;br /&gt;
&lt;br /&gt;
===Vezérlési szerkezetek===&lt;br /&gt;
&lt;br /&gt;
Minden vezérlési szerkezetet megelőzhet egy &amp;lt;pre&amp;gt;&amp;amp;lt;&amp;amp;lt;cimkenév&amp;amp;gt;&amp;amp;gt;&amp;lt;/pre&amp;gt; formátumú cimke.&lt;br /&gt;
&lt;br /&gt;
* =NULL=: üres utasítás. A blokkokban mindenképpen szerepelni kell utasításnak. Ha pl. egy tárolt eljárást nem akarunk megírni, &amp;lt;pre&amp;gt;NULL&amp;lt;/pre&amp;gt;-t írunk a törzsébe, hogy leforduljon.&lt;br /&gt;
&lt;br /&gt;
* =GOTO cimke=: nem ugorhat bele alblokkba, vagy ki a blokkból. Az =EXCEPTION= részből nem ugorhat vissza a saját blokkjába.&lt;br /&gt;
&lt;br /&gt;
====Elágazások====&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code class=&amp;quot;pre&amp;quot;&amp;gt;IF feltétel THEN&lt;br /&gt;
&amp;lt;br/&amp;gt;	utasítások;&lt;br /&gt;
&amp;lt;br/&amp;gt;[ELSIF feltétel THEN&lt;br /&gt;
&amp;lt;br/&amp;gt;	utasítások;]&lt;br /&gt;
&amp;lt;br/&amp;gt;[ELSE&lt;br /&gt;
&amp;lt;br/&amp;gt;	utasítások;]&lt;br /&gt;
&amp;lt;br/&amp;gt;END IF;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Searched case (ugyanaz, mint az =IF=) &amp;lt;code class=&amp;quot;pre&amp;quot;&amp;gt;CASE&lt;br /&gt;
&amp;lt;br/&amp;gt;WHEN keresési feltétel THEN&lt;br /&gt;
&amp;lt;br/&amp;gt;	utasítások;&lt;br /&gt;
&amp;lt;br/&amp;gt;[ELSE&lt;br /&gt;
&amp;lt;br/&amp;gt;	utasítások;]&lt;br /&gt;
&amp;lt;br/&amp;gt;END CASE;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code class=&amp;quot;pre&amp;quot;&amp;gt;CASE szelektor&lt;br /&gt;
&amp;lt;br/&amp;gt;WHEN kif THEN&lt;br /&gt;
&amp;lt;br/&amp;gt;	utasítások;&lt;br /&gt;
&amp;lt;br/&amp;gt;[ELSE&lt;br /&gt;
&amp;lt;br/&amp;gt;	utasítások;]&lt;br /&gt;
&amp;lt;br/&amp;gt;END CASE;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Ciklusok====&lt;br /&gt;
&lt;br /&gt;
A ciklusokból az =EXIT;= utasítással lehet kilépni. Feltételes kilépés: =EXIT WHEN feltétel;=.&lt;br /&gt;
&lt;br /&gt;
* végtelen ciklus: &amp;lt;code class=&amp;quot;pre&amp;quot;&amp;gt;LOOP&lt;br /&gt;
&amp;lt;br/&amp;gt;	utasítások;&lt;br /&gt;
&amp;lt;br/&amp;gt;END LOOP;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code class=&amp;quot;pre&amp;quot;&amp;gt;WHILE feltétel LOOP&lt;br /&gt;
&amp;lt;br/&amp;gt;	utasítások;&lt;br /&gt;
&amp;lt;br/&amp;gt;END LOOP;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code class=&amp;quot;pre&amp;quot;&amp;gt;FOR változó IN [REVERSE] alsó..felső LOOP&lt;br /&gt;
&amp;lt;br/&amp;gt;	utasítások;&lt;br /&gt;
&amp;lt;br/&amp;gt;END LOOP;&amp;lt;/code&amp;gt;A változó helyben van deklarálva, a hatásköre a ciklus belseje, és nem módosítható. A ciklus határai lehetnek változók, de összetett kifejezés már nem.&lt;br /&gt;
&lt;br /&gt;
===Példa===&lt;br /&gt;
&lt;br /&gt;
Az =ember(id, név)= táblából írjuk ki a neveket. Megjegyzés: gányolunk egy kicsit, kurzorokkal sokkal szebben megoldható a feladat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code class=&amp;quot;pre&amp;quot;&amp;gt;DECLARE&lt;br /&gt;
	minid INT;&lt;br /&gt;
	maxid INT;&lt;br /&gt;
	db INT;&lt;br /&gt;
	embernev ember.nev%TYPE;&lt;br /&gt;
BEGIN&lt;br /&gt;
	SELECT min(id), max(id) INTO minid, maxid FROM ember;&lt;br /&gt;
	FOR i IN minid..maxid LOOP&lt;br /&gt;
		SELECT count(*) INTO db FROM ember WHERE id=i;&lt;br /&gt;
		IF db=1 THEN&lt;br /&gt;
			SELECT nev INTO embernev FROM ember WHERE id=i;&lt;br /&gt;
			DBMS_OUTPUT.PUT_LINE(embernev);&lt;br /&gt;
		END IF;&lt;br /&gt;
	END LOOP;&lt;br /&gt;
END;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-- [[PallosPeter|Peti]] - 2006.02.26.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Valaszthato]]&lt;/div&gt;</summary>
		<author><name>2001:738:2001:2078:0:208:37:0</name></author>
	</entry>
</feed>