<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3631729931140249636</id><updated>2024-09-04T14:22:05.155+01:00</updated><category term="pl/sql"/><category term="oracle"/><category term="SQL"/><category term="Microsoft"/><category term="FLOSS"/><category term="Windows"/><category term="XML"/><category term="apex"/><category term="clob"/><category term="object type"/><category term="open source"/><category term="(More Items...)"/><category term="10g"/><category term="11g"/><category term="2010"/><category term="API"/><category term="BASIC"/><category term="BBC"/><category term="Bristol"/><category term="CBT"/><category term="CVS"/><category term="Callendar"/><category term="Case"/><category term="Circuit"/><category term="Codec"/><category term="Codeplex"/><category term="Computer Based Training"/><category term="Conditional"/><category term="Constraint"/><category term="Conversion"/><category term="Convert"/><category term="Crocodile Clips"/><category term="Cross Tab"/><category term="DIF"/><category term="Data Interchange Format"/><category term="Device"/><category term="EXECUTE IMMEDIATE"/><category term="Escape"/><category term="Excel"/><category term="FFmpeg"/><category term="FIFA"/><category term="Fixtures"/><category term="Football"/><category term="Freezing"/><category term="Function"/><category term="Function Based Index"/><category term="GNU"/><category term="Google"/><category term="Index"/><category term="Javascript"/><category term="KVM"/><category term="List Views"/><category term="MIME"/><category term="MULTIROW"/><category term="Microsoft Public License"/><category term="Mix"/><category term="More Items"/><category term="Network"/><category term="ORA-06502"/><category term="OWA_UTIL"/><category term="Oracle Portal"/><category term="PLS-00801"/><category term="Pascal Raabe"/><category term="Pivot"/><category term="Pivot Table"/><category term="Portal"/><category term="Portlet"/><category term="QUERY"/><category term="Quarbon"/><category term="Recording"/><category term="SELECT"/><category term="SOA"/><category term="SOAP"/><category term="SUBSTR"/><category term="SharePoint 2007"/><category term="Soccer"/><category term="Software Design"/><category term="Sound Card"/><category term="Speaker"/><category term="Stereo"/><category term="Stereo Mix"/><category term="TO_CHAR"/><category term="Table"/><category term="Training"/><category term="UPDATE"/><category term="Unique"/><category term="User Centered Design"/><category term="User Centred Design"/><category term="Video"/><category term="Viewlet Builder"/><category term="WinFF"/><category term="Windows 7"/><category term="World Cup"/><category term="XLS"/><category term="XPath"/><category term="XPath Visulizer"/><category term="Yenka"/><category term="ZX Nostalgia"/><category term="ZX Spectrum"/><category term="blob"/><category term="carriage return"/><category term="close"/><category term="collection"/><category term="createtemporary"/><category term="crlf"/><category term="database"/><category term="date"/><category term="dbms_lob"/><category term="desktop sharing"/><category term="eviware"/><category term="form"/><category term="freetemporary"/><category term="htp.formImage"/><category term="iPhone"/><category term="iPlayer"/><category term="id"/><category term="image"/><category term="image map"/><category term="infographic"/><category term="internal error"/><category term="jobs"/><category term="keyboard"/><category term="line feed"/><category term="link"/><category term="lob"/><category term="lob_readwrite"/><category term="mac"/><category term="materialised view"/><category term="mouse"/><category term="moveto"/><category term="multiset union"/><category term="numeric or value error"/><category term="permision denied"/><category term="remote"/><category term="resize"/><category term="resizeto"/><category term="server side"/><category term="session"/><category term="session id"/><category term="session variable"/><category term="soapUI"/><category term="string"/><category term="synergy"/><category term="synergy2"/><category term="sysdate"/><category term="utl_tcp"/><category term="variable"/><category term="window.open"/><category term="writeappend"/><category term="wwctx_api"/><category term="wwsto_api_session"/><title type='text'>suburban exile</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://danholton.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://danholton.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Dan</name><uri>http://www.blogger.com/profile/18366929166079080557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>29</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3631729931140249636.post-4258928637898773289</id><published>2012-03-15T17:23:00.003+00:00</published><updated>2012-03-15T17:31:15.416+00:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apex"/><category scheme="http://www.blogger.com/atom/ns#" term="clob"/><category scheme="http://www.blogger.com/atom/ns#" term="CVS"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="pl/sql"/><category scheme="http://www.blogger.com/atom/ns#" term="string"/><category scheme="http://www.blogger.com/atom/ns#" term="SUBSTR"/><category scheme="http://www.blogger.com/atom/ns#" term="XML"/><title type='text'>Oracle slow CLOB / STRINGS</title><content type='html'>For those of you that have used oracle string functions such as SUBSTR you&#39;ll know that it can end up being very slow if you are trying to repetedly scan through long strings of data.&lt;br /&gt;&lt;br /&gt;I sometimes use this kind of function when looping through rows of a CSV or XML file, it gets increasingly slow as it gets further in to the string.&lt;br /&gt;&lt;br /&gt;To get around this once you have processed a row of a CSV file chop the bit you have finished with off and then there is not as much to search through next time around.</content><link rel='replies' type='application/atom+xml' href='http://danholton.blogspot.com/feeds/4258928637898773289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3631729931140249636/4258928637898773289' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/4258928637898773289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/4258928637898773289'/><link rel='alternate' type='text/html' href='http://danholton.blogspot.com/2012/03/oracle-slow-clob-strings.html' title='Oracle slow CLOB / STRINGS'/><author><name>Dan</name><uri>http://www.blogger.com/profile/18366929166079080557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3631729931140249636.post-1430678527988761429</id><published>2011-12-07T11:19:00.002+00:00</published><updated>2011-12-07T11:25:16.887+00:00</updated><title type='text'>Oracle Apex Reports</title><content type='html'>In Oracle Apex 3 (possibly 4) there are a number of views that allow you to query the tables that form the apex pages, this includes vies of forms, items, buttons etc.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I&#39;ve found this particularly useful when looking for particular bits of SQL and PL/SQL code where it is not practical to look through all of the pages.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To list the apex tables run this query on the &lt;b&gt;system&lt;/b&gt; schema:&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; &gt;&lt;b&gt;select * from ALL_VIEWS&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; &gt;&lt;b&gt; where VIEW_NAME LIKE &#39;APEX_%&#39;&lt;span style=&quot;font-family: &#39;courier new&#39;; &quot;&gt;  &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; and the views that I&#39;ve found most useful are the APEX_APPLICATION_PAGE_* tables.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://danholton.blogspot.com/feeds/1430678527988761429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3631729931140249636/1430678527988761429' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/1430678527988761429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/1430678527988761429'/><link rel='alternate' type='text/html' href='http://danholton.blogspot.com/2011/12/oracle-apex-reports.html' title='Oracle Apex Reports'/><author><name>Dan</name><uri>http://www.blogger.com/profile/18366929166079080557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3631729931140249636.post-5460210896810847259</id><published>2011-05-03T11:25:00.002+01:00</published><updated>2011-05-03T11:27:48.566+01:00</updated><title type='text'>Exception Exception!</title><content type='html'>Exception messages can be less than helpfull sometimes so for that extra bit of information user&lt;blockquote&gt;&lt;/blockquote&gt;&lt;pre style=&quot;font-style: italic;&quot; class=&quot;sh_oracle sh_sourceCode&quot;&gt;&lt;blockquote&gt;&lt;span class=&quot;sh_keyword&quot;&gt;DBMS_UTILITY.FORMAT_ERROR_STACK&lt;/span&gt;&lt;/blockquote&gt;&lt;/pre&gt;Within your exception statement to provide further information about the location of the error.</content><link rel='replies' type='application/atom+xml' href='http://danholton.blogspot.com/feeds/5460210896810847259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3631729931140249636/5460210896810847259' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/5460210896810847259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/5460210896810847259'/><link rel='alternate' type='text/html' href='http://danholton.blogspot.com/2011/05/exception-exception.html' title='Exception Exception!'/><author><name>Dan</name><uri>http://www.blogger.com/profile/18366929166079080557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3631729931140249636.post-7656993642893387928</id><published>2010-10-13T08:20:00.003+01:00</published><updated>2010-10-13T09:02:18.412+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="API"/><category scheme="http://www.blogger.com/atom/ns#" term="id"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Portal"/><category scheme="http://www.blogger.com/atom/ns#" term="pl/sql"/><category scheme="http://www.blogger.com/atom/ns#" term="Portal"/><category scheme="http://www.blogger.com/atom/ns#" term="Portlet"/><category scheme="http://www.blogger.com/atom/ns#" term="session"/><category scheme="http://www.blogger.com/atom/ns#" term="session id"/><category scheme="http://www.blogger.com/atom/ns#" term="session variable"/><category scheme="http://www.blogger.com/atom/ns#" term="variable"/><category scheme="http://www.blogger.com/atom/ns#" term="wwctx_api"/><category scheme="http://www.blogger.com/atom/ns#" term="wwsto_api_session"/><title type='text'>Oracle Portal Session Variables</title><content type='html'>&lt;span style=&quot;font-family: arial;&quot;&gt;Because of the way Oracle &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;portlets&lt;/span&gt; work with Oracle Portal you can&#39;t use standard PL/&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;SQL&lt;/span&gt; package session variables.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;Instead you need to use the built in Portal session &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;API&lt;/span&gt; &lt;/span&gt;&lt;span style=&quot;font-weight: bold; font-family: arial;&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;wwsto&lt;/span&gt;_&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_4&quot;&gt;api&lt;/span&gt;_session.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Firstly declare a variable to act as an object to store the session data in.&lt;br /&gt;&lt;blockquote style=&quot;font-family: courier new;&quot;&gt;l_store portal30.&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_5&quot;&gt;wwsto&lt;/span&gt;_&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_6&quot;&gt;api&lt;/span&gt;_session;&lt;/blockquote&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;Then load your session, if it doesn&#39;t exist yet it will get created.  Domain and &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_7&quot;&gt;subdomain&lt;/span&gt; do not have anything to do with web addresses but &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_8&quot;&gt;instead&lt;/span&gt; would be better described as a unique reference, I would define the domain as the application and the &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_9&quot;&gt;subdomain&lt;/span&gt; as a page within the application.&lt;/span&gt;&lt;br /&gt;&lt;blockquote style=&quot;font-family: courier new;&quot;&gt;l_store := portal30.wwsto_api_session.load_session              (&#39;DOMAIN&#39;, &#39;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_10&quot;&gt;SUBDOMAIN&lt;/span&gt;&#39;);&lt;/blockquote&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;Then you probably want to save some data to your session, you do this by defining a &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_11&quot;&gt;attribute&lt;/span&gt; name and value in set attribute.&lt;/span&gt;&lt;br /&gt;&lt;blockquote style=&quot;font-family: courier new;&quot;&gt;l_store.set_attribute (&#39;NAME&#39;,              &#39;VALUE&#39;);&lt;/blockquote&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;If you want to grab a variable that has been set then you would use &lt;/span&gt;&lt;span style=&quot;font-weight: bold; font-family: arial;&quot;&gt;get_attribute_as_&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_12&quot;&gt;varchar&lt;/span&gt;2&lt;/span&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;, there are also date &lt;/span&gt;and number variations of this &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_13&quot;&gt;API&lt;/span&gt; function.&lt;br /&gt;&lt;blockquote style=&quot;font-family: courier new;&quot;&gt;my_var := l_store.get_attribute_as_date (&#39;NAME&#39;)&lt;/blockquote&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;If you&#39;ve set any attribute variables &lt;/span&gt;then you need to make sure you save your session&lt;br /&gt;&lt;blockquote style=&quot;font-family: courier new;&quot;&gt;l_store.save_session;&lt;/blockquote&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;The session and session variables will &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_14&quot;&gt;automatically&lt;/span&gt; get dropped when you log out of Portal or close down your browser, you can &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_15&quot;&gt;manually&lt;/span&gt; drop the session with.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style=&quot;font-family: courier new;&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_16&quot;&gt;wwsto&lt;/span&gt;_&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_17&quot;&gt;api&lt;/span&gt;_session.drop_session(&#39;DOMAIN&#39;,&#39;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_18&quot;&gt;SUBDOMAIN&lt;/span&gt;&#39;);&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_19&quot;&gt;Finally&lt;/span&gt; if you want to grab your session id you can use.&lt;/span&gt;&lt;br /&gt;&lt;blockquote style=&quot;font-family: courier new;&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_20&quot;&gt;wwctx&lt;/span&gt;_&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_21&quot;&gt;api&lt;/span&gt;.get_&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_22&quot;&gt;sessionid&lt;/span&gt;&lt;/blockquote&gt;</content><link rel='replies' type='application/atom+xml' href='http://danholton.blogspot.com/feeds/7656993642893387928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3631729931140249636/7656993642893387928' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/7656993642893387928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/7656993642893387928'/><link rel='alternate' type='text/html' href='http://danholton.blogspot.com/2010/10/oracle-portal-session-variables.html' title='Oracle Portal Session Variables'/><author><name>Dan</name><uri>http://www.blogger.com/profile/18366929166079080557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3631729931140249636.post-8206105246266239731</id><published>2010-09-05T18:26:00.006+01:00</published><updated>2010-09-05T18:45:52.446+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Circuit"/><category scheme="http://www.blogger.com/atom/ns#" term="Crocodile Clips"/><category scheme="http://www.blogger.com/atom/ns#" term="Yenka"/><title type='text'>Croc Clips</title><content type='html'>&lt;span style=&quot;font-family: arial;&quot;&gt;Was thinking about electrical circuits today (as you do) and the thought look me back to school days where we used an application called Crocodile Clips.  I remember hours of fun being had coming up with random electronic circuits using this application.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;The great news is this program is still around, although now it&#39;s called &quot;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;Yenka&lt;/span&gt;&quot; and it&#39;s free for home use.  So if you have kids that need to use it for school projects or you just want to have a play with it it&#39;s free for use at home.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;Even better it now includes gears &amp;amp; cog, scientific and mathematical features.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;Check it out &lt;a href=&quot;http://www.yenka.com/&quot;&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style=&quot;font-family: arial;&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://www.yenka.com/&quot;&gt;&lt;img style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 248px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWrVPMAC5Zsu5pO6obxTBpfuAsWNx5JImcb3AUqO8X9f5Aa71Mn1UAwLPrgOpYGU6YlSa_IPU-JX3_qepFKl6oDgGVtgtsX7KlC7EA3QdLy2Uru3dvFm3946l644Qw5pUqwyrYZuuK41I/s320/YenkaElectronics.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5513485357583836322&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://danholton.blogspot.com/feeds/8206105246266239731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3631729931140249636/8206105246266239731' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/8206105246266239731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/8206105246266239731'/><link rel='alternate' type='text/html' href='http://danholton.blogspot.com/2010/09/croc-clips.html' title='Croc Clips'/><author><name>Dan</name><uri>http://www.blogger.com/profile/18366929166079080557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWrVPMAC5Zsu5pO6obxTBpfuAsWNx5JImcb3AUqO8X9f5Aa71Mn1UAwLPrgOpYGU6YlSa_IPU-JX3_qepFKl6oDgGVtgtsX7KlC7EA3QdLy2Uru3dvFm3946l644Qw5pUqwyrYZuuK41I/s72-c/YenkaElectronics.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3631729931140249636.post-1190842470655351749</id><published>2010-08-11T16:13:00.007+01:00</published><updated>2010-08-11T17:53:38.638+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Case"/><category scheme="http://www.blogger.com/atom/ns#" term="Conditional"/><category scheme="http://www.blogger.com/atom/ns#" term="Constraint"/><category scheme="http://www.blogger.com/atom/ns#" term="Function"/><category scheme="http://www.blogger.com/atom/ns#" term="Function Based Index"/><category scheme="http://www.blogger.com/atom/ns#" term="Index"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="pl/sql"/><category scheme="http://www.blogger.com/atom/ns#" term="Unique"/><title type='text'>Conditional Unique Constraints</title><content type='html'>&lt;span style=&quot;font-family:arial;&quot;&gt;Well here was the chalenge, I wanted to be able to mark a record as deleted, what is so tricky with that?&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;Well the record has a unique constraint on everything apart from the id column and the delete column, so if I want to insert an identical row again it will throw up a uniqueness exception. If I&#39;ve marked a row as deleted it still wont let me insert the same row again, so you would not be able to insert row 2 in the following example:&lt;/span&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;ID &lt;/span&gt;&lt;/th&gt;&lt;th&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;data &lt;/span&gt;&lt;/th&gt;&lt;th&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;delete &lt;/span&gt;&lt;th&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr&gt;&lt;td&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;1&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;ud1&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;1&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;p&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;&lt;/span&gt;&lt;p&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;tr&gt;&lt;td&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;2&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;ud1&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;p&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;So what you need is a &lt;strong&gt;Function Based Index&lt;/strong&gt;, FBIs have been around since Oracle 8i so they are not a new thing. A normal unique index will allow you to create a unique constraint on multiple columns however a unique contraint using FBIs will only allow one input so you have to concatonate all of the columns together into one string.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;&quot;&gt;Anyway this is some code that should get you up and running, I only used one condition to test the delete column but you could use as many a you want to really:&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;font-size:78%;&quot;&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span style=&quot;font-family:courier new;font-size:100%;&quot;&gt;CREATE UNIQUE INDEX U01&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:courier new;font-size:100%;&quot;&gt;ON [ TABLENAME ] (&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:courier new;font-size:100%;&quot;&gt;CASE WHEN [ CONDITION 1 ]&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:courier new;font-size:100%;&quot;&gt;THEN [ COLUMN 1 ]&amp;#124;&amp;#124;[ COLUMN 2 ]&amp;#124;&amp;#124;[ COLUMN N ]&lt;br /&gt;CASE WHEN [ CONDITION 2 ]&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:courier new;font-size:100%;&quot;&gt;THEN [ COLUMN 1 ]&amp;#124;&amp;#124;[ COLUMN 2 ]&amp;#124;&amp;#124;[ COLUMN N ]&lt;br /&gt;ELSE&lt;br /&gt;NULL;&lt;br /&gt;END);&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://danholton.blogspot.com/feeds/1190842470655351749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3631729931140249636/1190842470655351749' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/1190842470655351749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/1190842470655351749'/><link rel='alternate' type='text/html' href='http://danholton.blogspot.com/2010/08/conditional-unique-constraints.html' title='Conditional Unique Constraints'/><author><name>Dan</name><uri>http://www.blogger.com/profile/18366929166079080557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3631729931140249636.post-4578463027166875653</id><published>2010-08-09T15:15:00.001+01:00</published><updated>2010-08-09T15:30:30.459+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="form"/><category scheme="http://www.blogger.com/atom/ns#" term="htp.formImage"/><category scheme="http://www.blogger.com/atom/ns#" term="image"/><category scheme="http://www.blogger.com/atom/ns#" term="image map"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="pl/sql"/><category scheme="http://www.blogger.com/atom/ns#" term="server side"/><title type='text'>Server Side Image Map</title><content type='html'>&lt;span style=&quot;font-family:arial;&quot;&gt;I found an interesting PL/SQL feature today, when you use the &lt;/span&gt;&lt;pre  style=&quot;font-family:arial;&quot;&gt;&lt;a name=&quot;435672&quot;&gt;&lt;blockquote  style=&quot;font-weight: bold;font-family:courier new;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;htp.formImage&lt;/span&gt;&lt;/blockquote&gt;&lt;/a&gt;&lt;/pre&gt;&lt;div style=&quot;text-align: right; font-family: arial;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;procedure in a PL/SQL form it will return the value of the form image and also the coordinates of the click made on that image, so you get 3 variables returned.&lt;br /&gt;&lt;/div&gt;&lt;a name=&quot;435672&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;ul  style=&quot;font-family:arial;&quot;&gt;&lt;li  style=&quot;font-family:courier new;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;a name=&quot;435672&quot;&gt;&lt;span style=&quot;font-weight: bold;font-family:courier new;&quot; &gt;name&lt;/span&gt; - the value&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li  style=&quot;font-family:courier new;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;a name=&quot;435672&quot;&gt;&lt;span style=&quot;font-weight: bold;font-family:courier new;&quot; &gt;name.x&lt;/span&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt; &lt;/span&gt;- x coordinate&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li  style=&quot;font-family:courier new;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-weight: bold;font-family:courier new;&quot; &gt;name.y&lt;/span&gt; - y coordinate&lt;/span&gt;&lt;a name=&quot;435672&quot;&gt;&lt;/a&gt;&lt;a name=&quot;435672&quot;&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;So you could then use this information to create server side image maps, these could be created dynamically from a database table and updated easily by users.&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://danholton.blogspot.com/feeds/4578463027166875653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3631729931140249636/4578463027166875653' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/4578463027166875653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/4578463027166875653'/><link rel='alternate' type='text/html' href='http://danholton.blogspot.com/2010/08/server-side-image-map.html' title='Server Side Image Map'/><author><name>Dan</name><uri>http://www.blogger.com/profile/18366929166079080557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3631729931140249636.post-7316341256484830700</id><published>2010-08-09T10:50:00.000+01:00</published><updated>2010-08-09T10:59:54.130+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Bristol"/><category scheme="http://www.blogger.com/atom/ns#" term="infographic"/><category scheme="http://www.blogger.com/atom/ns#" term="Pascal Raabe"/><category scheme="http://www.blogger.com/atom/ns#" term="Software Design"/><category scheme="http://www.blogger.com/atom/ns#" term="User Centered Design"/><category scheme="http://www.blogger.com/atom/ns#" term="User Centred Design"/><title type='text'>User Centered Design</title><content type='html'>&lt;span style=&quot;font-family: arial;&quot;&gt;A colegue put me on to this really great infographic &lt;a href=&quot;http://www.paznow.com/ucd/&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;User Centered Design&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;a style=&quot;font-family: arial;&quot; href=&quot;http://www.paznow.com/ucd/&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: arial;&quot;&gt; today.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://www.paznow.com/ucd/&quot;&gt;&lt;img style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 100px; height: 141px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsDVCW4If_NYey-A6p6-8UUlYP94_swHpTVWdqXfTeDdZp5Ts8nlXeaAUze2DNY0IEViWfrNMYDarADzstoFn5ZdFrgvpojqWnLSmbTLcwYOpE_5Qho1-Q3c7g19OGkob6C2TB79yApzk/s320/ucd.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5503345886995515074&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;This was researched and designed by &lt;a href=&quot;http://www.paznow.com&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Pascal Raabe&lt;/span&gt;&lt;/a&gt; right here in Bristol and can be applied to design in general but is definitely applicable to software design.&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://danholton.blogspot.com/feeds/7316341256484830700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3631729931140249636/7316341256484830700' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/7316341256484830700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/7316341256484830700'/><link rel='alternate' type='text/html' href='http://danholton.blogspot.com/2010/08/user-centered-design.html' title='User Centered Design'/><author><name>Dan</name><uri>http://www.blogger.com/profile/18366929166079080557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsDVCW4If_NYey-A6p6-8UUlYP94_swHpTVWdqXfTeDdZp5Ts8nlXeaAUze2DNY0IEViWfrNMYDarADzstoFn5ZdFrgvpojqWnLSmbTLcwYOpE_5Qho1-Q3c7g19OGkob6C2TB79yApzk/s72-c/ucd.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3631729931140249636.post-4327815646889422380</id><published>2010-08-02T17:39:00.000+01:00</published><updated>2010-08-02T17:54:55.987+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="(More Items...)"/><category scheme="http://www.blogger.com/atom/ns#" term="List Views"/><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="More Items"/><category scheme="http://www.blogger.com/atom/ns#" term="SharePoint 2007"/><title type='text'>Sharepoint Lists</title><content type='html'>&lt;blockquote  style=&quot;font-family:arial;&quot;&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;I had observed a bit of inconsistency between &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;SharePoint&lt;/span&gt; 2007 List Views, some were showing &lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote  style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;(More Items...)&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;At the bottom of the list and some were not, why?&lt;/span&gt;&lt;span style=&quot;font-family:arial;&quot;&gt; Well it turned out to be stupidly simple, all you had to do is &lt;/span&gt;&lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_1&quot;  style=&quot;font-family:arial;&quot;&gt;initially&lt;/span&gt;&lt;span style=&quot;font-family:arial;&quot;&gt; switch your list view to&lt;/span&gt;&lt;br /&gt;&lt;blockquote face=&quot;arial&quot;&gt;&lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt; &amp;#60; summary &amp;#62; &lt;/span&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;This will initialy remove all the columns that you had in your view, click the &lt;/span&gt;&lt;span style=&quot;font-weight: bold;font-family:arial;&quot; &gt;Edit the current view&lt;/span&gt;&lt;span style=&quot;font-family:arial;&quot;&gt; link and add those columns back in again and hit apply.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;Personaly I think it&#39;s a better option to set up a view that allows you to click through to the next set of records in batches of the specified size, but, if you NEED a &lt;/span&gt;&lt;span style=&quot;font-weight: bold;font-family:arial;&quot; &gt;(More Items...)&lt;/span&gt;&lt;span style=&quot;font-family:arial;&quot;&gt; link that is how you would do it.&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://danholton.blogspot.com/feeds/4327815646889422380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3631729931140249636/4327815646889422380' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/4327815646889422380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/4327815646889422380'/><link rel='alternate' type='text/html' href='http://danholton.blogspot.com/2010/08/sharepoint-lists.html' title='Sharepoint Lists'/><author><name>Dan</name><uri>http://www.blogger.com/profile/18366929166079080557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3631729931140249636.post-1224952252008482874</id><published>2010-07-14T11:24:00.000+01:00</published><updated>2010-07-14T11:50:50.412+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Codec"/><category scheme="http://www.blogger.com/atom/ns#" term="Conversion"/><category scheme="http://www.blogger.com/atom/ns#" term="Convert"/><category scheme="http://www.blogger.com/atom/ns#" term="FFmpeg"/><category scheme="http://www.blogger.com/atom/ns#" term="GNU"/><category scheme="http://www.blogger.com/atom/ns#" term="Video"/><category scheme="http://www.blogger.com/atom/ns#" term="WinFF"/><title type='text'>Video Conversion</title><content type='html'>&lt;span style=&quot;font-family:arial;&quot;&gt;I found a great GNU (&lt;/span&gt;&lt;a style=&quot;font-family: arial;&quot; href=&quot;http://www.gnu.org/philosophy/free-software-for-freedom.html&quot;&gt;Free but not Open Source&lt;/a&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;) application today for converting video called &lt;a href=&quot;http://winff.org/&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;WinFF&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you are in a situation where you are limited by the format or &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;codec&lt;/span&gt; that your video uses this might help you convert to the format you require.&lt;/span&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;It is fairly straight forward and &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;basically&lt;/span&gt; &lt;/span&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;provides a graphical interface to &lt;/span&gt;&lt;a style=&quot;font-family: arial;&quot; href=&quot;http://ffmpeg.org/&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;FFmpeg&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;.  Check it out &lt;/span&gt;&lt;a style=&quot;font-family: arial;&quot; href=&quot;http://winff.org/&quot;&gt;here&lt;/a&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://winff.org/&quot;&gt;&lt;img style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 100px; height: 70px;&quot; src=&quot;http://winff.org/images/winff.gif&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://danholton.blogspot.com/feeds/1224952252008482874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3631729931140249636/1224952252008482874' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/1224952252008482874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/1224952252008482874'/><link rel='alternate' type='text/html' href='http://danholton.blogspot.com/2010/07/video-conversion.html' title='Video Conversion'/><author><name>Dan</name><uri>http://www.blogger.com/profile/18366929166079080557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3631729931140249636.post-2569695486234594144</id><published>2010-07-13T17:48:00.000+01:00</published><updated>2010-07-13T18:04:09.052+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Data Interchange Format"/><category scheme="http://www.blogger.com/atom/ns#" term="DIF"/><category scheme="http://www.blogger.com/atom/ns#" term="Excel"/><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="MIME"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="OWA_UTIL"/><category scheme="http://www.blogger.com/atom/ns#" term="pl/sql"/><category scheme="http://www.blogger.com/atom/ns#" term="XLS"/><title type='text'>Mime-ing Excel</title><content type='html'>&lt;span style=&quot;font-family: arial;&quot;&gt;I&#39;m currently overhauling some old PL/&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;SQL&lt;/span&gt; code, tidying up almost a decade of comments and on the fly changes.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;Part of this included Excel generation from PL/&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;SQL&lt;/span&gt;, in the past in my own code I&#39;ve headed down the route of using XML Spreadsheets however one of the previous developers managed to format the data into a proper &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;XSL&lt;/span&gt; &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;formatted&lt;/span&gt; spreadsheet using &lt;/span&gt;&lt;a style=&quot;font-family: arial;&quot; href=&quot;http://en.wikipedia.org/wiki/Data_Interchange_Format&quot;&gt;Data Interchange Format&lt;/a&gt;&lt;span style=&quot;font-family: arial;&quot;&gt; (&lt;/span&gt;&lt;a style=&quot;font-family: arial;&quot; href=&quot;http://en.wikipedia.org/wiki/Data_Interchange_Format&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_4&quot;&gt;DIF&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;One of the issues I was having though is the generated file was being named after the PL/&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_5&quot;&gt;SQL&lt;/span&gt; package and process name (package.process), it was missing all the nice MIME information.  So for reference this is how you should be structuring your basic Excel MIME header in PL/&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_6&quot;&gt;SQL&lt;/span&gt;:&lt;/span&gt;&lt;br /&gt;&lt;blockquote style=&quot;font-family: courier new;&quot;&gt;   &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_7&quot;&gt;owa&lt;/span&gt;_&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_8&quot;&gt;util&lt;/span&gt;.&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_9&quot;&gt;showpage&lt;/span&gt;;&lt;br /&gt;   owa_util.mime_header(&#39;application/excel&#39;,False);&lt;br /&gt;   &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_10&quot;&gt;htp&lt;/span&gt;.print(&#39;Content-Disposition:attachment;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_11&quot;&gt;filename&lt;/span&gt;=&quot;NAME_HERE.&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_12&quot;&gt;XLS&lt;/span&gt;&quot;&#39;);  &lt;br /&gt;   &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_13&quot;&gt;owa&lt;/span&gt;_&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_14&quot;&gt;util&lt;/span&gt;.http_header_close;&lt;/blockquote&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;Line 2: Mime header has False defined so the header isn&#39;t closed&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;Line 3: Defines the &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_15&quot;&gt;file name&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;Line 4: Closes off the header, important because you left it open on line 2&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://danholton.blogspot.com/feeds/2569695486234594144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3631729931140249636/2569695486234594144' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/2569695486234594144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/2569695486234594144'/><link rel='alternate' type='text/html' href='http://danholton.blogspot.com/2010/07/mime-ing-excel.html' title='Mime-ing Excel'/><author><name>Dan</name><uri>http://www.blogger.com/profile/18366929166079080557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3631729931140249636.post-9095591431149301551</id><published>2010-07-05T14:43:00.000+01:00</published><updated>2010-07-05T14:55:09.155+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="desktop sharing"/><category scheme="http://www.blogger.com/atom/ns#" term="FLOSS"/><category scheme="http://www.blogger.com/atom/ns#" term="keyboard"/><category scheme="http://www.blogger.com/atom/ns#" term="KVM"/><category scheme="http://www.blogger.com/atom/ns#" term="mac"/><category scheme="http://www.blogger.com/atom/ns#" term="mouse"/><category scheme="http://www.blogger.com/atom/ns#" term="Network"/><category scheme="http://www.blogger.com/atom/ns#" term="open source"/><category scheme="http://www.blogger.com/atom/ns#" term="synergy"/><category scheme="http://www.blogger.com/atom/ns#" term="synergy2"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows"/><title type='text'></title><content type='html'>&lt;span style=&quot;font-family:arial;&quot;&gt;Many years ago I had a bit of software from a magazine cover disk that allowed you to share your mouse and keyboard between multiple machines &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;across&lt;/span&gt; a network.  It was unfortunately a limited trial and I have not used it for ages.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;Prompted&lt;/span&gt; by a &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;friend&#39;s&lt;/span&gt; tweet to day I tried to find this software again,  but instead I found a &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;piece&lt;/span&gt; of software called &lt;/span&gt;&lt;a style=&quot;font-family: arial;&quot; href=&quot;http://synergy2.sourceforge.net/&quot;&gt;Synergy2&lt;/a&gt;&lt;span style=&quot;font-family:arial;&quot;&gt; which does the same thing and by the looks of it a bit more with clipboard changing, nice.&lt;/span&gt;  Plus it&#39;s open source, free!&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;If anyone has had any experience of this software then leave your experiences of it bellow.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style=&quot;font-family: arial;&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://synergy2.sourceforge.net/index.html&quot;&gt;&lt;img style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 216px; height: 77px;&quot; src=&quot;http://synergy2.sourceforge.net/images/logo.gif&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://danholton.blogspot.com/feeds/9095591431149301551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3631729931140249636/9095591431149301551' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/9095591431149301551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/9095591431149301551'/><link rel='alternate' type='text/html' href='http://danholton.blogspot.com/2010/07/many-years-ago-i-had-bit-of-software.html' title=''/><author><name>Dan</name><uri>http://www.blogger.com/profile/18366929166079080557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3631729931140249636.post-1556306135253226807</id><published>2010-06-30T15:27:00.000+01:00</published><updated>2010-07-01T18:19:21.340+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="BASIC"/><category scheme="http://www.blogger.com/atom/ns#" term="iPhone"/><category scheme="http://www.blogger.com/atom/ns#" term="ZX Nostalgia"/><category scheme="http://www.blogger.com/atom/ns#" term="ZX Spectrum"/><title type='text'>ZX: All The Colours (Colors?) of the Rainbow</title><content type='html'>&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;It is probably this machine (&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;ZX&lt;/span&gt; Spectrum+, see photo) that started me on the rocky road to working in IT. Many an hour was spent loading programs from tape, the &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;reassuring&lt;/span&gt; electronic &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;screech&lt;/span&gt; still rings in my ears (I should get that checked), the multicoloured loading &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;pattern&lt;/span&gt; is etched in my memory and the electronic attempt at the sound of a motor as I played F1 simulators.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;I spent many an hour coding in BASIC, typing in reams of code from books to be &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_4&quot;&gt;disappointed&lt;/span&gt; by the resulting game. We all have to start somewhere but .NET kids nowadays don&#39;t know the half of it!&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;Many computers followed, BBC Micro, Acorn, Atari, 286, 386, 486, &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_5&quot;&gt;Cyrix&lt;/span&gt; 586 and then they get a bit boring and modern for my liking.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;Great news for iPhone users though, for the &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_6&quot;&gt;princely&lt;/span&gt; sum of £0.59 you can get a &lt;a href=&quot;http://toucharcade.com/2010/06/26/zx-nostalgia-brings-just-that-to-the-app-store/&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_7&quot;&gt;ZX&lt;/span&gt; Nostalgia&lt;/a&gt; app and play some classic games so check it out.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:Arial;font-size:85%;&quot;&gt;That is my inner super geek purged for a while.&lt;/span&gt;&lt;br /&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/File:ZX_Spectrum%2B.jpg&quot;&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;&lt;img id=&quot;BLOGGER_PHOTO_ID_5488983917271992690&quot; style=&quot;DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 189px; TEXT-ALIGN: center&quot; alt=&quot;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoT_vSxHYSqwLHC9MKf3BJnglcSGOPJcTYLfEkvlwTfsx0pBq1PemzktHdcpkEMK3jCfpQdrqMkKp8rJMfkvm6AwiIQu-rhC9o1_Sjn9L0d2l9NXY8jarWgELoB74KN0Vik7LsPOPDDJU/s320/ZX_Spectrum%252B.jpg&quot; border=&quot;0&quot; /&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family:arial;font-size:85%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://danholton.blogspot.com/feeds/1556306135253226807/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3631729931140249636/1556306135253226807' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/1556306135253226807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/1556306135253226807'/><link rel='alternate' type='text/html' href='http://danholton.blogspot.com/2010/06/zx-all-colours-colors-of-rainbow.html' title='ZX: All The Colours (Colors?) of the Rainbow'/><author><name>Dan</name><uri>http://www.blogger.com/profile/18366929166079080557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoT_vSxHYSqwLHC9MKf3BJnglcSGOPJcTYLfEkvlwTfsx0pBq1PemzktHdcpkEMK3jCfpQdrqMkKp8rJMfkvm6AwiIQu-rhC9o1_Sjn9L0d2l9NXY8jarWgELoB74KN0Vik7LsPOPDDJU/s72-c/ZX_Spectrum%252B.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3631729931140249636.post-3077828309844709628</id><published>2010-06-25T13:39:00.000+01:00</published><updated>2010-07-05T14:53:22.308+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="blob"/><category scheme="http://www.blogger.com/atom/ns#" term="clob"/><category scheme="http://www.blogger.com/atom/ns#" term="close"/><category scheme="http://www.blogger.com/atom/ns#" term="createtemporary"/><category scheme="http://www.blogger.com/atom/ns#" term="dbms_lob"/><category scheme="http://www.blogger.com/atom/ns#" term="freetemporary"/><category scheme="http://www.blogger.com/atom/ns#" term="lob"/><category scheme="http://www.blogger.com/atom/ns#" term="lob_readwrite"/><category scheme="http://www.blogger.com/atom/ns#" term="numeric or value error"/><category scheme="http://www.blogger.com/atom/ns#" term="ORA-06502"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="pl/sql"/><category scheme="http://www.blogger.com/atom/ns#" term="writeappend"/><title type='text'>LOBs the wrong and the wright way</title><content type='html'>&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;I&#39;ve been troubleshooting an &lt;/span&gt;&lt;span style=&quot;font-weight: bold; font-style: italic; color: rgb(0, 0, 0);&quot;&gt;ORA-06502: PL/SQL: numeric or value error&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);font-family:Times New Roman;font-size:100%;&quot;  &gt;&lt;span style=&quot;font-family:arial;&quot;&gt; although there is an official explanation of what causes this problem it is all to often not obvious where to look to resolve it, no line numbers or anything.&lt;br /&gt;&lt;br /&gt;Although clobs can in theory store gigs and gigs of data if you dont handle them correctly Oracle will throw up an error long before you even get to 1 gig of data. Secondly if you do not do things correctly then Oracle will re-index a clob every time you append data to it, this uses up unnessary processing power on the database server.&lt;br /&gt;&lt;br /&gt;So if you are writing clobs make sure you&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;ol  style=&quot;font-family:arial;&quot;&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(0, 0, 0);font-family:arial;font-size:100%;&quot;  &gt;CREATE TEMP CLOB&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(0, 0, 0);font-family:arial;font-size:100%;&quot;  &gt;OPEN CLOB&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(0, 0, 0);font-family:arial;font-size:100%;&quot;  &gt;WRITE/APPEND CLOB&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(0, 0, 0);font-family:arial;font-size:100%;&quot;  &gt;CLOSE CLOB&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;color: rgb(0, 0, 0);font-family:arial;font-size:100%;&quot;  &gt;FREE CLOB&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;The code might look a bit like this:&lt;/span&gt;&lt;br /&gt;&lt;blockquote  style=&quot;font-family:courier new;&quot;&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;DECLARE&lt;br /&gt;&lt;br /&gt;V_CLOB CLOB;&lt;br /&gt;V_IN VARCHAR2(10) := &#39;TEXT IN&#39;;&lt;br /&gt;V_IN_LEN NUMBER;&lt;br /&gt;&lt;br /&gt;BEGIN&lt;br /&gt;&lt;br /&gt;--Creates clob or blob in temp tablespace&lt;br /&gt;dbms_lob.createtemporary(V_CLOB, TRUE);&lt;br /&gt;&lt;br /&gt;--opens the clob in read/write mode&lt;br /&gt;dbms_lob.open(V_CLOB, dbms_lob.lob_readwrite);&lt;br /&gt;&lt;br /&gt;--if you have lots of data to append you can use a loop here&lt;br /&gt;&lt;br /&gt;--get lenth off data to add to clob&lt;br /&gt;V_IN_LEN := LENGTH(V_IN);&lt;br /&gt;&lt;br /&gt;--use writeappend to add text to the clob&lt;br /&gt;dbms_lob.writeappend(V_CLOB, V_IN_LEN, V_IN);&lt;br /&gt;&lt;br /&gt;--if you were using a loop you would probably end it here&lt;br /&gt;&lt;br /&gt;--close clob&lt;br /&gt;dbms_lob.close(V_CLOB);&lt;br /&gt;&lt;br /&gt;--although it&#39;s closed you can still access the clob here&lt;br /&gt;&lt;br /&gt;dbms_output.put_line(V_CLOB);&lt;br /&gt;&lt;br /&gt;--when you dont need the clob data anymore ditch it!&lt;br /&gt;DBMS_LOB.FREETEMPORARY(V_CLOB);&lt;br /&gt;&lt;br /&gt;END;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 0, 0);font-family:Times New Roman;font-size:100%;&quot;  &gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://danholton.blogspot.com/feeds/3077828309844709628/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3631729931140249636/3077828309844709628' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/3077828309844709628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/3077828309844709628'/><link rel='alternate' type='text/html' href='http://danholton.blogspot.com/2010/06/lobs-wrong-and-wright-way.html' title='LOBs the wrong and the wright way'/><author><name>Dan</name><uri>http://www.blogger.com/profile/18366929166079080557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3631729931140249636.post-586943501794696396</id><published>2010-06-17T10:37:00.000+01:00</published><updated>2010-06-17T10:46:41.557+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="date"/><category scheme="http://www.blogger.com/atom/ns#" term="Escape"/><category scheme="http://www.blogger.com/atom/ns#" term="pl/sql"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL"/><category scheme="http://www.blogger.com/atom/ns#" term="sysdate"/><category scheme="http://www.blogger.com/atom/ns#" term="TO_CHAR"/><title type='text'>ESCAPE!</title><content type='html'>&lt;span style=&quot;font-family:arial;&quot;&gt;Just a quick and simple tip today.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;If you are using TO_CHAR in PL/&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;SQL&lt;/span&gt; or Oracle &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;SQL&lt;/span&gt; you can escape any non-&lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;formatting&lt;/span&gt; characters by surrounding them in double quotes.  For some reason they don&#39;t mention this on &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;PSOUG&lt;/span&gt; or &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_4&quot;&gt;techonthenet&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;Try it out with this &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_5&quot;&gt;SQL&lt;/span&gt; statement:&lt;/span&gt;&lt;br /&gt;&lt;pre class=&quot;prettyprint&quot;&gt;&lt;blockquote&gt;&lt;code&gt;&lt;span style=&quot;font-weight: bold;&quot; class=&quot;pln&quot;&gt;SELECT TO_CHAR&lt;/span&gt;&lt;span style=&quot;font-weight: bold;&quot; class=&quot;pun&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;font-weight: bold;&quot; class=&quot;pln&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_6&quot;&gt;SYSDATE&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-weight: bold;&quot; class=&quot;pun&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;font-weight: bold;&quot; class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-weight: bold;&quot; class=&quot;str&quot;&gt;&#39;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_7&quot;&gt;YYYY&lt;/span&gt;-MM-DD&quot;T&quot;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_8&quot;&gt;HH&lt;/span&gt;:MM:SS&quot;Z&quot;&#39;&lt;/span&gt;&lt;span style=&quot;font-weight: bold;&quot; class=&quot;pun&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt; FROM DUAL&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/blockquote&gt;&lt;code&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://danholton.blogspot.com/feeds/586943501794696396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3631729931140249636/586943501794696396' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/586943501794696396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/586943501794696396'/><link rel='alternate' type='text/html' href='http://danholton.blogspot.com/2010/06/escape.html' title='ESCAPE!'/><author><name>Dan</name><uri>http://www.blogger.com/profile/18366929166079080557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3631729931140249636.post-2080696571501358170</id><published>2010-06-15T12:49:00.000+01:00</published><updated>2010-07-01T18:21:46.646+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Codeplex"/><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft Public License"/><category scheme="http://www.blogger.com/atom/ns#" term="XML"/><category scheme="http://www.blogger.com/atom/ns#" term="XPath"/><category scheme="http://www.blogger.com/atom/ns#" term="XPath Visulizer"/><title type='text'>XPath Visualizer</title><content type='html'>&lt;span style=&quot;font-family:arial;&quot;&gt;Having been doing a bit of work with XML and &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;XPATH&lt;/span&gt; recently I&#39;ve been using the &lt;/span&gt;&lt;span style=&quot;FONT-WEIGHT: bold;font-family:arial;&quot; &gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;XPath&lt;/span&gt; &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;Visualizer&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family:arial;&quot;&gt; tool which has been a bit of a life saver.&lt;br /&gt;&lt;br /&gt;It &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;allows&lt;/span&gt; you to test your &lt;span style=&quot;FONT-WEIGHT: bold&quot;&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_4&quot;&gt;XPath&lt;/span&gt; &lt;/span&gt;statements against any given XML and highlights the XML that would be selected, very simple but very handy.&lt;br /&gt;&lt;br /&gt;Check it out here: &lt;a href=&quot;http://xpathvisualizer.codeplex.com/&quot;&gt;http://xpathvisualizer.codeplex.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://xpathvisualizer.codeplex.com/&quot;&gt;&lt;img style=&quot;DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 300px; CURSOR: pointer; HEIGHT: 245px; TEXT-ALIGN: center&quot; alt=&quot;&quot; src=&quot;http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=XPathVisualizer&amp;amp;DownloadId=117733&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://danholton.blogspot.com/feeds/2080696571501358170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3631729931140249636/2080696571501358170' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/2080696571501358170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/2080696571501358170'/><link rel='alternate' type='text/html' href='http://danholton.blogspot.com/2010/06/xpath-visualizer.html' title='XPath Visualizer'/><author><name>Dan</name><uri>http://www.blogger.com/profile/18366929166079080557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3631729931140249636.post-8473113478890476226</id><published>2010-06-08T08:31:00.000+01:00</published><updated>2010-07-05T14:53:42.659+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="eviware"/><category scheme="http://www.blogger.com/atom/ns#" term="FLOSS"/><category scheme="http://www.blogger.com/atom/ns#" term="open source"/><category scheme="http://www.blogger.com/atom/ns#" term="SOA"/><category scheme="http://www.blogger.com/atom/ns#" term="SOAP"/><category scheme="http://www.blogger.com/atom/ns#" term="soapUI"/><title type='text'>SOAP on a rope</title><content type='html'>&lt;span style=&quot;font-family:arial;&quot;&gt;I&#39;m doing some work with SOAP requests at the moment and I wanted a program to test the web services without having to use my own code. There were not that many offerings out there but soap&lt;/span&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;  style=&quot;font-family:arial;&quot;&gt;UI&lt;/span&gt;&lt;span style=&quot;font-family:arial;&quot;&gt; seemed to fit the bill.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;It comes in an open source FREE flavour and a pro version but the open source version is pretty good.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://www.soapui.org/&quot;&gt;&lt;img style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 398px; height: 54px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5bUBaEGlkhBPzxpVyTrhYDdZM7pCRr9qpVPcn-ZSu_Zvri_RYEwCoR1V6i9FKRq_2Cp0t5BmFy-anVyJ0DMZ_ZE_QaqJfLAju5re2CQm2HHcZ4pfKwiMB0xd3NhPZBKO7ucSF9zhSHe4/s320/Soapui-logo.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5480305716962962610&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://danholton.blogspot.com/feeds/8473113478890476226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3631729931140249636/8473113478890476226' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/8473113478890476226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/8473113478890476226'/><link rel='alternate' type='text/html' href='http://danholton.blogspot.com/2010/06/soap-on-rope.html' title='SOAP on a rope'/><author><name>Dan</name><uri>http://www.blogger.com/profile/18366929166079080557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5bUBaEGlkhBPzxpVyTrhYDdZM7pCRr9qpVPcn-ZSu_Zvri_RYEwCoR1V6i9FKRq_2Cp0t5BmFy-anVyJ0DMZ_ZE_QaqJfLAju5re2CQm2HHcZ4pfKwiMB0xd3NhPZBKO7ucSF9zhSHe4/s72-c/Soapui-logo.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3631729931140249636.post-8794964661678290725</id><published>2010-05-25T15:17:00.000+01:00</published><updated>2010-05-25T15:29:05.327+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="moveto"/><category scheme="http://www.blogger.com/atom/ns#" term="permision denied"/><category scheme="http://www.blogger.com/atom/ns#" term="resize"/><category scheme="http://www.blogger.com/atom/ns#" term="resizeto"/><category scheme="http://www.blogger.com/atom/ns#" term="window.open"/><title type='text'>Javascript Window Woes!</title><content type='html'>&lt;span style=&quot;font-family:arial;&quot;&gt;I&#39;m trying to get windows to &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;resize&lt;/span&gt; in Javascript, this &lt;/span&gt;&lt;span style=&quot;font-style: italic;font-family:arial;&quot; &gt;sounds &lt;/span&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;simple however it turns out to be a pain in the backside.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;I am opening a window using window.open() and then trying to &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;resize&lt;/span&gt; it and reposition it using &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;resizeto&lt;/span&gt;() and &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;moveto&lt;/span&gt;(), this is fine in &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_4&quot;&gt;FireFox&lt;/span&gt; but in Internet Explorer I hit issues.  &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_5&quot;&gt;Because&lt;/span&gt; the page in the child window that I open is hosted on a different domain than the parent page IE hits you with a &lt;/span&gt;&lt;span style=&quot;font-weight: bold; font-style: italic;font-family:arial;&quot; &gt;&lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_6&quot;&gt;Permission&lt;/span&gt; Denied&lt;/span&gt;&lt;span style=&quot;font-family:arial;&quot;&gt; error.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;For now I have got around it by defining the height and width in the window.open() command but this is far from perfect as it does not guarantee the position of the browser on the screen.&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://danholton.blogspot.com/feeds/8794964661678290725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3631729931140249636/8794964661678290725' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/8794964661678290725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/8794964661678290725'/><link rel='alternate' type='text/html' href='http://danholton.blogspot.com/2010/05/javascript-window-woes.html' title='Javascript Window Woes!'/><author><name>Dan</name><uri>http://www.blogger.com/profile/18366929166079080557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3631729931140249636.post-6357223580095613859</id><published>2010-05-19T14:51:00.000+01:00</published><updated>2010-05-19T15:02:15.363+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="2010"/><category scheme="http://www.blogger.com/atom/ns#" term="Callendar"/><category scheme="http://www.blogger.com/atom/ns#" term="FIFA"/><category scheme="http://www.blogger.com/atom/ns#" term="Fixtures"/><category scheme="http://www.blogger.com/atom/ns#" term="Football"/><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><category scheme="http://www.blogger.com/atom/ns#" term="Soccer"/><category scheme="http://www.blogger.com/atom/ns#" term="World Cup"/><title type='text'></title><content type='html'>&lt;span style=&quot;font-family: arial;font-family:arial;&quot; &gt;You can add your &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;country&#39;s&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;FIFA&lt;/span&gt; World Cup 2010 fixtures to your Google Calendar by:&lt;/span&gt;&lt;br /&gt;&lt;ol style=&quot;font-family: arial;font-family:arial;&quot; &gt;&lt;li&gt;Clicking &lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;Add &lt;/span&gt;under&lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt; Other Calendars&lt;/span&gt; on the left hand side&lt;/li&gt;&lt;li&gt;Select &lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;Browse Interesting Calendars&lt;/span&gt;&lt;/li&gt;&lt;li  style=&quot;font-family:arial;&quot;&gt;Select the Sports tab&lt;/li&gt;&lt;li face=&quot;arial&quot;&gt;Select Soccer&lt;/li&gt;&lt;li face=&quot;arial&quot;&gt;Select &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;FIFA&lt;/span&gt; World Cup&lt;/li&gt;&lt;li&gt;Click Subscribe next to you &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;preferred&lt;/span&gt; teams&lt;/li&gt;&lt;/ol&gt;&lt;span style=&quot;font-family: arial;font-family:arial;&quot; &gt;If you want to add all fixtures then Ryan Cullen has done the hard work for you (&lt;a href=&quot;http://blog.artesea.co.uk/2009/12/world-cup-2010-google-calendar.html&quot;&gt;http://blog.artesea.co.uk/2009/12/world-cup-2010-google-calendar.html&lt;/a&gt;) , you can click the &lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;+ Google Callendar&lt;/span&gt; link at the bottom of his callendar to add it to yours.&lt;/span&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://danholton.blogspot.com/feeds/6357223580095613859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3631729931140249636/6357223580095613859' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/6357223580095613859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/6357223580095613859'/><link rel='alternate' type='text/html' href='http://danholton.blogspot.com/2010/05/you-can-add-you-countrys-fifa-world-cup.html' title=''/><author><name>Dan</name><uri>http://www.blogger.com/profile/18366929166079080557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3631729931140249636.post-3431506951068449275</id><published>2010-05-02T19:21:00.000+01:00</published><updated>2010-05-02T20:00:22.627+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="10g"/><category scheme="http://www.blogger.com/atom/ns#" term="11g"/><category scheme="http://www.blogger.com/atom/ns#" term="Cross Tab"/><category scheme="http://www.blogger.com/atom/ns#" term="EXECUTE IMMEDIATE"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="Pivot"/><category scheme="http://www.blogger.com/atom/ns#" term="Pivot Table"/><category scheme="http://www.blogger.com/atom/ns#" term="pl/sql"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL"/><category scheme="http://www.blogger.com/atom/ns#" term="Table"/><title type='text'></title><content type='html'>&lt;span style=&quot;font-family:courier new;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;Oracle have bought in the much needed PIVOT feature in their 11g database to make our lives much easier, for those of us still living in the past it is still &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;possible&lt;/span&gt; to &quot;pivot&quot; your data.&lt;br /&gt;&lt;br /&gt;Take the following data for example recording (rare) bird sightings:&lt;blockquote&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;Id Bird   Sighting&lt;br /&gt;===================&lt;br /&gt;1  Pigeon 01-JUN-10&lt;br /&gt;2  Gull   01-JUN-10&lt;br /&gt;3  Crow   02-JUN-10&lt;br /&gt;4  Gull   02-JUN-10&lt;br /&gt;5  Gull   02-JUN-10&lt;/span&gt;&lt;/blockquote&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;To pivot this data you need to use DECODE. Decode allows to take a value, compare it and if it matches the value replace it with another value (check out &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;PSOUG&lt;/span&gt;.org for a better example).&lt;br /&gt;&lt;blockquote style=&quot;font-family: courier new;&quot;&gt;DECODE(&lt;span style=&quot;font-style: italic;&quot;&gt;input&lt;/span&gt;,&lt;span style=&quot;font-style: italic;&quot;&gt;compare&lt;/span&gt;,&lt;span style=&quot;font-style: italic;&quot;&gt;replace&lt;/span&gt;,&lt;span style=&quot;font-style: italic;&quot;&gt;else&lt;/span&gt;)&lt;/blockquote&gt;The following &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;SQL&lt;/span&gt; will take the data and give you the bird names &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;across&lt;/span&gt; the top and dates down the side:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;blockquote style=&quot;font-family: courier new;&quot;&gt;SELECT Sighting,&lt;br /&gt;SUM(DECODE(Bird,&#39;Pigeon&#39;,1,0)) Pigeon,&lt;br /&gt;SUM(DECODE(Bird,&#39;Gull&#39;,1,0)) Gull,&lt;br /&gt;SUM(DECODE(Bird,&#39;Crow&#39;,1,0)) Crow&lt;br /&gt;FROM Birds&lt;br /&gt;GROUP BY Sighting&lt;/blockquote&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;And you should get something like this:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;Sighting  Pigeon Gull Crow&lt;br /&gt;==========================&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;01-JUN-10 1      1    0&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;02-JUN-10 0      2    1&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;This is fine however you need to &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_4&quot;&gt;hard code&lt;/span&gt; all the bird names, this is not very easy to maintain in the long run.  In this example to way to get over this is to have the &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_5&quot;&gt;SQL&lt;/span&gt; query stored as a view, if you have a table containing the bird names you can then use a trigger to rewrite the view every time a bird is added to the table.&lt;br /&gt;&lt;br /&gt;To run a create or replace view from within a PL/&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_6&quot;&gt;SQL&lt;/span&gt; trigger you can use the EXECUTE IMMEDIATE command.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://danholton.blogspot.com/feeds/3431506951068449275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3631729931140249636/3431506951068449275' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/3431506951068449275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/3431506951068449275'/><link rel='alternate' type='text/html' href='http://danholton.blogspot.com/2010/05/oracle-have-bought-in-much-needed-pivot.html' title=''/><author><name>Dan</name><uri>http://www.blogger.com/profile/18366929166079080557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3631729931140249636.post-2135339220620740300</id><published>2010-05-01T22:05:00.000+01:00</published><updated>2010-05-01T22:22:07.842+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Device"/><category scheme="http://www.blogger.com/atom/ns#" term="Mix"/><category scheme="http://www.blogger.com/atom/ns#" term="Recording"/><category scheme="http://www.blogger.com/atom/ns#" term="Sound Card"/><category scheme="http://www.blogger.com/atom/ns#" term="Speaker"/><category scheme="http://www.blogger.com/atom/ns#" term="Stereo"/><category scheme="http://www.blogger.com/atom/ns#" term="Stereo Mix"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows 7"/><title type='text'></title><content type='html'>&lt;span style=&quot;font-family:arial;&quot;&gt;Those sneaky people at Microsoft have been trying to hide some of the sound recording functionality in Windows 7.&lt;br /&gt;&lt;br /&gt;If you want to record the &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;stereo&lt;/span&gt; mix from your sound card you &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;might&lt;/span&gt; find that it has been disabled by default, &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;to enable&lt;/span&gt; it do the following.&lt;br /&gt;&lt;br /&gt;1. Right click on the speaker and click &lt;span style=&quot;font-style: italic;&quot;&gt;Recording Devices&lt;/span&gt;.&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;a onblur=&quot;try  {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio1Qq8yNYEui7uxC9hyphenhyphenXl0GL5EK0r9k0YFnkLvHuVh6VaYpO74Q1BBQJlgDhBqng2akCFtDofNi09_JXNd67wfnLt37dTVaxVjFXecRaZiW9V8nVt5Y_IFWAi7cte7uU4yisehN0Pk-Qs/s1600/recordingdev1.jpg&quot;&gt;&lt;img style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 214px; height: 151px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio1Qq8yNYEui7uxC9hyphenhyphenXl0GL5EK0r9k0YFnkLvHuVh6VaYpO74Q1BBQJlgDhBqng2akCFtDofNi09_JXNd67wfnLt37dTVaxVjFXecRaZiW9V8nVt5Y_IFWAi7cte7uU4yisehN0Pk-Qs/s320/recordingdev1.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5466411220063215522&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;2. Right click within this window and select Show &lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;Disabled&lt;/span&gt; Devices.&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;a onblur=&quot;try  {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqC2AvTT2OCpe8EnnT5HsZbpgu1u8PpXEkpbtbM3oN13Ns7vsBTZGocfm7l7PT5FE06MBCJWX4SpEmqlk3tO05oFsU-TYkaUbqUTSPJ77LzcoXJozBbOswQPNZmpr6fK56LMdahLOAWms/s1600/recordingdev1.jpg&quot;&gt;&lt;img style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 192px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqC2AvTT2OCpe8EnnT5HsZbpgu1u8PpXEkpbtbM3oN13Ns7vsBTZGocfm7l7PT5FE06MBCJWX4SpEmqlk3tO05oFsU-TYkaUbqUTSPJ77LzcoXJozBbOswQPNZmpr6fK56LMdahLOAWms/s320/recordingdev1.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5466412716316084978&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;3. You should then be able to see a &lt;span style=&quot;font-style: italic;&quot;&gt;&lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_4&quot;&gt;Stereo&lt;/span&gt; Mix&lt;/span&gt; icon, right click on this and select enable.&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;a onblur=&quot;try  {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpdjcEQ25nilGrEhVuBwIrQR1fFfEKbJoNRlzOoxz0FW0hJThCZapCcF6H0zpNo87frTg3-nunMpGrryhRHbfes6ggsIAOdgbsTGpQ9fOv0_cJs1SfsFoQw1nmEt8MfScOK2ahr-Jc0z4/s1600/recordingdev1.jpg&quot;&gt;&lt;img style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 114px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpdjcEQ25nilGrEhVuBwIrQR1fFfEKbJoNRlzOoxz0FW0hJThCZapCcF6H0zpNo87frTg3-nunMpGrryhRHbfes6ggsIAOdgbsTGpQ9fOv0_cJs1SfsFoQw1nmEt8MfScOK2ahr-Jc0z4/s320/recordingdev1.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5466414013688402546&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;You should now be able to use your stereo mix as a recording source.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://danholton.blogspot.com/feeds/2135339220620740300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3631729931140249636/2135339220620740300' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/2135339220620740300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/2135339220620740300'/><link rel='alternate' type='text/html' href='http://danholton.blogspot.com/2010/05/those-sneaky-people-at-microsoft-have.html' title=''/><author><name>Dan</name><uri>http://www.blogger.com/profile/18366929166079080557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEio1Qq8yNYEui7uxC9hyphenhyphenXl0GL5EK0r9k0YFnkLvHuVh6VaYpO74Q1BBQJlgDhBqng2akCFtDofNi09_JXNd67wfnLt37dTVaxVjFXecRaZiW9V8nVt5Y_IFWAi7cte7uU4yisehN0Pk-Qs/s72-c/recordingdev1.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3631729931140249636.post-1253233405497615479</id><published>2010-04-30T10:45:00.000+01:00</published><updated>2010-04-30T11:01:27.716+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CBT"/><category scheme="http://www.blogger.com/atom/ns#" term="Computer Based Training"/><category scheme="http://www.blogger.com/atom/ns#" term="Quarbon"/><category scheme="http://www.blogger.com/atom/ns#" term="Training"/><category scheme="http://www.blogger.com/atom/ns#" term="Viewlet Builder"/><title type='text'>Computer Based Training</title><content type='html'>There is no substitute for face to face training however if you are doing an upgrade or new installation of an application for thousands of employees this might not be feasible.&lt;br /&gt;&lt;br /&gt;You could take the approach of using &quot;Lead Users&quot; within departments to disseminate good practice and training or you might be in the fortunate position to be able to send out a team of trainers in to you workplace to deliver training sessions.&lt;br /&gt;&lt;br /&gt;One other solution that you could use to compliment your other training is Computer Based Training (&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;CBT&lt;/span&gt;), this could take many forms, you could use screen recording software, pod casts, online quizzes, &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;vod&lt;/span&gt; casts etc.  One solution that I have &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;Quarbon&lt;/span&gt; &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;Viewlet&lt;/span&gt; Builder, this has the advantage of being similar to screen recording software but being able to modify mouse interactions, add in quizzes and getting users to interact with the &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_4&quot;&gt;CBT&lt;/span&gt; as they would with the software when they come to use it.&lt;br /&gt;&lt;br /&gt;Definitely worth a look, version 6 was a big improvement over version 4 with lots more added functionality.  I had some issues opening version 4 files in version 6 but the support guys at &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_5&quot;&gt;Quarbon&lt;/span&gt; quickly sorted them out and patched the software up with the new changes.&lt;br /&gt;&lt;br /&gt;Take a look at what they have to offer here:&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://www.qarbon.com/presentation-software/viewletbuilder/&quot;&gt;&lt;img style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 272px; height: 173px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKYIduyG9qoCHt-rnc8idJvDHq64TWqbG9nXUDSptNgGH-6ySWu5CODGRXvenUPSrXVt2_CdiXTJnz7SbfBXsIqvM_G6AShaMSXXp32xamtAGRSqhKGmoMN5J9kj3xVknzyqKOhf6Dohk/s320/big_vb6_ent.gif&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5465867714025539010&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://danholton.blogspot.com/feeds/1253233405497615479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3631729931140249636/1253233405497615479' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/1253233405497615479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/1253233405497615479'/><link rel='alternate' type='text/html' href='http://danholton.blogspot.com/2010/04/computer-based-training.html' title='Computer Based Training'/><author><name>Dan</name><uri>http://www.blogger.com/profile/18366929166079080557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKYIduyG9qoCHt-rnc8idJvDHq64TWqbG9nXUDSptNgGH-6ySWu5CODGRXvenUPSrXVt2_CdiXTJnz7SbfBXsIqvM_G6AShaMSXXp32xamtAGRSqhKGmoMN5J9kj3xVknzyqKOhf6Dohk/s72-c/big_vb6_ent.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3631729931140249636.post-4544574194973507604</id><published>2010-04-30T09:52:00.001+01:00</published><updated>2010-04-30T09:54:38.306+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="carriage return"/><category scheme="http://www.blogger.com/atom/ns#" term="crlf"/><category scheme="http://www.blogger.com/atom/ns#" term="line feed"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="pl/sql"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL"/><category scheme="http://www.blogger.com/atom/ns#" term="utl_tcp"/><title type='text'>Carriage Return &amp; Line Feed</title><content type='html'>&lt;span style=&quot;font-family: arial;&quot;&gt;Why use chr(10)||chr(13) when you could user utl_tcp.crlf?&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://danholton.blogspot.com/feeds/4544574194973507604/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3631729931140249636/4544574194973507604' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/4544574194973507604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/4544574194973507604'/><link rel='alternate' type='text/html' href='http://danholton.blogspot.com/2010/04/carriage-return-line-feed.html' title='Carriage Return &amp; Line Feed'/><author><name>Dan</name><uri>http://www.blogger.com/profile/18366929166079080557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3631729931140249636.post-3034909053646356804</id><published>2010-04-27T15:10:00.001+01:00</published><updated>2010-04-27T15:25:02.382+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="jobs"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="pl/sql"/><title type='text'>the problem with jobs</title><content type='html'>&lt;span style=&quot;font-family:arial;&quot;&gt;Often a job only breaks because it wasn&#39;t able to access another server temporarily for example, in the meantime the server comes back online but the job is still broken.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;Unless a user tells you you might never know that then job has broken, but there is something you can do about it.  You can create a &quot;fixer job&quot;, this is a job that looks at all the other jobs at a set interval and if it finds one that is broke then it fixes it, you could even get it to log the fix or email you when one of the jobs break.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;This is the procedure I use in PL/SQL to fix it:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote style=&quot;font-style: italic;&quot;&gt;&lt;span style=&quot;;font-family:courier new;font-size:100%;&quot;  &gt;CREATE OR REPLACE PROCEDURE job_fixer&lt;br /&gt;AS&lt;br /&gt;&lt;br /&gt; CURSOR broken_jobs_cur&lt;br /&gt; IS&lt;br /&gt; SELECT job&lt;br /&gt;   FROM user_jobs&lt;br /&gt;  WHERE broken = &#39;Y&#39;;&lt;br /&gt;&lt;br /&gt;BEGIN&lt;br /&gt; FOR job_rec IN broken_jobs_cur&lt;br /&gt; LOOP&lt;br /&gt;    DBMS_JOB.BROKEN(job_rec.job,FALSE);&lt;br /&gt; END LOOP;&lt;br /&gt;END job_fixer;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;</content><link rel='replies' type='application/atom+xml' href='http://danholton.blogspot.com/feeds/3034909053646356804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3631729931140249636/3034909053646356804' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/3034909053646356804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/3034909053646356804'/><link rel='alternate' type='text/html' href='http://danholton.blogspot.com/2010/04/problem-with-jobs.html' title='the problem with jobs'/><author><name>Dan</name><uri>http://www.blogger.com/profile/18366929166079080557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3631729931140249636.post-1565774902228974039</id><published>2010-04-27T14:58:00.001+01:00</published><updated>2010-04-27T15:20:52.360+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apex"/><category scheme="http://www.blogger.com/atom/ns#" term="database"/><category scheme="http://www.blogger.com/atom/ns#" term="link"/><category scheme="http://www.blogger.com/atom/ns#" term="materialised view"/><category scheme="http://www.blogger.com/atom/ns#" term="oracle"/><category scheme="http://www.blogger.com/atom/ns#" term="pl/sql"/><category scheme="http://www.blogger.com/atom/ns#" term="remote"/><title type='text'>My view on views</title><content type='html'>&lt;span style=&quot;font-family:arial;&quot;&gt;I love materialised views, if you&#39;re pulling information in from another database over a slow network they can be very &lt;/span&gt;&lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_0&quot;  style=&quot;font-family:arial;&quot;&gt;use full&lt;/span&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;, they avoid having to do a live query on the remote data every time and speed things up for the user.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;The problem comes when you have to &lt;/span&gt;&lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_1&quot;  style=&quot;font-family:arial;&quot;&gt;re sync&lt;/span&gt;&lt;span style=&quot;font-family:arial;&quot;&gt; the data, now you could do this &lt;/span&gt;&lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_2&quot;  style=&quot;font-family:arial;&quot;&gt;intelligently&lt;/span&gt;&lt;span style=&quot;font-family:arial;&quot;&gt; and only pull in the stuff that has been updated but quite often I do a complete refresh of the view.  When doing a refresh sometimes &lt;/span&gt;&lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_3&quot;  style=&quot;font-family:arial;&quot;&gt;queries&lt;/span&gt;&lt;span style=&quot;font-family:arial;&quot;&gt; can take a long time (5-15 &lt;/span&gt;&lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_4&quot;  style=&quot;font-family:arial;&quot;&gt;mins&lt;/span&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;) and while this is going on your users can&#39;t access the data.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:arial;&quot;&gt;To get over this problem you can refresh your data in a temporary materialised view which is held &lt;/span&gt;&lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_5&quot;  style=&quot;font-family:arial;&quot;&gt;locally&lt;/span&gt;&lt;span style=&quot;font-family:arial;&quot;&gt; to where you need to use it, this is the bit that takes a long time.  Then you can refresh your &quot;live&quot; materialised view with the data in the temporary view &lt;/span&gt;&lt;span class=&quot;blsp-spelling-corrected&quot; id=&quot;SPELLING_ERROR_6&quot;  style=&quot;font-family:arial;&quot;&gt;meaning&lt;/span&gt;&lt;span style=&quot;font-family:arial;&quot;&gt; that the user experiences almost no downtime.&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://danholton.blogspot.com/feeds/1565774902228974039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/3631729931140249636/1565774902228974039' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/1565774902228974039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3631729931140249636/posts/default/1565774902228974039'/><link rel='alternate' type='text/html' href='http://danholton.blogspot.com/2010/04/my-view-on-views.html' title='My view on views'/><author><name>Dan</name><uri>http://www.blogger.com/profile/18366929166079080557</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>