<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>SQL Server (και άλλες databases)</title><link>https://www.dotnetzone.gr:443/cs/forums/28/ShowForum.aspx</link><description>Θέματα που αφορούν τον SQL Server (7.0, 2000, 2005) αλλά και Oracle, Access, DB2, MySQL, κλπ.</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Oracle nested transactions</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/35094.aspx</link><pubDate>Tue, 18 Sep 2007 19:29:12 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:35094</guid><dc:creator>Δημήτρης Μπούνδρης</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/35094.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=35094</wfw:commentRss><description>&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;&lt;FONT face="Times New Roman"&gt;Ίσως επειδή το έψαξα λιγάκι παραπάνω βρήκα κάποιες πληροφορίες που ίσως σε κάποιους τους φανούν ενδιαφέρουσες:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;&lt;FONT face="Times New Roman"&gt;Η Oracle δεν υποστηρίζει nested transactions σε αντίθεση με τον SQL Server. Κάνει commit ή rollback όλα τα προηγούμενα statements και ανοίγει νέο transaction με την εκτέλεση του επόμενου statement.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;&lt;FONT face="Times New Roman"&gt;Όταν ένα statement προκαλέσει error τότε γίνεται rollback μόνο αυτό και όχι ότι έχει πριν από αυτό προηγηθεί. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;&lt;FONT face="Times New Roman"&gt;Στο exception block πρέπει explicitly να εκτελέσουμε commit ή rollback δίοτι μετα εξαρτάται από το περιβάλλον της Oracle database&amp;nbsp;το τι θα αποφασίσει να γίνει. Βασικά εαν ο χρήστης επιλέξει έπειτα session disconnect τότε γίνεται commit, εαν κλείσει το session rollback κλπ.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;&lt;FONT face="Times New Roman"&gt;Εαν θέλουμε να εκτελέσουμε κάποια statements ενδιάμεσα σε ένα transaction που να μην σχετίζονται με αυτό και να μην το επηρεάζουν τότε θα πρέπει να χρησιμοποιήσουμε μια άλλη procedure που να είναι δηλωμένη ως&lt;SPAN style="BACKGROUND:white;COLOR:black;"&gt; &lt;/SPAN&gt;&lt;SPAN style="BACKGROUND:gray;COLOR:black;"&gt;PRAGMA AUTONOMOUS_TRANSACTION&lt;/SPAN&gt;. Έτσι θα μπορεί να εκτελεστεί αυτή και να κάνει commit χωρίς να επηρεάζει το block μέσα από το οποίο αυτή καλείται.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Oracle nested transactions</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/35077.aspx</link><pubDate>Tue, 18 Sep 2007 00:59:54 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:35077</guid><dc:creator>Δημήτρης Μπούνδρης</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/35077.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=35077</wfw:commentRss><description>&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;FONT face=Tahoma size=3&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:black;FONT-FAMILY:Tahoma;"&gt;Έχω&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:black;FONT-FAMILY:Tahoma;mso-ansi-language:EN-GB;"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:black;FONT-FAMILY:Tahoma;"&gt;ένα&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:black;FONT-FAMILY:Tahoma;mso-ansi-language:EN-GB;"&gt; PL/SQL procedure &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:black;FONT-FAMILY:Tahoma;"&gt;με&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:black;FONT-FAMILY:Tahoma;mso-ansi-language:EN-GB;"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:black;FONT-FAMILY:Tahoma;"&gt;πολλά&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:black;FONT-FAMILY:Tahoma;mso-ansi-language:EN-GB;"&gt; DML statements. &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:black;FONT-FAMILY:Tahoma;"&gt;Στο&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:black;FONT-FAMILY:Tahoma;mso-ansi-language:EN-GB;"&gt; exception handling &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:black;FONT-FAMILY:Tahoma;"&gt;γράφω&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:black;FONT-FAMILY:Tahoma;mso-ansi-language:EN-GB;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;BACKGROUND:#cccccc;COLOR:black;FONT-FAMILY:Tahoma;mso-ansi-language:EN-GB;"&gt;EXCEPTION&lt;BR&gt;WHEN OTHERS THEN &lt;BR&gt;ROLLBACK;&lt;BR&gt;dbms_output.put_line('*************************************************');&lt;BR&gt;dbms_output.put_line('An Error has occured : ' || SQLERRM);&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:black;FONT-FAMILY:Tahoma;mso-ansi-language:EN-GB;"&gt;&lt;BR&gt;EXIT;&lt;BR&gt;&lt;BR&gt;END;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:black;FONT-FAMILY:Tahoma;"&gt;Έχω όμως&amp;nbsp;3 ερωτήσεις:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:black;FONT-FAMILY:Tahoma;"&gt;1) Αφού η Oracle δεν υποστηρίζει nested transactions έχει νόημα να χρησιμοποιήσω rollback;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:black;FONT-FAMILY:Tahoma;"&gt;2) Εάν ήθελα μέσα στο exception block να γράψω σε ένα Log πίνακα θα έπρεπε να κάνω μόνος rollback ολα τα προηγούμενα, να γράψω τα insert statements και να κλείσω explicitly το transaction? Η έχουν γίνει ήδη από πριν&amp;nbsp;rollback τα πάντα?&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:10pt;COLOR:black;FONT-FAMILY:Tahoma;"&gt;3) Όταν κλείνει το session γίνονται αυτόματα όλα commit;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;FONT face=Tahoma&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;</description></item></channel></rss>