<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AMIS Technology Blog &#187; Alex Nuijten</title>
	<atom:link href="http://technology.amis.nl/blog/author/alex-nuijten/feed/" rel="self" type="application/rss+xml" />
	<link>http://technology.amis.nl</link>
	<description></description>
	<lastBuildDate>Wed, 22 May 2013 10:48:02 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>OOW 2012: Little things make me happy</title>
		<link>http://technology.amis.nl/2012/10/17/oow-2012-little-things-make-me-happy/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oow-2012-little-things-make-me-happy</link>
		<comments>http://technology.amis.nl/2012/10/17/oow-2012-little-things-make-me-happy/#comments</comments>
		<pubDate>Wed, 17 Oct 2012 10:57:33 +0000</pubDate>
		<dc:creator>Alex Nuijten</dc:creator>
				<category><![CDATA[AMIS]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Devel. + PL/SQL tools]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[OOW 2012]]></category>

		<guid isPermaLink="false">http://technology.amis.nl/?p=19909</guid>
		<description><![CDATA[Yesterday evening we had the annual &#8220;We went to OOW and this is what&#8217;s new in the world we call Oracle&#8221; at AMIS.
Starting around 5pm and ending around 10pm a lot of information was presented by several AMIS colleagues.
My contribution to the evening was (amongst others) a little bit of new features  [...]]]></description>
				<content:encoded><![CDATA[<p>Yesterday evening we had the annual &#8220;We went to OOW and this is what&#8217;s new in the world we call Oracle&#8221; at AMIS.<br />
Starting around 5pm and ending around 10pm a lot of information was presented by several AMIS colleagues.</br><br />
My contribution to the evening was (amongst others) a little bit of new features in SQL and PL/SQL, only a little bit as there is too much to cover in just 20 minutes.<br />
</br><br />
It&#8217;s the little things that make me happy. What is the little thing that I like?</br><br />
When you define a table you can assign a default value to a column <i>(here it comes)</i> based on a sequence.<br />
Take a look at the following (taken from the presentation Tom Kyte did during OOW):<br />
<a href="http://technology.amis.nl/wp-content/uploads/2012/10/defaultSequence.png"><img src="http://technology.amis.nl/wp-content/uploads/2012/10/defaultSequence-300x125.png" alt="" width="300" height="125" class="alignnone size-medium wp-image-19912" /></a><br />
First a sequence is created, with the resounding name S. Next the table (named T) is created where the column X has a default based on the NEXTVAL of the sequence S.</br><br />
Just to repeat the line of interest:</p>
<pre class="wp-code-highlight prettyprint">
x int default s.nextval primary key
</pre>
<p>How cool is that?</br><br />
No longer will you need to create a trigger to fill the column with the nextvalue from a sequence, you just declare it this way and you&#8217;re done.</br></p>
<p>Maybe it&#8217;s just syntactic sugar, I don&#8217;t know (yet) and frankly I don&#8217;t care. I like the fact that this feature makes it more declarative to populate the primary key (or any other column of course).<br />
</br><br />
I&#8217;m happy.</p>
]]></content:encoded>
			<wfw:commentRss>http://technology.amis.nl/2012/10/17/oow-2012-little-things-make-me-happy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OOW 2012: Is PL/SQL still alive?</title>
		<link>http://technology.amis.nl/2012/10/02/oow-2012-is-plsql-still-alive/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oow-2012-is-plsql-still-alive</link>
		<comments>http://technology.amis.nl/2012/10/02/oow-2012-is-plsql-still-alive/#comments</comments>
		<pubDate>Tue, 02 Oct 2012 15:59:26 +0000</pubDate>
		<dc:creator>Alex Nuijten</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[Devel. + PL/SQL tools]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[OOW 2012]]></category>

		<guid isPermaLink="false">http://technology.amis.nl/?p=19697</guid>
		<description><![CDATA[Yesterday Bryn Llewellyn, Distinguished Product Manager, did a session called &#8220;PL/SQL Enhancements brought by the latest generation of database technology&#8221;.
The room was packed.
For the upcoming release of the Oracle 12c database the enhancements were broken into three areas:

Improved PL/SQL and  [...]]]></description>
				<content:encoded><![CDATA[<p>Yesterday Bryn Llewellyn, Distinguished Product Manager, did a session called &#8220;PL/SQL Enhancements brought by the latest generation of database technology&#8221;.<br />
The room was packed.<br />
For the upcoming release of the Oracle 12c database the enhancements were broken into three areas:</p>
<ul>
<li>Improved PL/SQL and SQL interoperability
<p>
In the current version of the Oracle database you needed a Nested Table or Varray Type defined at schema level in order to be able to use it in the TABLE operator.<br />
This is no longer necessary, it can be a PL/SQL declared type.</br><br />
The types that can be used as bind variables has been extended: Boolean, Nested Tables can be used as bindvariable in Dynamic SQL.</br><br />
Subquery Factoring (the With clause if you will) can hold private functions, the use case presented for this: pretty print an integer in K, M, G, T.</br><br />
Using userdefined PL/SQL functions in a SQL statement is not advisable, but if you really need to there is a new pragma: PRAGMA UDF. With this pragma the statement is almost as fast as pure SQL.</br>
</p>
</li>
<li>Security
<p>
A new step has been taken to continue on &#8220;least privileges&#8221;, meaning that the user only gets the privileges that are absolutely necessary. A Role can be granted to a PL/SQL unit.</p>
</li>
<li>Improved programmer usability
<p>The ability to inspecting the callstack has been improved by the introduction of a new package: UTL_CALL_STACK. The package contains numerous functions to help in this area, such as current_edition and lexical_depth.<br />
White listing of program units: restrict which program unit can be called by other program units.</p>
</li>
</ul>
<p>So, is PL/SQL still alive? YES! ALIVE AND KICKING!</p>
]]></content:encoded>
			<wfw:commentRss>http://technology.amis.nl/2012/10/02/oow-2012-is-plsql-still-alive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OOW 2012: My Schedule</title>
		<link>http://technology.amis.nl/2012/09/27/oow-2012-my-schedule/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oow-2012-my-schedule</link>
		<comments>http://technology.amis.nl/2012/09/27/oow-2012-my-schedule/#comments</comments>
		<pubDate>Wed, 26 Sep 2012 23:19:50 +0000</pubDate>
		<dc:creator>Alex Nuijten</dc:creator>
				<category><![CDATA[AMIS]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Devel. + PL/SQL tools]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Oracle Development Tools]]></category>

		<guid isPermaLink="false">http://technology.amis.nl/?p=19431</guid>
		<description><![CDATA[This will be my third time attending Oracle Open World and I&#8217;m really looking forward to the event.
It is very hard to make a schedule, there are so many good session available. I thought I&#8217;d share my schedule, it might inspire you for your own schedule (or makes it harder to make a choice) and I  [...]]]></description>
				<content:encoded><![CDATA[<p>This will be my third time attending Oracle Open World and I&#8217;m really looking forward to the event.</br><br />
It is very hard to make a schedule, there are so many good session available. I thought I&#8217;d share my schedule, it might inspire you for your own schedule (or makes it harder to make a choice) and I can look at my schedule without having to login to the schedule builder.<br />
<span id="more-19431"></span></p>
<div class="separator" style="clear: both;text-align: center">
<a href="http://1.bp.blogspot.com/-X499sdMoE6A/UGOK9MzPH8I/AAAAAAAABkY/zvngtbZGMC8/s1600/oow2012_1.png"><img border="0" height="339" width="400" src="http://1.bp.blogspot.com/-X499sdMoE6A/UGOK9MzPH8I/AAAAAAAABkY/zvngtbZGMC8/s400/oow2012_1.png" /></a></div>
<div class="separator" style="clear: both;text-align: center">
<a href="http://2.bp.blogspot.com/-esRsOopdDP8/UGOK9gPKFSI/AAAAAAAABkk/zCJBQbHJCsE/s1600/oow2012_2.png"><img border="0" height="339" width="400" src="http://2.bp.blogspot.com/-esRsOopdDP8/UGOK9gPKFSI/AAAAAAAABkk/zCJBQbHJCsE/s400/oow2012_2.png" /></a></div>
<p>On a side note:<br />
Just before landing in San Francisco there was an announcement: &#8220;Place your chair in the  upright, most uncomfortable position&#8221;. I thought it was funny, seems like I was the only one noticing it though. You get people staring at you when you start to laugh without apparent reason.</br></p>
]]></content:encoded>
			<wfw:commentRss>http://technology.amis.nl/2012/09/27/oow-2012-my-schedule/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Advert: Dutch preview event &#8216;Collaborate 12&#8242;</title>
		<link>http://technology.amis.nl/2012/03/31/advert-dutch-preview-event-collaborate-12/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=advert-dutch-preview-event-collaborate-12</link>
		<comments>http://technology.amis.nl/2012/03/31/advert-dutch-preview-event-collaborate-12/#comments</comments>
		<pubDate>Sat, 31 Mar 2012 09:24:12 +0000</pubDate>
		<dc:creator>Alex Nuijten</dc:creator>
				<category><![CDATA[AMIS]]></category>
		<category><![CDATA[Announce]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Devel. + PL/SQL tools]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Oracle E-Business Suite]]></category>

		<guid isPermaLink="false">http://technology.amis.nl/?p=17297</guid>
		<description><![CDATA[&#8216;COLLABORATE 12: Technology and Applications Forum for the Oracle Community’ is de grootste Oracle gebruikersgroep conferentie ter wereld en wordt jaarlijks georganiseerd in de Verenigde Staten. Het is hét evenement om bij te zijn wanneer je geïnteresseerd bent niet alleen in Oracle Applications  [...]]]></description>
				<content:encoded><![CDATA[<p>&#8216;COLLABORATE 12: Technology and Applications Forum for the Oracle Community’ is de grootste Oracle gebruikersgroep conferentie ter wereld en wordt jaarlijks georganiseerd in de Verenigde Staten. Het is hét evenement om bij te zijn wanneer je geïnteresseerd bent niet alleen in Oracle Applications (E-Business Suite, JD Edwards, Siebel, etc.) maar ook in Oracle Technologie in het algemeen, van ontwikkeling tot beheer.<br />
Ook dit jaar zal een aantal Nederlandse Oracle experts een presentatie geven op deze conferentie: Roel Hartman (Logica), Alex Nuijten (AMIS), Arian Stijf (Arven) en Arnoud Roth (Inter Access).</p>
<p>Aangezien niet iedereen in de gelegenheid is om naar Las Vegas te gaan voor het bijwonen van deze conferentien, wordt er door Inter Access een Dutch Preview Event georganiseerd. En wel op <strong>woensdag 18 april vanaf 17 uur</strong> op ons kantoor te Hilversum, waar alle presentaties van deze experts zullen worden getoond. Van Application Development, E-Business Suite Security, SOA tot Oracle Fusion Applications, de onderwerpen zijn zo divers dat je zeker een interessante avond zult beleven.</p>
<p>Aanmelden voor deze preview kan per mail naar <strong>info@interaccess.nl</strong>.<br />
Meer informatie is verkrijgbaar via <strong>Arnoud Roth</strong>, bereikbaar op telefoonnummer: 06-54363429</p>
<p>De sprekers en hun onderwerpen:</p>
<h3>Alex Nuijten, AMIS</h3>
<ul>
<li>Solving Puzzles with SQL: Cheating when playing the game SET</li>
<li>Who’s Afraid of Analytic Functions</li>
<li>Database Development: SQL Holmes &#8211; The Case of the Missing Performance</li>
</ul>
<h3>Roel Hartman, Logica</h3>
<ul>
<li>5 Cool Things You Can Do With HTML5</li>
<li>APEX Boot Camp: Striving for Perfection: The Ultimate APEX Architecture</li>
<li>Done in 60 Seconds – Creating Web 2.0 Applications Made Easy</li>
</ul>
<h3>Arian Stijf, Arven</h3>
<ul>
<li>Securing the E-Business Suite. A Layered Approach</li>
<li>From Workflow to BPEL</li>
</ul>
<h3>Arnoud Roth, Inter Access</h3>
<ul>
<li>Oracle Fusion Applications Architecture Fundamentals</li>
</ul>
<p><strong>Toon je interesse hier:</strong> <a href="http://www.linkedin.com/osview/canvas?_ch_page_id=1&amp;_ch_panel_id=1&amp;_ch_app_id=2000&amp;_applicationId=2000&amp;_ownerId=0&amp;appParams=%7B%22event%22%3A%22969208%22%2C%22page%22%3A%22event%22%7D&amp;trk=link-events-detail-detail" target="_blank">Linked-in event</a></p>
<p>Alex</p>
]]></content:encoded>
			<wfw:commentRss>http://technology.amis.nl/2012/03/31/advert-dutch-preview-event-collaborate-12/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Looking back at UKOUG 2011</title>
		<link>http://technology.amis.nl/2011/12/11/looking-back-at-ukoug-2011/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=looking-back-at-ukoug-2011</link>
		<comments>http://technology.amis.nl/2011/12/11/looking-back-at-ukoug-2011/#comments</comments>
		<pubDate>Sun, 11 Dec 2011 11:52:23 +0000</pubDate>
		<dc:creator>Alex Nuijten</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[Devel. + PL/SQL tools]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://technology.amis.nl/blog/?p=14430</guid>
		<description><![CDATA[Now that the UKOUG annual conference in Birmingham is over, it&#8217;s time to write my thoughts down. As this was the second time that I attended the UKOUG conference, I already knew that it is a big conference. Lots of great speakers and a very good agenda. On the agenda were very interesting session,  [...]]]></description>
				<content:encoded><![CDATA[<p>Now that the UKOUG annual conference in Birmingham is over, it&#8217;s time to write my thoughts down. As this was the second time that I attended the UKOUG conference, I already knew that it is a big conference. Lots of great speakers and a very good agenda. On the agenda were very interesting session, sometimes making it very hard to choose which session to go to. Guess you can&#8217;t complain about that.<br />
<!-- more --></p>
<p>On the Sunday before the actual conference starts, <a href="http://oaktable.net/" target="_blank">the OakTable</a> organized a special day. Originally I didn&#8217;t plan to attending this day, as I was flying in in the afternoon. Turned out, I was on time to attend <a href="http://www.oracledba.co.uk/"  target="_blank">Connor McDonald&#8217;s</a> session. Lucky me, Connor is an awesome presenter, so I decided to stay for the rest of the day. Very enjoyable, they even had OakTable beer before the final OakTable panel session.<br />
In the evening there was the Ace dinner, in a nearby Thai restaurant. Good company, good food. A little nerdy perhaps, but as it turned out there were 42 Ace&#8217;s and Ace Directors attending.<br />
On Monday I attended some really good sessions, like Kyle Hailey on SQL Tuning, Bryn Llewellyn on Using the PL/SQL Hierarchical Performance Profiler, and Connor McDonald on Partitioning 101.<br />
Late in the evening Cary Millsap did a keynote session: Learning about Life through Business and Software. Only one word for this session: Wow! The things he talked about are still going around in my mind.<br />
Tuesday morning, right after Roel Hartman&#8217;s session Done in 60 seconds,  was my own session Who&#8217;s afraid of Analytic Functions? &#8211; for which I was quite nervous. Got some nice feedback on the session, so was quite pleased with it. Of course I had to go and see Carl Dudley&#8217;s session on Analysing Your Data with Analytic Functions &#8211; check out the competition, so to speak. Michael Salt&#8217;s session on Indexing: It&#8217;s All In The Index was also very interesting.<br />
Wednesday was time to head back home, so packed up my bags and went to see Jonathan Lewis&#8217; session on Redo. Can you keep an audience captivated for an hour talking about Redo? Jonathan Lewis can. Sadly this was my last session.<br />
Because I arrived early at the Birmingham International Airport, I could get an earlier -originally delayed- flight back to The Netherlands. Now I can look back at a wonderful conference&#8230;.<br />
Oh,&#8230; did I mention I received the Inspiring Presentation Award for my session I did last year?</p>
]]></content:encoded>
			<wfw:commentRss>http://technology.amis.nl/2011/12/11/looking-back-at-ukoug-2011/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>APEX: Make a report row clickable</title>
		<link>http://technology.amis.nl/2011/11/29/apex-make-a-report-row-clickable/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=apex-make-a-report-row-clickable</link>
		<comments>http://technology.amis.nl/2011/11/29/apex-make-a-report-row-clickable/#comments</comments>
		<pubDate>Tue, 29 Nov 2011 10:53:13 +0000</pubDate>
		<dc:creator>Alex Nuijten</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[Devel. + PL/SQL tools]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Oracle Development Tools]]></category>
		<category><![CDATA[apex]]></category>

		<guid isPermaLink="false">http://technology.amis.nl/blog/?p=14280</guid>
		<description><![CDATA[When you create a &#8220;Report with Form&#8221;, there will be an icon in the report which allows you to navigate to Â the form page. Only when the user clicks the icon this navigation will take place. For the current project, this was not what they wanted. They wanted to click on the row instead of just the  [...]]]></description>
				<content:encoded><![CDATA[<p>When you create a &#8220;Report with Form&#8221;, there will be an icon in the report which allows you to navigate to Â the form page. Only when the user clicks the icon this navigation will take place. For the current project, this was not what they wanted. They wanted to click on the row instead of just the icon. This can be simply implemented using jQuery.</p>
<p><span id="more-14280"></span>For this example we are going to use a &#8220;Report with Form&#8221; and modify it as described below.</p>
<p>All of our pages in the application have a page alias, the Report page alias is &#8220;EMP001&#8243; and the Form page has an alias &#8220;EMP002&#8243;.<br />
The default behaviour will appear in the page like the below screenshot, the cursor will turn into a small hand only when you move your mouse over the icon.</p>
<div class="separator" style="clear: both; text-align: center;"><a style="margin-left: 1em; margin-right: 1em;" href="http://3.bp.blogspot.com/-ibFaOm2n1K8/TtSwS6KSqeI/AAAAAAAABJo/Lc-D4VOvoFw/s1600/Edit1.png"><img src="http://3.bp.blogspot.com/-ibFaOm2n1K8/TtSwS6KSqeI/AAAAAAAABJo/Lc-D4VOvoFw/s320/Edit1.png" border="0" alt="" width="320" height="59" /></a></div>
<p>But we want to achieve the following: moving the cursor over the whole row changes the cursor to a small hand Â indicating that the whole row is clickable. And not only that, also that the whole row is in fact clickable.</p>
<div class="separator" style="clear: both; text-align: center;"><a style="margin-left: 1em; margin-right: 1em;" href="http://3.bp.blogspot.com/-srpCkZFkhlU/TtSwgkXX6VI/AAAAAAAABJw/hDzsMMUInTA/s1600/edit2.png"><img src="http://3.bp.blogspot.com/-srpCkZFkhlU/TtSwgkXX6VI/AAAAAAAABJw/hDzsMMUInTA/s320/edit2.png" border="0" alt="" width="320" height="63" /></a></div>
<p>To achieve this we would need to &#8220;move&#8221; (or copy) the anchor to row-level.</p>
<p>When you look at the generated HTML code, it will look something similar to this:</p>
<div class="separator" style="clear: both; text-align: center;"><a style="margin-left: 1em; margin-right: 1em;" href="http://2.bp.blogspot.com/-BAw3ySDo8Yc/TtSvXI4VJUI/AAAAAAAABJg/ZtVVh6PWEL0/s1600/html.png"><img src="http://2.bp.blogspot.com/-BAw3ySDo8Yc/TtSvXI4VJUI/AAAAAAAABJg/ZtVVh6PWEL0/s400/html.png" border="0" alt="" width="400" height="78" /></a></div>
<p>The highlighted line in the picture is the icon which is shown in the Report page (alias: EMP001). As you can see in the image, the anchor (the &#8220;a&#8221; tag) has an href attribute which contains all the information it needs to navigate to the Form page (alias: EMP002). Even the page alias is in there, and this is what we will use to select the correct href.</p>
<p>Because the page alias is in the anchor, we can use the jQuery selector to get the appropriate element</p>
<pre class="wp-code-highlight prettyprint">$(&#039;a[href*=&quot;EMP002&quot;]&#039;)</pre>
<p>This will result in an array of anchor elements which we want to manipulate. For each of the elements in the array we want to retrieve the href attribute. The href attribute, we will keep in a local variable named &#8220;lnk&#8221;. Now the code will look like:</p>
<pre class="wp-code-highlight prettyprint">$(&#039;a[href*=&quot;EMP002&quot;]&#039;).each(function(index) {Â 
    lnk = $(this).attr(&#039;href&#039;);

});</pre>
<p>This variable with the href attribute is going to be place at row level as a &#8220;data-href&#8221;. From the current element we need to move up to the row level (tr) and add the attribute.</p>
<pre class="wp-code-highlight prettyprint">   $(this).parent()
          .parent(&#039;tr&#039;)
		  .attr(&#039;data-href&#039;, lnk)</pre>
<p>To make it clickable, we also need to add a click event to the row. This is where jQuery really shows its power, we can &#8220;chain&#8221; the click event to our selector. The code will grow slightly to the following:</p>
<pre class="wp-code-highlight prettyprint"> $(this).parent()
          .parent(&#039;tr&#039;)
		  .attr(&#039;data-href&#039;, lnk)
		  .click(function(){
		    window.location=$(this).attr(&#039;data-href&#039;);
		  })</pre>
<p>To give the user the feedback that the row is clickable, we need to change the cursor to a little hand. Again we chain the mouseover event to the selector</p>
<pre class="wp-code-highlight prettyprint">$(this).parent()
          .parent(&#039;tr&#039;)
		  .attr(&#039;data-href&#039;, lnk)
		  .click(function(){
		    window.location=$(this).attr(&#039;data-href&#039;);
		  })
		  .mouseover(function(){
		    $(this).css(&#039;cursor&#039;, &#039;pointer&#039;);
		  })</pre>
<p>And because we also want to change the cursor back to default when the user move the cursor away from the rows in the report, the mouseleave event is also required</p>
<pre class="wp-code-highlight prettyprint">   $(this).parent()
          .parent(&#039;tr&#039;)
		  .attr(&#039;data-href&#039;, lnk)
		  .click(function(){
		    window.location=$(this).attr(&#039;data-href&#039;);
		  })
		  .mouseover(function(){
		    $(this).css(&#039;cursor&#039;, &#039;pointer&#039;);
		  })
		  .mouseleave(function(){
		    $(this).css(&#039;cursor&#039;, &#039;default&#039;);
		  })</pre>
<div>Now that the jQuery code is complete, we can add this to the page</div>
<div class="separator" style="clear: both; text-align: center;"><a style="margin-left: 1em; margin-right: 1em;" href="http://1.bp.blogspot.com/-ACLQjet9Eic/TtS1e3-P4fI/AAAAAAAABKE/uXS1_poUrVk/s1600/Pagelevel.png"><img src="http://1.bp.blogspot.com/-ACLQjet9Eic/TtS1e3-P4fI/AAAAAAAABKE/uXS1_poUrVk/s1600/Pagelevel.png" border="0" alt="" /></a></div>
<div>Double click at page level to open the page properties, and paste the jQuery code in the section labelled &#8220;Execute when Page Loads&#8221; and we are all set.</div>
<div class="separator" style="clear: both; text-align: center;"><a style="margin-left: 1em; margin-right: 1em;" href="http://1.bp.blogspot.com/-LV9Z0lpDgvA/TtS1ejykJpI/AAAAAAAABKA/jZ2ZEoHsHm4/s1600/jQueryPage.png"><img src="http://1.bp.blogspot.com/-LV9Z0lpDgvA/TtS1ejykJpI/AAAAAAAABKA/jZ2ZEoHsHm4/s400/jQueryPage.png" border="0" alt="" width="400" height="290" /></a></div>
<p>When you run the page you will notice that the whole row is clickable.</p>
<p>Inspecting the HTML after we add all the jQuery code will show that there is an anchor at the row level now, just what we wanted.</p>
<div class="separator" style="clear: both; text-align: center;"><a style="margin-left: 1em; margin-right: 1em;" href="http://2.bp.blogspot.com/-10fcgIQOTBQ/TtSx1pghx5I/AAAAAAAABJ4/jF9CEKBSvWk/s1600/html2.png"><img src="http://2.bp.blogspot.com/-10fcgIQOTBQ/TtSx1pghx5I/AAAAAAAABJ4/jF9CEKBSvWk/s400/html2.png" border="0" alt="" width="400" height="43" /></a></div>
<p>To make copy the code for your own use, the completed jQuery code will look like this</p>
<pre class="wp-code-highlight prettyprint">$(&#039;a[href*=&quot;EMP002&quot;]&#039;).each(function(index) {
   lnk = $(this).attr(&#039;href&#039;);
   $(this).parent()
          .parent(&#039;tr&#039;)
		  .attr(&#039;data-href&#039;, lnk)
		  .click(function(){
		    window.location=$(this).attr(&#039;data-href&#039;);
		  })
		  .mouseover(function(){
		    $(this).css(&#039;cursor&#039;, &#039;pointer&#039;);
		  })
		  .mouseleave(function(){
		    $(this).css(&#039;cursor&#039;, &#039;default&#039;);
		  })
});</pre>
<p>And to see this in action you can find <a href="http://apex.oracle.com/pls/otn/f?p=47888:2:3653991300354527:::::" target="_blank">a demo on apex.oracle.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://technology.amis.nl/2011/11/29/apex-make-a-report-row-clickable/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It&#039;s here: Oracle Public Cloud</title>
		<link>http://technology.amis.nl/2011/10/06/its-here-oracle-public-cloud/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=its-here-oracle-public-cloud</link>
		<comments>http://technology.amis.nl/2011/10/06/its-here-oracle-public-cloud/#comments</comments>
		<pubDate>Wed, 05 Oct 2011 23:18:37 +0000</pubDate>
		<dc:creator>Alex Nuijten</dc:creator>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://technology.amis.nl/blog/13669/its-here-oracle-public-cloud</guid>
		<description><![CDATA[just so you know&#8230;
]]></description>
				<content:encoded><![CDATA[<p>just so you know&#8230;<a href="http://technology.amis.nl/blog/13669/its-here-oracle-public-cloud/oracle-public-cloud-google-chrome_2011-10-05_16-03-56" rel="attachment wp-att-13668"><img src="http://technology.amis.nl/wp-content/uploads/images/Oracle-Public-Cloud-Google-Chrome_2011-10-05_16-03-56-300x207.png" alt="" title="Oracle Public Cloud" width="300" height="207" class="aligncenter size-medium wp-image-13668" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://technology.amis.nl/2011/10/06/its-here-oracle-public-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle Open World 2011: Oracle Database 11g Features for Developers by Connor McDonald</title>
		<link>http://technology.amis.nl/2011/10/04/oracle-open-world-2011-oracle-database-11g-features-for-developers-by-connor-mcdonald/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oracle-open-world-2011-oracle-database-11g-features-for-developers-by-connor-mcdonald</link>
		<comments>http://technology.amis.nl/2011/10/04/oracle-open-world-2011-oracle-database-11g-features-for-developers-by-connor-mcdonald/#comments</comments>
		<pubDate>Tue, 04 Oct 2011 17:10:10 +0000</pubDate>
		<dc:creator>Alex Nuijten</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[Devel. + PL/SQL tools]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://technology.amis.nl/blog/?p=13643</guid>
		<description><![CDATA[Yesterday I had the pleasure of attending a session by Connor McDonald. I heard a lot about him, his presentation style, and I even did a book review back in 2005. 
Everybody I talk to who attended a session by Connor &#8211; ever &#8211; is always very positive on his presentation style. And it is very  [...]]]></description>
				<content:encoded><![CDATA[<p>Yesterday I had the pleasure of attending a session by Connor McDonald. I heard a lot about him, his presentation style, and I<a target+"_blank" href="http://technology.amis.nl/blog/578/book-review-mastering-oracle-plsql-practical-solutions"> even did a book review back in 2005. </a><br />
Everybody I talk to who attended a session by Connor &#8211; ever &#8211; is always very positive on his presentation style. And it is very impressive, humor, technical knowledge, all the ingredients are there to keep you focused on the content.<br />
The opening slide, he put on as you walked in the room invited you to move forward as the presentation has code sample in a fontsize which he showed on the slide. The room filled up, and it was a large room. There was another benefit of being in the front of the room, apart from being able to read the slides, he handed out chocolates &#8211; starting from the front. Talking to Connor later in the evening, he told me it takes months to prepare for a presentation, and it really shows. If you get a chance to see Connor do a presentation, attend it and make sure to arrive early!<br />
Part of the presentation was on Edition Based Redefinition, and because I presented on that subject before I believed there was a flaw in his presentation. But there was not, I was mistaken. The rest of this blogpost shows you where I was mistaken, and Connor was absolutely right.</p>
<p><span id="more-13643"></span><br />
When creating an editioning view, I believed it was &#8220;required&#8221; to name the columns in your view instead of using the wildcard &#8220;*&#8221; to select the columns. Shielding the editioning view from table alterations. So let&#8217;s start with an edition enabled user to setup our table.</p>
<pre class="wp-code-highlight prettyprint">
SQL&gt; conn alex/alex@xe11
Connected.
SQL&gt; alter user alex enable editions
  2  /

User altered.

SQL&gt; select *
  2    from v$version
  3  /

BANNER
---------------------------------------------------------------------
Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production
PL/SQL Release 11.2.0.2.0 - Production
CORE    11.2.0.2.0      Production
TNS for 32-bit Windows: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - Production

5 rows selected.

SQL&gt; create table &quot;_EMP&quot;
  2  (empno number
  3  ,ename varchar2(20)
  4  )
  5  /

Table created.
</pre>
<p>As you can see in the above code snippet, I run this test on Oracle Database 11g Express Edition. The tablename I picked up from Connor&#8217;s session. Naming your table something freakish will (hopefully) stop developers from using the table directly in their code. I like that naming convention. Let&#8217;s continue with two editions</p>
<pre class="wp-code-highlight prettyprint">
SQL&gt; create edition r1 as child of ora$base
  2  /

Edition created.

SQL&gt;
SQL&gt; create edition r2 as child of r1
  2  /

Edition created.

</pre>
<p>In each of the editions we will create an editioning view using the wildcard &#8220;*&#8221; to select the columns</p>
<pre class="wp-code-highlight prettyprint">
SQL&gt; alter session set edition = r1
  2  /

Session altered.

SQL&gt; create or replace
  2  editioning view emp
  3  as
  4  select *
  5    from &quot;_EMP&quot;
  6  /

View created.

SQL&gt;
SQL&gt; alter session set edition = r2
  2  /

Session altered.

SQL&gt; create or replace
  2  editioning view emp
  3  as
  4  select *
  5    from &quot;_EMP&quot;
  6  /

View created.

SQL&gt;
</pre>
<p>I believed, wrongly, that the wildcard &#8220;*&#8221; would be dynamic, meaning that if the table definition would change both editioning view would include the new column as well. This is not the case.The editioning views don&#8217;t even get invalidated&#8230;</p>
<pre class="wp-code-highlight prettyprint">

SQL&gt; alter session set edition = ora$base
  2  /

Session altered.

SQL&gt; alter table &quot;_EMP&quot;
  2  add something varchar2(10)
  3  /

Table altered.

SQL&gt; select owner
  2       , object_name
  3      , status
  4    from all_objects_ae
  5   where object_name = &#039;EMP&#039;
  6  /

OWNER                          OBJECT_NAME                    STATUS
------------------------------ ------------------------------ -------
ALEX                           EMP                            VALID
ALEX                           EMP                            VALID

2 rows selected.
</pre>
<p>Even though they don&#8217;t get invalidated, the definition of the editioning views surely must be changed then&#8230;.</p>
<pre class="wp-code-highlight prettyprint">
SQL&gt;
SQL&gt; alter session set edition = r1
  2  /

Session altered.

SQL&gt; desc emp
 Name                                                              Null?    Type
 ----------------------------------------------------------------- -------- ----------------------

 EMPNO                                                                      NUMBER
 ENAME                                                                      VARCHAR2(20)

SQL&gt;
SQL&gt; alter session set edition =  r2
  2  /

Session altered.

SQL&gt; desc emp
 Name                                                              Null?    Type
 ----------------------------------------------------------------- -------- ----------------------

 EMPNO                                                                      NUMBER
 ENAME                                                                      VARCHAR2(20)

SQL&gt;
</pre>
<p>No. The definition includes the columns which existed before we altered the table.<br />
What is stored in the metadata, you may wonder. Let&#8217;s go and find out:</p>
<pre class="wp-code-highlight prettyprint">
SQL&gt; alter session set edition = r1
  2  /

Session altered.

SQL&gt; set long 50000
SQL&gt; select dbms_metadata.get_ddl (&#039;VIEW&#039;
  2                               ,&#039;EMP&#039;
  3                                                      )
  4    from dual
  5  /

DBMS_METADATA.GET_DDL(&#039;VIEW&#039;,&#039;EMP&#039;)
--------------------------------------------------------------------------------

  CREATE OR REPLACE FORCE EDITIONING VIEW &quot;ALEX&quot;.&quot;EMP&quot; (&quot;EMPNO&quot;, &quot;ENAME&quot;) AS
  select &quot;EMPNO&quot;,&quot;ENAME&quot;
  from &quot;_EMP&quot;


1 row selected.

SQL&gt;
SQL&gt; alter session set edition =  r2
  2  /

Session altered.

SQL&gt; select dbms_metadata.get_ddl (&#039;VIEW&#039;
  2                               ,&#039;EMP&#039;
  3                                                      )
  4    from dual
  5  /

DBMS_METADATA.GET_DDL(&#039;VIEW&#039;,&#039;EMP&#039;)
--------------------------------------------------------------------------------

  CREATE OR REPLACE FORCE EDITIONING VIEW &quot;ALEX&quot;.&quot;EMP&quot; (&quot;EMPNO&quot;, &quot;ENAME&quot;) AS
  select &quot;EMPNO&quot;,&quot;ENAME&quot;
  from &quot;_EMP&quot;


1 row selected.
</pre>
<p>As you can see in the output above, the actual column names are in the metadata, shielding changes to the editioning views when the table definition changes.<br />
Connor was absolutely right about the mechanics of Edition Based Redefinition. Does this mean you should use the wildcard &#8220;*&#8221;in your editioning views? I believe not, I believe you should explicitly name the columns that you want to include in a specific edition. This way it is more clear to the developers, and DBA alike. Rerunning the scripts might all of sudden include columns in an edition which weren&#8217;t suppose to be there. When you explicitly name your columns, you won&#8217;t have this problem.</p>
<p>Just the last bit, cleaning up my environment:</p>
<pre class="wp-code-highlight prettyprint">

SQL&gt; alter session set edition = ora$base
  2  /

Session altered.

SQL&gt; drop edition r2 cascade
  2  /

Edition dropped.

SQL&gt; drop edition r1 cascade
  2  /

Edition dropped.

SQL&gt; drop table &quot;_EMP&quot; purge
  2  /

Table dropped.
</pre>
]]></content:encoded>
			<wfw:commentRss>http://technology.amis.nl/2011/10/04/oracle-open-world-2011-oracle-database-11g-features-for-developers-by-connor-mcdonald/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle Open World 2011; Unstructured Data and Multimedia SIG</title>
		<link>http://technology.amis.nl/2011/10/02/oracle-open-world-2011-unstructured-data-and-multimedia-sig/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oracle-open-world-2011-unstructured-data-and-multimedia-sig</link>
		<comments>http://technology.amis.nl/2011/10/02/oracle-open-world-2011-unstructured-data-and-multimedia-sig/#comments</comments>
		<pubDate>Sun, 02 Oct 2011 19:13:07 +0000</pubDate>
		<dc:creator>Alex Nuijten</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[Devel. + PL/SQL tools]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://technology.amis.nl/blog/?p=13536</guid>
		<description><![CDATA[Oracle Open World is underway. My first session, which I didn&#8217;t plan, was on Unstructured Data.
There is a lot of unstructured data going around, as opposed to relational data, and it will only increase in the future. The number of images and videos will only increase in the future.
Especially for  [...]]]></description>
				<content:encoded><![CDATA[<p>Oracle Open World is underway. My first session, which I didn&#8217;t plan, was on Unstructured Data.<br />
There is a lot of unstructured data going around, as opposed to relational data, and it will only increase in the future. The number of images and videos will only increase in the future.<br />
Especially for this, Marcelle Kratochvil is putting together an Oracle Unstructured Data with Multimedia SIG, just to spread the word on unstructured data and multimedia. She even put up a website (to be moved in the future) with white papers, preseentations, and links to other useful information. This site can be found at <a href="https://sites.google.com/site/ommuds/home" target="_blank">https://sites.google.com/site/ommuds/home.</a> Head over there and check it out.<br />
She also showed some very nice examples of customers using multimedia. Unfortunately I had to leave at this time.<br />
Even though I didn&#8217;t plan on attending this session, it was very interesting &#8211; too bad I had to leave for a different session, but I will surely be investigating more on unstructured data.</p>
]]></content:encoded>
			<wfw:commentRss>http://technology.amis.nl/2011/10/02/oracle-open-world-2011-unstructured-data-and-multimedia-sig/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Where am I, and what am I doing&#8230; Oracle Open World 2011</title>
		<link>http://technology.amis.nl/2011/10/02/where-am-i-and-what-am-i-doing-oracle-open-world-2011/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=where-am-i-and-what-am-i-doing-oracle-open-world-2011</link>
		<comments>http://technology.amis.nl/2011/10/02/where-am-i-and-what-am-i-doing-oracle-open-world-2011/#comments</comments>
		<pubDate>Sat, 01 Oct 2011 23:02:09 +0000</pubDate>
		<dc:creator>Alex Nuijten</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[Devel. + PL/SQL tools]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://technology.amis.nl/blog/?p=13525</guid>
		<description><![CDATA[This post is more for me than it is for you, at least I will have a place to quickly check where am I supposed to be going next.The rest of this post is basically just my schedule for the upcoming week in San Francisco.
Really looking forward to all the sessions, meeting old friends and making new  [...]]]></description>
				<content:encoded><![CDATA[<p>This post is more for me than it is for you, at least I will have a place to quickly check where am I supposed to be going next.The rest of this post is basically just my schedule for the upcoming week in San Francisco.<br />
Really looking forward to all the sessions, meeting old friends and making new ones. So if you see me walking around, please come up and say hello.<br />
<!-- more --><br />
<iframe width='900' height='600' frameborder='0' src='https://docs.google.com/spreadsheet/pub?hl=nl&#038;hl=nl&#038;key=0AhjfPoaDRiRVdFp1UjByU041UHR6bVdGejZVaC1KakE&#038;output=html&#038;widget=true'></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://technology.amis.nl/2011/10/02/where-am-i-and-what-am-i-doing-oracle-open-world-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
