AMIS Technology Blog » Alex Nuijten http://technology.amis.nl Friends of Oracle and Java Wed, 22 Oct 2014 12:40:49 +0000 en-US hourly 1 http://wordpress.org/?v=4.0 OOW 2012: Little things make me happy http://technology.amis.nl/2012/10/17/oow-2012-little-things-make-me-happy/ http://technology.amis.nl/2012/10/17/oow-2012-little-things-make-me-happy/#comments Wed, 17 Oct 2012 10:57:33 +0000 http://technology.amis.nl/?p=19909 Yesterday evening we had the annual “We went to OOW and this is what’s new in the world we call Oracle” 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 in [...]

The post OOW 2012: Little things make me happy appeared first on AMIS Technology Blog.

]]>
Yesterday evening we had the annual “We went to OOW and this is what’s new in the world we call Oracle” 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 in SQL and PL/SQL, only a little bit as there is too much to cover in just 20 minutes.


It’s the little things that make me happy. What is the little thing that I like?

When you define a table you can assign a default value to a column (here it comes) based on a sequence.
Take a look at the following (taken from the presentation Tom Kyte did during OOW):

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.

Just to repeat the line of interest:

x int default s.nextval primary key

How cool is that?

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’re done.

Maybe it’s just syntactic sugar, I don’t know (yet) and frankly I don’t care. I like the fact that this feature makes it more declarative to populate the primary key (or any other column of course).


I’m happy.

The post OOW 2012: Little things make me happy appeared first on AMIS Technology Blog.

]]>
http://technology.amis.nl/2012/10/17/oow-2012-little-things-make-me-happy/feed/ 0
OOW 2012: Is PL/SQL still alive? http://technology.amis.nl/2012/10/02/oow-2012-is-plsql-still-alive/ http://technology.amis.nl/2012/10/02/oow-2012-is-plsql-still-alive/#comments Tue, 02 Oct 2012 15:59:26 +0000 http://technology.amis.nl/?p=19697 Yesterday Bryn Llewellyn, Distinguished Product Manager, did a session called “PL/SQL Enhancements brought by the latest generation of database technology”. The room was packed. For the upcoming release of the Oracle 12c database the enhancements were broken into three areas: Improved PL/SQL and SQL interoperability In the current version of the Oracle database you needed [...]

The post OOW 2012: Is PL/SQL still alive? appeared first on AMIS Technology Blog.

]]>
Yesterday Bryn Llewellyn, Distinguished Product Manager, did a session called “PL/SQL Enhancements brought by the latest generation of database technology”.
The room was packed.
For the upcoming release of the Oracle 12c database the enhancements were broken into three areas:

  • Improved PL/SQL and SQL interoperability

    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.
    This is no longer necessary, it can be a PL/SQL declared type.

    The types that can be used as bind variables has been extended: Boolean, Nested Tables can be used as bindvariable in Dynamic SQL.

    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.

    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.

  • Security

    A new step has been taken to continue on “least privileges”, meaning that the user only gets the privileges that are absolutely necessary. A Role can be granted to a PL/SQL unit.

  • Improved programmer usability

    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.
    White listing of program units: restrict which program unit can be called by other program units.

So, is PL/SQL still alive? YES! ALIVE AND KICKING!

The post OOW 2012: Is PL/SQL still alive? appeared first on AMIS Technology Blog.

]]>
http://technology.amis.nl/2012/10/02/oow-2012-is-plsql-still-alive/feed/ 0
OOW 2012: My Schedule http://technology.amis.nl/2012/09/27/oow-2012-my-schedule/ http://technology.amis.nl/2012/09/27/oow-2012-my-schedule/#comments Wed, 26 Sep 2012 23:19:50 +0000 http://technology.amis.nl/?p=19431 This will be my third time attending Oracle Open World and I’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’d share my schedule, it might inspire you for your own schedule (or makes it harder to make a choice) [...]

The post OOW 2012: My Schedule appeared first on AMIS Technology Blog.

]]>
This will be my third time attending Oracle Open World and I’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’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.

On a side note:
Just before landing in San Francisco there was an announcement: “Place your chair in the upright, most uncomfortable position”. 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.

The post OOW 2012: My Schedule appeared first on AMIS Technology Blog.

]]>
http://technology.amis.nl/2012/09/27/oow-2012-my-schedule/feed/ 0
Advert: Dutch preview event ‘Collaborate 12′ http://technology.amis.nl/2012/03/31/advert-dutch-preview-event-collaborate-12/ http://technology.amis.nl/2012/03/31/advert-dutch-preview-event-collaborate-12/#comments Sat, 31 Mar 2012 09:24:12 +0000 http://technology.amis.nl/?p=17297 ‘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 [...]

The post Advert: Dutch preview event ‘Collaborate 12′ appeared first on AMIS Technology Blog.

]]>
‘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.
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).

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 woensdag 18 april vanaf 17 uur 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.

Aanmelden voor deze preview kan per mail naar info@interaccess.nl.
Meer informatie is verkrijgbaar via Arnoud Roth, bereikbaar op telefoonnummer: 06-54363429

De sprekers en hun onderwerpen:

Alex Nuijten, AMIS

  • Solving Puzzles with SQL: Cheating when playing the game SET
  • Who’s Afraid of Analytic Functions
  • Database Development: SQL Holmes – The Case of the Missing Performance

Roel Hartman, Logica

  • 5 Cool Things You Can Do With HTML5
  • APEX Boot Camp: Striving for Perfection: The Ultimate APEX Architecture
  • Done in 60 Seconds – Creating Web 2.0 Applications Made Easy

Arian Stijf, Arven

  • Securing the E-Business Suite. A Layered Approach
  • From Workflow to BPEL

Arnoud Roth, Inter Access

  • Oracle Fusion Applications Architecture Fundamentals

Toon je interesse hier: Linked-in event

Alex

The post Advert: Dutch preview event ‘Collaborate 12′ appeared first on AMIS Technology Blog.

]]>
http://technology.amis.nl/2012/03/31/advert-dutch-preview-event-collaborate-12/feed/ 1
Looking back at UKOUG 2011 http://technology.amis.nl/2011/12/11/looking-back-at-ukoug-2011/ http://technology.amis.nl/2011/12/11/looking-back-at-ukoug-2011/#comments Sun, 11 Dec 2011 11:52:23 +0000 http://technology.amis.nl/blog/?p=14430 Now that the UKOUG annual conference in Birmingham is over, it’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 [...]

The post Looking back at UKOUG 2011 appeared first on AMIS Technology Blog.

]]>
Now that the UKOUG annual conference in Birmingham is over, it’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’t complain about that.

On the Sunday before the actual conference starts, the OakTable organized a special day. Originally I didn’t plan to attending this day, as I was flying in in the afternoon. Turned out, I was on time to attend Connor McDonald’s 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.
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’s and Ace Directors attending.
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.
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.
Tuesday morning, right after Roel Hartman’s session Done in 60 seconds, was my own session Who’s afraid of Analytic Functions? – 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’s session on Analysing Your Data with Analytic Functions – check out the competition, so to speak. Michael Salt’s session on Indexing: It’s All In The Index was also very interesting.
Wednesday was time to head back home, so packed up my bags and went to see Jonathan Lewis’ session on Redo. Can you keep an audience captivated for an hour talking about Redo? Jonathan Lewis can. Sadly this was my last session.
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….
Oh,… did I mention I received the Inspiring Presentation Award for my session I did last year?

The post Looking back at UKOUG 2011 appeared first on AMIS Technology Blog.

]]>
http://technology.amis.nl/2011/12/11/looking-back-at-ukoug-2011/feed/ 2
APEX: Make a report row clickable http://technology.amis.nl/2011/11/29/apex-make-a-report-row-clickable/ http://technology.amis.nl/2011/11/29/apex-make-a-report-row-clickable/#comments Tue, 29 Nov 2011 10:53:13 +0000 http://technology.amis.nl/blog/?p=14280 When you create a “Report with Form”, 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 [...]

The post APEX: Make a report row clickable appeared first on AMIS Technology Blog.

]]>
When you create a “Report with Form”, 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.

For this example we are going to use a “Report with Form” and modify it as described below.

All of our pages in the application have a page alias, the Report page alias is “EMP001″ and the Form page has an alias “EMP002″.
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.

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.

To achieve this we would need to “move” (or copy) the anchor to row-level.

When you look at the generated HTML code, it will look something similar to this:

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 “a” 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.

Because the page alias is in the anchor, we can use the jQuery selector to get the appropriate element

$('a[href*="EMP002"]')

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 “lnk”. Now the code will look like:

$('a[href*="EMP002"]').each(function(index) { 
    lnk = $(this).attr('href');

});

This variable with the href attribute is going to be place at row level as a “data-href”. From the current element we need to move up to the row level (tr) and add the attribute.

   $(this).parent()
          .parent('tr')
		  .attr('data-href', lnk)

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 “chain” the click event to our selector. The code will grow slightly to the following:

 $(this).parent()
          .parent('tr')
		  .attr('data-href', lnk)
		  .click(function(){
		    window.location=$(this).attr('data-href');
		  })

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

$(this).parent()
          .parent('tr')
		  .attr('data-href', lnk)
		  .click(function(){
		    window.location=$(this).attr('data-href');
		  })
		  .mouseover(function(){
		    $(this).css('cursor', 'pointer');
		  })

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

   $(this).parent()
          .parent('tr')
		  .attr('data-href', lnk)
		  .click(function(){
		    window.location=$(this).attr('data-href');
		  })
		  .mouseover(function(){
		    $(this).css('cursor', 'pointer');
		  })
		  .mouseleave(function(){
		    $(this).css('cursor', 'default');
		  })
Now that the jQuery code is complete, we can add this to the page
Double click at page level to open the page properties, and paste the jQuery code in the section labelled “Execute when Page Loads” and we are all set.

When you run the page you will notice that the whole row is clickable.

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.

To make copy the code for your own use, the completed jQuery code will look like this

$('a[href*="EMP002"]').each(function(index) {
   lnk = $(this).attr('href');
   $(this).parent()
          .parent('tr')
		  .attr('data-href', lnk)
		  .click(function(){
		    window.location=$(this).attr('data-href');
		  })
		  .mouseover(function(){
		    $(this).css('cursor', 'pointer');
		  })
		  .mouseleave(function(){
		    $(this).css('cursor', 'default');
		  })
});

And to see this in action you can find a demo on apex.oracle.com

The post APEX: Make a report row clickable appeared first on AMIS Technology Blog.

]]>
http://technology.amis.nl/2011/11/29/apex-make-a-report-row-clickable/feed/ 0
It’s here: Oracle Public Cloud http://technology.amis.nl/2011/10/06/its-here-oracle-public-cloud/ http://technology.amis.nl/2011/10/06/its-here-oracle-public-cloud/#comments Wed, 05 Oct 2011 23:18:37 +0000 http://technology.amis.nl/blog/13669/its-here-oracle-public-cloud just so you know…

The post It’s here: Oracle Public Cloud appeared first on AMIS Technology Blog.

]]>
just so you know…

The post It’s here: Oracle Public Cloud appeared first on AMIS Technology Blog.

]]>
http://technology.amis.nl/2011/10/06/its-here-oracle-public-cloud/feed/ 0
Oracle Open World 2011: Oracle Database 11g Features for Developers by Connor McDonald http://technology.amis.nl/2011/10/04/oracle-open-world-2011-oracle-database-11g-features-for-developers-by-connor-mcdonald/ http://technology.amis.nl/2011/10/04/oracle-open-world-2011-oracle-database-11g-features-for-developers-by-connor-mcdonald/#comments Tue, 04 Oct 2011 17:10:10 +0000 http://technology.amis.nl/blog/?p=13643 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 – ever – is always very positive on his presentation style. And it is [...]

The post Oracle Open World 2011: Oracle Database 11g Features for Developers by Connor McDonald appeared first on AMIS Technology Blog.

]]>
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 – ever – 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.
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 – 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!
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.


When creating an editioning view, I believed it was “required” to name the columns in your view instead of using the wildcard “*” to select the columns. Shielding the editioning view from table alterations. So let’s start with an edition enabled user to setup our table.

SQL> conn alex/alex@xe11
Connected.
SQL> alter user alex enable editions
  2  /

User altered.

SQL> 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> create table "_EMP"
  2  (empno number
  3  ,ename varchar2(20)
  4  )
  5  /

Table created.

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’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’s continue with two editions

SQL> create edition r1 as child of ora$base
  2  /

Edition created.

SQL>
SQL> create edition r2 as child of r1
  2  /

Edition created.

In each of the editions we will create an editioning view using the wildcard “*” to select the columns

SQL> alter session set edition = r1
  2  /

Session altered.

SQL> create or replace
  2  editioning view emp
  3  as
  4  select *
  5    from "_EMP"
  6  /

View created.

SQL>
SQL> alter session set edition = r2
  2  /

Session altered.

SQL> create or replace
  2  editioning view emp
  3  as
  4  select *
  5    from "_EMP"
  6  /

View created.

SQL>

I believed, wrongly, that the wildcard “*” 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’t even get invalidated…


SQL> alter session set edition = ora$base
  2  /

Session altered.

SQL> alter table "_EMP"
  2  add something varchar2(10)
  3  /

Table altered.

SQL> select owner
  2       , object_name
  3      , status
  4    from all_objects_ae
  5   where object_name = 'EMP'
  6  /

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

2 rows selected.

Even though they don’t get invalidated, the definition of the editioning views surely must be changed then….

SQL>
SQL> alter session set edition = r1
  2  /

Session altered.

SQL> desc emp
 Name                                                              Null?    Type
 ----------------------------------------------------------------- -------- ----------------------

 EMPNO                                                                      NUMBER
 ENAME                                                                      VARCHAR2(20)

SQL>
SQL> alter session set edition =  r2
  2  /

Session altered.

SQL> desc emp
 Name                                                              Null?    Type
 ----------------------------------------------------------------- -------- ----------------------

 EMPNO                                                                      NUMBER
 ENAME                                                                      VARCHAR2(20)

SQL>

No. The definition includes the columns which existed before we altered the table.
What is stored in the metadata, you may wonder. Let’s go and find out:

SQL> alter session set edition = r1
  2  /

Session altered.

SQL> set long 50000
SQL> select dbms_metadata.get_ddl ('VIEW'
  2                               ,'EMP'
  3                                                      )
  4    from dual
  5  /

DBMS_METADATA.GET_DDL('VIEW','EMP')
--------------------------------------------------------------------------------

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


1 row selected.

SQL>
SQL> alter session set edition =  r2
  2  /

Session altered.

SQL> select dbms_metadata.get_ddl ('VIEW'
  2                               ,'EMP'
  3                                                      )
  4    from dual
  5  /

DBMS_METADATA.GET_DDL('VIEW','EMP')
--------------------------------------------------------------------------------

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


1 row selected.

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.
Connor was absolutely right about the mechanics of Edition Based Redefinition. Does this mean you should use the wildcard “*”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’t suppose to be there. When you explicitly name your columns, you won’t have this problem.

Just the last bit, cleaning up my environment:


SQL> alter session set edition = ora$base
  2  /

Session altered.

SQL> drop edition r2 cascade
  2  /

Edition dropped.

SQL> drop edition r1 cascade
  2  /

Edition dropped.

SQL> drop table "_EMP" purge
  2  /

Table dropped.

The post Oracle Open World 2011: Oracle Database 11g Features for Developers by Connor McDonald appeared first on AMIS Technology Blog.

]]>
http://technology.amis.nl/2011/10/04/oracle-open-world-2011-oracle-database-11g-features-for-developers-by-connor-mcdonald/feed/ 0
Oracle Open World 2011; Unstructured Data and Multimedia SIG http://technology.amis.nl/2011/10/02/oracle-open-world-2011-unstructured-data-and-multimedia-sig/ http://technology.amis.nl/2011/10/02/oracle-open-world-2011-unstructured-data-and-multimedia-sig/#comments Sun, 02 Oct 2011 19:13:07 +0000 http://technology.amis.nl/blog/?p=13536 Oracle Open World is underway. My first session, which I didn’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 this, Marcelle Kratochvil [...]

The post Oracle Open World 2011; Unstructured Data and Multimedia SIG appeared first on AMIS Technology Blog.

]]>
Oracle Open World is underway. My first session, which I didn’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 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 https://sites.google.com/site/ommuds/home. Head over there and check it out.
She also showed some very nice examples of customers using multimedia. Unfortunately I had to leave at this time.
Even though I didn’t plan on attending this session, it was very interesting – too bad I had to leave for a different session, but I will surely be investigating more on unstructured data.

The post Oracle Open World 2011; Unstructured Data and Multimedia SIG appeared first on AMIS Technology Blog.

]]>
http://technology.amis.nl/2011/10/02/oracle-open-world-2011-unstructured-data-and-multimedia-sig/feed/ 0
Where am I, and what am I doing… Oracle Open World 2011 http://technology.amis.nl/2011/10/02/where-am-i-and-what-am-i-doing-oracle-open-world-2011/ http://technology.amis.nl/2011/10/02/where-am-i-and-what-am-i-doing-oracle-open-world-2011/#comments Sat, 01 Oct 2011 23:02:09 +0000 http://technology.amis.nl/blog/?p=13525 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 [...]

The post Where am I, and what am I doing… Oracle Open World 2011 appeared first on AMIS Technology Blog.

]]>
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 ones. So if you see me walking around, please come up and say hello.

The post Where am I, and what am I doing… Oracle Open World 2011 appeared first on AMIS Technology Blog.

]]>
http://technology.amis.nl/2011/10/02/where-am-i-and-what-am-i-doing-oracle-open-world-2011/feed/ 0
Oracle Open World / Java One Preview bij AMIS http://technology.amis.nl/2011/09/08/oracle-open-world-java-one-preview-bij-amis/ http://technology.amis.nl/2011/09/08/oracle-open-world-java-one-preview-bij-amis/#comments Thu, 08 Sep 2011 19:17:33 +0000 http://technology.amis.nl/blog/?p=13337 Op maandag 19 september zal er bij AMIS een Oracle Open World Preview sessie worden gehouden. Een groot deel van de Nederlanders die het dit jaar gelukt is om aanwezig te zijn als spreker op Oracle Open World zullen hun presentaties geven in Nieuwegein. AMIS-ers Lucas Jellema, Alex Nuijten, Peter Ebell en Aino Andriessen zullen [...]

The post Oracle Open World / Java One Preview bij AMIS appeared first on AMIS Technology Blog.

]]>
Op maandag 19 september zal er bij AMIS een Oracle Open World Preview sessie worden gehouden. Een groot deel van de Nederlanders die het dit jaar gelukt is om aanwezig te zijn als spreker op Oracle Open World zullen hun presentaties geven in Nieuwegein. AMIS-ers Lucas Jellema, Alex Nuijten, Peter Ebell en Aino Andriessen zullen in drie parallel sessies presentaties verzorgen. Daarnaast zullen andere Nederlandse presentatoren – zie hieronder de lijst met sprekers – presentaties verzorgen.

Heb je dit jaar niet de kans om in San Fransisco aanwezig te zijn, meld je dan aan voor deze preview sessie Oracle Open World 2011!

Zaal 1 Zaal 2 Zaal 3
17:00 – 18:00 Lucas Jellema Aino Andriessen Alex Nuijten
18:00 – 19:00 Diner Diner Diner
19:00 – 20:00 Jacco Landlust Kees Jan Koster Peter Ebell
20:00 – 21:00 Lonneke Dikmans Kees Jan Koster/ Jeroen Borgers

Lucas Jellema – Instant Agility in Oracle Fusion Middleware Through Design Time @ Runtime

This session will discuss quality aspects of an ADF Fusion application. It will demonstrate how to address, manage and measure quality and will show what tools can be used to leverage the development process to create high quality ADF Fusion applications.

Jacco Landlust – Deployment Patterns for Oracle Fusion Middleware 11g

Oracle Fusion Middleware 11g is a comprehensive software suite that can be installed in a wide range of different topologies. In this session, an Oracle ACE Director (Simon Haslam) and an Oracle ACE (Jacco H. Landlust) combine their real-world experience in a range of organizations (including supermarkets, government departments, and banks) to explain the decisions you have to make in designing a middleware infrastructure.The presentation covers Oracle WebLogic Server, supporting infrastructure such as Oracle Internet Directory, and layered products such as Oracle SOA Suite. Topics include domain planning, clustering options, handling virtualization, patching strategy, and promoting software from test to production.

Lonneke Dikmans – Approach to SOA: Making This a Successful Endeavor for the Whole Organization

This session starts by explaining key features of SOA. There are several reasons to start with SOA: it can be a strategic choice, it can be started from an IT perspective, or the endeavor can be started from a specific department or business issue. To make the SOA effort successful, it is important to decide where to start. Selecting the right tooling, training, and projects is an important success factor. This session discusses Oracle SOA Suite and Oracle Unified Business Process Management Suite and explains how the suites fit into the roadmap to SOA. At the end of this session, you will know what SOA means, when it is best used, and how you can get there.

Aino Andriessen – Spend some quality time on you ADF Application

A key factor in succesfull (ADF Fusion) application development is good quality management. And although everybody agrees on that, many projects still struggle with the definition of quality let alone with the implementation, measurement and enforcement of a quality process. Hight quality improves the system’s stability and maintainability and allows for better and faster development and is thus beneficial both to the owner as wel as the developer.

Kees Jan Koster – Cache Fundamentals, Dangers, and Tuning

This presentation is a tour of the surprisingly large number of caches in a typical Java application and the systems it is part of. You’ll take home a practical approach to examining the characteristics of a cache and will be able to compare caching solutions.

Kees Jan Koster en Jeroen Borgers – Java Tuning Puzzlers

This session looks at some strange and bizarre exceptions, error messages, and performance measurements. It discusses each of them and tries to resolve them. You are invited to chip in, offer solutions, ask questions, and learn about some of the more obscure corners of Java.

Peter Ebell – Bridging the gap between SOA and the Database

All too often, they are perceived as two different worlds. There’s the realm of the Oracle SOA Suite, where everything revolves around technologies like XML, Web Services and BPEL. And there’s your databases, containing your company’s data and business logic in tables, views and PL/SQL logic. For SOA to be successful, these two worlds must be able to interact closely. This presentation will provide a thorough overview of the many ways in which the SOA Suite can connect to the database (for instance through the Database Adapter, SDO, EDN or Native DBWS), and vice versa: how services and processes in the SOA Suite can be invoked from within the database (using among others AQ, UTL_HTTP and DBMS_EPG). Illustrated by demos, the possibilities of each of these techniques will be made clear. Also, some common solutions and scenarios will be discusses using real life examples.

Alex Nuijten – Who’s afraid of Analytic Functions?

“I never had the need for Analytic Functions”, is one of the phrases that is heard quite often. Maybe that’s true, maybe it isn’t. Recognizing the need for a particular feature can only occur when you have enough exposure to the feature. In this presentation a number of real life examples will be covered which will show the power of Analytic Functions and the ease of solving the challenge at hand. You can learn the syntax from the Oracle Documentation, but you will learn to recognize “the need for them” by real life examples.

Inschrijven kan hier.

The post Oracle Open World / Java One Preview bij AMIS appeared first on AMIS Technology Blog.

]]>
http://technology.amis.nl/2011/09/08/oracle-open-world-java-one-preview-bij-amis/feed/ 0
Business Rule: Only One per Day, but keep the time http://technology.amis.nl/2011/08/24/business-rule-only-one-per-day-but-keep-the-time/ http://technology.amis.nl/2011/08/24/business-rule-only-one-per-day-but-keep-the-time/#comments Wed, 24 Aug 2011 13:45:48 +0000 http://technology.amis.nl/blog/?p=13298 The business rule states: Only one entry is allowed per ID and per day and the time should be recorded. The table involved (simplified for the blog post) SQL> create table test 2 (id number 3 ,inspection_dt date 4 ); Wouldn’t it be nice if it was possible to do it like this? SQL> create [...]

The post Business Rule: Only One per Day, but keep the time appeared first on AMIS Technology Blog.

]]>
The business rule states:

Only one entry is allowed per ID and per day and the time should be recorded.

The table involved (simplified for the blog post)

SQL> create table test
  2  (id         number
  3  ,inspection_dt date
  4  );

Wouldn’t it be nice if it was possible to do it like this?

SQL> create table test
  2  (id         number
  3  ,inspection_dt date
  4  ,constraint one_per_day unique (id, trunc (inspection_dt))
  5  );
,constraint one_per_day unique (id, trunc (inspection_dt))
                                    *
ERROR at line 4:
ORA-00904: : invalid identifier

This way you still have the complete date information (time is a component of the date column), and only use the TRUNC (inspection_dt) to constrain the data entry.
As you can tell from the error message, this is not allowed.
Oracle 11g Release 1 introduced Virtual Columns which can implement this requirement declaratively.


A Virtual Column is a column which is based on an expression which can be used in e.g. constraints – just what the doctor ordered.

SQL> create table test
  2  (id         number
  3  ,inspection_dt date
  4  ,inspection_day as (trunc (inspection_dt))
  5  ,constraint one_per_day unique (id, inspection_day)
  6  );

Table created.

The virtual column is defined on line 4 in the above CREATE statement.
If the table already exists, you can also add the Virtual Column with an ALTER statement.

SQL> alter table test add (
  2    inspection_date date
  3    generated always
  4    as
  5      (trunc (inspection_dt))
  6    virtual
  7  )
  8  /

Table altered.

To test the requirement, we simply insert date with SYSDATE into the table – wait a little bit (one second) – and insert again with SYSDATE.

SQL> insert into test (id, inspection_dt) values (1, sysdate)
  2  /

1 row created.

SQL> begin
  2     dbms_lock.sleep (1);
  3  end;
  4  /

PL/SQL procedure successfully completed.

SQL> insert into test (id, inspection_dt) values (1, sysdate)
  2  /
insert into test (id, inspection_dt) values (1, sysdate)
*
ERROR at line 1:
ORA-00001: unique constraint (ALEX.ONE_PER_DAY) violated

Why the wait? Because I scripted this test (for the blog) SYSDATE has only second-granularity, so the records could be inserted in the same second. Which would have the same result as a unique constraint on the ID and INSPECTION_DT.

As you can see from the output in the above script, only one record is inserted into the table, the other attempt yields an exception.
Just to prove that the time component of the INSPECTION_DT column is recorded as per requirement:

SQL> select id
  2       , to_char (inspection_dt, 'dd-mm-yyyy hh24:mi:ss')
  3    from test
  4  /

        ID TO_CHAR(INSPECTION_
---------- -------------------
         1 24-08-2011 05:43:54

If you don’t have Oracle 11g, there is a way to implement this requirement with a Unique Function Based Index (will require at least Oracle 9i – I ran my scripts on an Oracle 10g Release 2).
We start of with the same table:

SQL> create table test
  2  (id         number
  3  ,inspection_dt date
  4  );

Table created.

And add the Unique Function Based Index on it.

SQL> create unique index one_per_day on test
  2  (id, trunc (inspection_dt))
  3  /

Index created.

The Function Based Index is based on the same expression we used earlier, the TRUNC (inspection_dt). Because this index is created as Unique, it will implement the requirement as stated.
Same testscript as before:

SQL> insert into test values (1, sysdate)
  2  /

1 row created.

SQL> begin
  2     dbms_lock.sleep (1);
  3  end;
  4  /

PL/SQL procedure successfully completed.

SQL> insert into test values (1, sysdate)
  2  /
insert into test values (1, sysdate)
*
ERROR at line 1:
ORA-00001: unique constraint (ALEX.ONE_PER_DAY) violated

SQL> select id
  2       , to_char (inspection_dt, 'dd-mm-yyyy hh24:mi:ss')
  3    from test
  4  /

        ID TO_CHAR(INSPECTION_
---------- -------------------
         1 24-08-2011 05:43:52

Links

Oracle 9i docs
Oracle Base on Virtual Columns

UPDATE

My colleague Martijn Hoekstra just pointed out that Function Based Indexes were introduced in Oracle 8i, not Oracle 9i.
Oracle-Base on Function Based Indexes. Thank you Martijn for this correction.

The post Business Rule: Only One per Day, but keep the time appeared first on AMIS Technology Blog.

]]>
http://technology.amis.nl/2011/08/24/business-rule-only-one-per-day-but-keep-the-time/feed/ 5
ODTUG KScope 2011: looking back http://technology.amis.nl/2011/07/07/odtug-kscope-2011-looking-back/ http://technology.amis.nl/2011/07/07/odtug-kscope-2011-looking-back/#comments Thu, 07 Jul 2011 07:32:05 +0000 http://technology.amis.nl/blog/?p=12809 Last week the yearly ODTUG KScope conference took place in Long Beach, California. I always need to time to let this wonderful event really sink in. The number of sessions and the wealth of information that you get is really quite extraordinary. In this blogpost I will highlight some of the sessions that I attended. [...]

The post ODTUG KScope 2011: looking back appeared first on AMIS Technology Blog.

]]>
Last week the yearly ODTUG KScope conference took place in Long Beach, California. I always need to time to let this wonderful event really sink in. The number of sessions and the wealth of information that you get is really quite extraordinary.
In this blogpost I will highlight some of the sessions that I attended.

Sunday

Sunday is always a symposium day, this year I attended the APEX track. The Oracle Application Express Development team filled us in on what to expect from the next APEX release, 4.1. The most exciting, or at least to me, is the improved exception handling.

Monday

The “real” conference starts with the Opening General Session. This session wasn’t in the conference center, but in the Long Beach Performing Arts Center and what an opening it was…. My colleague Marco filmed parts of it, simply hilarious.
After the General Session, I attended Cary Millsap’s “My case for Agile Methods”. It is always very enjoyable to listen to Cary. One of the other sessions that I look forward to seeing what Patrick Wolf’s “Improved Error Handling in Oracle Application Express 4.1″. Can’t wait for the 4.1 version to be released and use it for real.
In the evening there was the Database Guru Panel, with Cary Millsap, Steven Feuerstein and Tom Kyte. These guys are truly awesome, the knowledge they share is just fabulous. Some very interesting discussions filled the evening.

Tuesday

The first session in the morning was my own, “Who’s afraid of Analytic Functions?”. Around 60 attended my session and I was very pleased with that.
The Oracle ACE Program organized a very special lunch, a so called “Lunch and Learn” session. In different rooms, different Oracle ACE’s and Oracle ACE Directors had panels. Together with Eddie Awad and Steven Feuerstein, I was in the Database Development panel. Sometimes it can be quite a challenge to eat lunch and answer questions at the same time.

Wednesday

Carsten Czarski did a great presentation “It’s all about Location: APEX, Spatial, and Maps”. Nice demo’s and clear explanation.
The other session that I really enjoyed was Eddie Awad’s “Five Features you ought to know about the Oracle Scheduler”, great examples, great explanation. Great job, Eddie!
Doug Gault’s “Creating a Spark Line plugin from Scratch”, where he shows how to create a plugin for APEX was a fantastic way to end the day. End the day? Well, not completely…
The Wednesday evening is always reserved for the Grand Event – All aboard the Queen Mary, a magnificent party with fireworks to top it off.

Thursday

The closing session I did attend. What the real shocker was, was that I got the “Best Speaker Award – Database Development Track”,.. still can’t believe it.

The post ODTUG KScope 2011: looking back appeared first on AMIS Technology Blog.

]]>
http://technology.amis.nl/2011/07/07/odtug-kscope-2011-looking-back/feed/ 0
ODTUG KScope Preview 2011 http://technology.amis.nl/2011/06/14/odtug-kscope-preview-2011/ http://technology.amis.nl/2011/06/14/odtug-kscope-preview-2011/#comments Tue, 14 Jun 2011 06:44:54 +0000 http://technology.amis.nl/blog/?p=12115 Ook dit jaar, namelijk op dinsdag 14 Juni, organiseert AMIS de ODTUG Preview. Het jaarlijkse congres van de ODTUG, de Oracle Development Tools Users Group, vind dit jaar plaats in Longbeach, California van 26 tot en met 30 juni. Het is niet voor iedereen weggelegd om daar naar toe te gaan. AMIS biedt, alweer voor [...]

The post ODTUG KScope Preview 2011 appeared first on AMIS Technology Blog.

]]>
Ook dit jaar, namelijk op dinsdag 14 Juni, organiseert AMIS de ODTUG Preview. Het jaarlijkse congres van de ODTUG, de Oracle Development Tools Users Group, vind dit jaar plaats in Longbeach, California van 26 tot en met 30 juni. Het is niet voor iedereen weggelegd om daar naar toe te gaan. AMIS biedt, alweer voor het vijfde achtereenvolgende jaar, aan geïnteresseerden de kans om een selectie van de presentaties die daar te zien zijn bij te wonen. Een aantal Europese sprekers zal tijdens de AMIS ODTUG preview presentatie laten zien die ook in de Verenigde Staten worden gehouden.
Tijdens de AMIS ODTUG Preview zullen er drie keer drie parallelle sessies worden gehouden met verschillende onderwerpen zoals APEX, database development, ADF, JHeadstart en SOA.

Programma:

Tijd Track 1 Track 2 Track 3
16:30 Welkom en Registratie
17:00 XFILES, the APEX 4 Version: The Truth is in There…Marco Gralike & Roel Hartman ADF Developers – Make the Database Work for YouLucas Jellema Pipelined Table FunctionsPatrick Barel
18:00 Dinner
19:00 APEX Face/Off – Designing a GUI with APEX Templates and ThemesChristian Rokitta BPMN: The New Silver Bullet?Lonneke Dikmans Building Highly Reusable ADF TaskflowsSteven Davelaar
20:15 Who’s Afraid of Analytic Functions?Alex Nuijten Overview of Eventing in Oracle SOA Suite 11gRonald van Luttikhuizen …and Thus Your Forms ‘Automagically’ DisappearedLuc Bors

Dit evenement is met name bedoeld voor ontwikkelaars.
Uiteraard zijn er aan dit event geen kosten verbonden, maar het aantal plaatsen voor dit evenement is beperkt, wacht niet te lang. Vol is vol.
Inschrijven via www.amis.nl

Details over de presentaties

Hieronder volgen de abstracts van [enkele van]de presentaties:

Building Highly Reusable ADF Taskflows – Steven Davelaar

If well-designed, ADF Task Flows are self-contained reusable UI services, with a clearly defined contract. In this presentation. Steven will explain step-by-step how you can create highly reusable and configurable ADF Task flows.He will explain and demonstrate how to build one taskflow that is used for data entry, for lookup in a popup window, for deeplinking from other taskflows or external sources like e-mail, as a master taskflow as well as a detail taskflow. After this session you will understand how you can dramatically increase the level of reuse in your application, and you will have learned a number of advanced ADF techniques.

Pipelined Table Functions – Patrick Barel

“If you can do it in SQL, use SQL.” But sometimes even the very powerful version of SQL that Oracle provides is not enough and you need more, like loops, conditions, etc. If you can make the output of a function like it’s a table, then you can use it in SQL and have access to all the power PL/SQL provides. After this session, you will know how to create functions that can be used as tables in SQL.

Who’s Afraid of Analytic Functions? – Alex Nuijten

Recognizing when Analytic Functions can be useful in your daily work is a lot harder than learning the syntax. In this presentation, real life examples are discussed to unleash the power of Analytic Functions.

APEX Face/Off – Designing a GUI with APEX Templates and Themes – Christian Rokitta

This presentation is a practical guide to the concept of APEX themes and templates. It outlines skills, tooling, and steps necessary to create a professional looking, custom APEX GUI.

XFILES, the APEX 4 Version: The Truth is in There… – Roel Hartman & Marco Gralike

Version control is not built into APEX. This session will show how to use power of the underlying XML Database to build a version control system for APEX … built in APEX itself!

BPMN: The New Silver Bullet?  – Lonneke Dikmans

Given Oracle BPM Suite is now integrated into SOA Suite via SCA, does this mean BPMN is the new silver bullet in modeling and executing processes? Should developers really be switching from BPEL to BPMN? This session will take delegates through BMPN 2.0 in detail, showing how to model and execute BPMN in Oracle BPM Suite. It will also explain if and when processes should be modeled in Oracle BPA Suite. In addition, the session will discuss guidelines on when to use BPMN vs. BPEL. Finally, some pointers are given regarding the granularity of the business process: some of process logic can be defined in ADF task flows, others are better left in the process flow. The session illustrates the different concepts with demos from the Oracle BPA Suite and Oracle BPM Suite.

Overview of Eventing in Oracle SOA Suite 11g – Ronald van Luttikhuizen

Services and events are highly complementary instead of competing paradigms in the ICT landscape. Oracle SOA Suite 11g emphasizes the importance of events by introducing the Event Delivery Network (or EDN) into the SCA infrastructure. This session provides an introduction of eventing in SOA Suite 11g. It will start by explaining the basics of events [also with respect to services], introduce several messaging patterns such as fire-and-forget and publish/subscribe, and explain some real life examples of using events in an SOA landscape. It will then dive into the underlying eventing infrastructure of Oracle WebLogic Server 11g and Oracle SOA Suite 11g that is based on JMS and AQ, and demo their use both inside and outside SCA composites using resource adapters, PL/SQL, and Java. The session will finish with the introduction of Oracle SOA Suite 11g’s EDN and the use of (composite) sensors in SCA composites.

ADF Developers – Make the Database Work for You – Lucas Jellema

Most ADF applications interact with an (Oracle) RDBMS. It has been proven many times over that it really pays off to strike a good balance between ADF and Database – exploring which tool is best suited for which job and how the two can optimally leverage each other. This session discusses the various points of interaction between database and ADF and when to use which – for example Cursors, Types and Collections, XML as well as interaction via HTTP. The session will focus on ADF BC but will mention JPA and plain JDBC as well. It also highlights some special database features – hierarchical query, flashback, result cache, View with Instead Of Trigger, Analytical Functions – that ADF applications can leverage or should employ – security, database tracing, cache refresh through DB Query ResultSet Change Notification, constraints, and exception handling. Attendees learn what the database can do for their ADF application. They will be able to make better design decisions about how to implement functionality, which tier(s) to use, and how they can best work together.

…and Thus Your Forms ‘Automagically’ Disappeared – Luc Bors

This session is A Forms Modernization Story Featuring JHeadstart Forms2ADF. It talks about considerations to make when you are about to decide whether or not to leave Forms and go for ADF. You will see the process of conversion step by step starting with the business case and ending at the new ADF application. You will hear about issues you run into when using Forms2ADF for automated conversion and you will get hints on how to use Forms2ADF.

The post ODTUG KScope Preview 2011 appeared first on AMIS Technology Blog.

]]>
http://technology.amis.nl/2011/06/14/odtug-kscope-preview-2011/feed/ 0
Should you expose a Stored Procedure via XMLType? http://technology.amis.nl/2010/12/23/should-you-expose-a-stored-procedure-via-xmltype/ http://technology.amis.nl/2010/12/23/should-you-expose-a-stored-procedure-via-xmltype/#comments Thu, 23 Dec 2010 11:34:12 +0000 http://technology.amis.nl/blog/?p=9479 When you want to expose your Stored Procedure to the “outside world”, should you do this using XMLType? As always, the correct answer is “it depends”. For this example I will use a Package containing two functions, the signature of the package is as follows: create or replace package emps_pkg is function get_department_xml (p_department_no in [...]

The post Should you expose a Stored Procedure via XMLType? appeared first on AMIS Technology Blog.

]]>
When you want to expose your Stored Procedure to the “outside world”, should you do this using XMLType? As always, the correct answer is “it depends”.
For this example I will use a Package containing two functions, the signature of the package is as follows:

create or replace package emps_pkg
is
   function get_department_xml (p_department_no in number)
      return xmltype;

   function get_departement_ot (p_department_no in number)
      return all_departments_ot;

end emps_pkg;


One function returns an XMLType (named get_department_xml) and the other returns an Object Type (named get_department_ot). They both return data from the EMPLOYEES and DEPARTEMENTS tables in the HR schema.
The implementation of the package body is based on this blogpost.

With a database adapter in the SOA Suite you can expose each of these functions. To be really useful you will need to add a mediator.

Two Mediators each with a connection to the database adapter

On the right hand side, in the above image, the database adapters are shown. The purple things are the mediators where the actual mapping takes place (XSLT).

The biggest difference between the two implementations can be found in the Mapper file.

Transformation based on XMLType

As you can see in the image above, the functions returns something. That “something” could basically be anything. Not a whole lot of information.

Using the Object Type as a returntype from the function makes a big difference.

Transformation based on Object Type

Here you can see the complete structure of the Object Type (which is a quite complex Object Type). Makes Mapping a lot easier.

The post Should you expose a Stored Procedure via XMLType? appeared first on AMIS Technology Blog.

]]>
http://technology.amis.nl/2010/12/23/should-you-expose-a-stored-procedure-via-xmltype/feed/ 2