Feed aggregator

Multi value selectors

Jornica - Wed, 2007-04-18 00:36

APEX had three multi value selectors: check box, multi select and list manager. APEX 3.0 introduces a new multi value selector: the shuttle. An shuttle consists of two text areas with buttons between the the area's to move items back and forth. At the right side, the selection, there are buttons to change the order of the items in the right text area. All selectors are based on a list of values. Setting or getting values of these selectors can be done with colon separated strings i.e. 'Violet:Indigo:Blue'.

The shuttle and list manager also preserve the select order as you can see in the picture. For each selector the same values in the same order are selected: first Violet and second Indigo. As you can see in the text boxes the shuttle and list manager preserve selection order in contrary with check box and multi select. The picture shown here is a modified version of on-line demo Item Types.

Conversion of 07 is done!

Herod T - Mon, 2007-04-16 10:54

Required a marathon 36 hours at work for 3 of us, but it is complete. The users have been using the new production system for almost 24 hours now. New system is magnitudes faster than the old one, the users are ecstatic.

Only issue we had was about 2 hours into the data transfer some chuckle head at the remote site accidental stepped on the power bar for 2 of the 4 new internet routers, but the error checking took care of it. Once the modem's were powered back on, the process realized it, and started the transfers again.

Transferring System Statistics to a TEST environment

Vidya Bala - Fri, 2007-04-13 15:15
Can we transfer system statistics from a Production environment to a Test environment? Most documentation talk about simulating a workload in your test environment and gather system statistics in test before implementing system statistics in Production. We are on Oracle 9i ( in Production - we have not gathered system statsitics in Production so far. The decision has been made to start gathering System Statistics in Production. Testing this in a test environment prior to implementation seems like a challenge - given that our load test simulation may be very very different from Production.

Is it not possible to Gather System Stats in Production into a Staging Table , export the staging table to the Test environment and then import the Stats into the data dictionary in Test? Even if the above is possible , some key questions still remain while gathering System Stats into a Staging Table in Production -

a)is performance of Production impacted while System Stats is being gathered to a staging table?
b)SQL in the SGA invalidated ? - all documents that I have read so far tell me the answer is "No"
c)Since stats are gathered into a Staging Table , I am assuming no execution plans should change until stats are imported into the data dictionary in Production .

It will be great to know if any one has run into the same issue.
Categories: Development

should we change sql to meet ANSI 99 standards

Vidya Bala - Wed, 2007-04-11 18:02
I should say in all my years as both a Production and Development DBA I have very rarely seen my developers follow the most latest ANSI standard guide during sql development. Considering that most of us are on crunch time always with Application Development. Anyways I had the question posted to me " Shouldnt we change our sql to meet ANSI 99 compliance".

my 2 cents would be "No" - I really see the need to change the SQL if we were migrating say from Oracle to SQL Server for portability reasons. For the most bit Oracle version specific SQL development guides should be ANSI compliant and that should be enough - but then its just the way I have seen things work. Anyone run into the same issue - would be good to know.
Categories: Development


Robert Baillie - Wed, 2007-04-11 02:20
I'm pretty sure that most people that read this blog will also read The Daily WTF. But just in case you don't, there's a nice entry on 'soft-coding'. Overall the article makes sound sense, but there's a line right at the end that resonates with me, especially since I read it the day after someone told me that they needed a developer for a whole day (9 hours) to roll out their system... With the myriad of tools available today, there is no reason that your deployment process need be any more complicated than a simple, automated script that retrieves the code from source control, compiles it, copies/installs the executables, and then runs the relevant database scripts. It makes me feel like I'm not alone.


Rob Baillie - Wed, 2007-04-11 02:12
I'm pretty sure that most people that read this blog will also read The Daily WTF.

But just in case you don't, there's a nice entry on 'soft-coding'.

Overall the article makes sound sense, but there's a line right at the end that resonates with me, especially since I read it the day after someone told me that they needed a developer for a whole day (9 hours) to roll out their system...

With the myriad of tools available today, there is no reason that your deployment process need be any more complicated than a simple, automated script that retrieves the code from source control, compiles it, copies/installs the executables, and then runs the relevant database scripts.

It makes me feel like I'm not alone.

Oracle Develop hits the road

Clemens Utschig - Tue, 2007-04-10 23:33

Oracle Develop: The Premier Conference for Developers

This spring, Oracle Develop—the premier conference for developers—is coming to a city near you. Don't miss it. You'll experience two days of expert-led, in-depth technical sessions, hands-on labs, advanced how-tos, and detailed tutorials. Work alongside the world's leading experts to expand your knowledge of popular technologies like Enterprise Java, SOA, .NET, Databases and PL/SQL, as well as Ajax, PHP, Spring, and more. This is your opportunity to network with local technologist while learning from the world's best.

More information can be found here

Oracle Develop is coming to Europe and Asia! Sign up now!

Christian Shay - Mon, 2007-04-09 13:53
Following up on the tremendous success of our San Francisco Oracle Develop conference, we are bringing Oracle Develop on the road to Europe and Asia in May and June. We will have in-depth technical sessions as well as hands on labs where you can get your hands dirty with the latest and greatest Oracle products.

Click here to go to the main Oracle Develop web page to read more and to sign up.

Here's are some of the planned .NET sessions:
Getting Started with Oracle and .NET
New Features in Oracle Database 11g for .NET Developers
PL/SQL Programming for .NET Developers: Tips, Tricks, and Tools
Best Practices for .NET Developers
Hands-on Lab: Building .NET Applications with Oracle

There will also be many sessions on Enterprise Java, SOA, Databases and PL/SQL, as well as Ajax, PHP, Spring, and more.

Dates and locations:
May 14-15 Seoul, Lotte Jamsil
May 17-18 Bangalore, The Grand Ashok
May 22-23 Beijing, China World Hotel
June 18-19 Munich, Arabella Sheraton
June 21-22 Prague, Prague Conference Center
June 26-27 London, ExCeL

Here's a couple photos I took at the San Francisco Oracle Develop .NET Hands on Lab, showing some pretty intense learning going on!

See you there!

Safari on Solaris!!

Siva Doe - Sun, 2007-04-08 23:49

Well, got your attention didn't I. Not exactly Safari, but got GTK-Webcore ported and running in Solaris (Nevada). Obligatory screenshot here.

It is crashing on clicking any link, though. You can type in some  URL (SWAN), and it works okay.

I have to say, this is very fast. Takes about 2 seconds for the screen to show up from the moment I type in the command. Would be interesting to see the development.

Dial 1-800-GOOG-411

Omar Tazi - Sun, 2007-04-08 20:43

This might not be open source but it is FREE. If you are tired of being charged $1.5 by your cellular carrier for every 411 call, try Google's Voice Local Search. It is still experimental but we know what Google means by experimental or beta. It's usually pretty darn good. Although it was released earlier this month I just had a chance to try it today and I it worked just fine. About 75% of my attempts worked, when I'm not lucky I just say "back" and I get another chance. This service doesn't include residential requests but you can use it to find businesses. You can try "San Francisco California" and "Mas Sake Sushi" and it'll connect you or just say "text message" and it'll send you an sms (both free of charge).

This is a $7B/year market, more than 2.5 billion 411 calls are made every year in America. AT&T is toying with the free 411 calls but competition for this service comes from Jingle Networks which seems to have captured more than 5% of the 411 U.S. market in 2006. Another serious player is TellMe which was recently acquired by guess who... Microsoft of course.

DATE comparisons: the scenic route

Oracle WTF - Sun, 2007-04-08 07:37

Need to calculate the number of minutes between two dates? Yes, the dull way is to subtract one from the other and multiply by 1440. But why do that, when you can simply convert each date into Julian format by converting it into a string and then back to a date, and converting the resulting date into a Julian string, and (in a separate step) applying TO_NUMBER to the result to get an integer, so that you can simply subtract one from the other and multiply by 1440.

Except that rounds to the nearest day, so an additional step is to calculate the minutes since midnight for each of the two dates, which you can do by simply converting each date into an 'HH:MI AM' string, then back to a date, then back to an 'SSSSS' string, converting it to a number, dividing by 60 and adding it to the result of the first calculation. I think.

Anyway, consider the following library of handy date functions our Oracle WTF Easter gift to you, the online development community.

    FUNCTION julian_date
        ( date_to_convert DATE )

    FUNCTION minutes_since_midnight
        ( timevalue DATE )

    FUNCTION minutes_elapsed
        ( lowdate DATE
        , highdate DATE )

END dates_pkg;

    FUNCTION julian_date
        ( date_to_convert DATE)
        varch_value VARCHAR (10);
        num_value NUMBER (20);
               ( TO_DATE(TO_CHAR(date_to_convert,'MM/DD/YYYY'),'MM/DD/YYYY')
               , 'J')
        INTO   varch_value
        FROM   dual;

        SELECT TO_NUMBER (varch_value)
        INTO   num_value
        FROM   dual;

        RETURN (num_value);
    END julian_date;

    FUNCTION minutes_since_midnight (
        timevalue DATE)
        secs_elapsed NUMBER (20);
        mins_elapsed NUMBER (20);
               ( TO_CHAR(TO_DATE(TO_CHAR(timevalue,'HH:MI AM'),'HH:MI AM')
               , 'SSSSS') )
        INTO   secs_elapsed
        FROM   dual;

        SELECT (secs_elapsed / 60)
        INTO   mins_elapsed
        FROM   dual;

        RETURN (mins_elapsed);
    END minutes_since_midnight;

    FUNCTION minutes_elapsed
        ( lowdate DATE
        , highdate DATE )
        final_number NUMBER (20);
        low_julian NUMBER (20);
        high_julian NUMBER (20);
        num_days NUMBER (20);
        num_minutes NUMBER (20);
        temp_mins NUMBER (20);
        min_low NUMBER (20);
        min_high NUMBER (20);
        SELECT julian_date (lowdate)
        INTO   low_julian
        FROM   dual;

        SELECT julian_date (highdate)
        INTO   high_julian
        FROM   dual;

        SELECT (high_julian - low_julian)
        INTO   num_days
        FROM   dual;

        SELECT (num_days * 1440)
        INTO   num_minutes
        FROM   dual;

        SELECT minutes_since_midnight (lowdate)
        INTO   min_low
        FROM   dual;

        SELECT minutes_since_midnight (highdate)
        INTO   min_high
        FROM   dual;

        SELECT (min_high - min_low)
        INTO   temp_mins
        FROM   dual;

        SELECT (num_minutes + temp_mins)
        INTO   final_number
        FROM   dual;

        RETURN (final_number);

    END minutes_elapsed;
END dates_pkg;

Just for fun, let's test it:

CREATE TABLE wtf_test (start_date NOT NULL, end_date NOT NULL) AS
SELECT DATE '2006-12-25' + DBMS_RANDOM.VALUE(1,365)
     , DATE '2007-12-25' + DBMS_RANDOM.VALUE(1,365)
FROM   dual CONNECT BY LEVEL <= 1000;

-- ...several runs here to allow for caching etc, last set of results shown...

SQL> set timing on autotrace traceonly stat

SQL> SELECT dates_pkg.minutes_elapsed(start_date,end_date) FROM wtf_test;

1000 rows selected.

Elapsed: 00:00:03.96

  16000  recursive calls
      0  db block gets
     74  consistent gets
      0  physical reads
      0  redo size
   9330  bytes sent via SQL*Net to client
    809  bytes received via SQL*Net from client
     68  SQL*Net roundtrips to/from client
      0  sorts (memory)
      0  sorts (disk)
   1000  rows processed

SQL> SELECT (end_date - start_date) * 1440 FROM wtf_test;

1000 rows selected.

Elapsed: 00:00:00.16

      0  recursive calls
      0  db block gets
     74  consistent gets
      0  physical reads
      0  redo size
  25485  bytes sent via SQL*Net to client
    809  bytes received via SQL*Net from client
     68  SQL*Net roundtrips to/from client
      0  sorts (memory)
      0  sorts (disk)
   1000  rows processed

So the handy package version takes 25 times as long as the 1-line SQL version.

And in the interests of fairness, in case you're thinking perhaps that is just the normal overhead of calling PL/SQL functions in SQL, let's try our own function:

CREATE FUNCTION minutes_elapsed
    ( lowdate DATE
    , highdate DATE )
    RETURN (highdate - lowdate) * 1440;
END minutes_elapsed;

SQL> SELECT minutes_elapsed(start_date,end_date) FROM wtf_test;

1000 rows selected.

Elapsed: 00:00:00.26

     21  recursive calls
      0  db block gets
    107  consistent gets
      0  physical reads
      0  redo size
  25496  bytes sent via SQL*Net to client
    809  bytes received via SQL*Net from client
     68  SQL*Net roundtrips to/from client
      0  sorts (memory)
      0  sorts (disk)
   1000  rows processed

Still 15 times faster.

Many thanks to Padders for sharing this one.

Oracle Beefs

Robert Vollman - Thu, 2007-04-05 15:20
I've got very few beefs with Oracle. It is extremely complicated and tough to learn compared to other relational databases, but that's partially offset by the tremendous documentation, and the huge Oracle community.Don't get me wrong, I love Oracle. I'm regularly impressed by the sophisticated and often clever ways it handles the requirements of an RDBMS, and quick to recommend its use. But Robert Vollmanhttp://www.blogger.com/profile/08275044623767553681noreply@blogger.com5

Learn about .NET and Oracle at Collaborate07 in Las Vegas

Christian Shay - Thu, 2007-04-05 09:27
The International Oracle Users Group (IOUG) will hold its Collaborate 07 conference in Las Vegas (April 15-17). If you attend, be sure to check out the .NET session and demonstration kiosk to hear more about new .NET features for Oracle Database 11g.

Session: Oracle Database 11g: What's New for Java, JDBC, .NET, PHP, and OCI

This session will be hosted by myself and Kuassi Mensah.

We will also have a "Application Development Tools" booth in the exhibit hall where you can see demos of Oracle Developer Tools for Visual Studio .NET, ODP.NET and .NET Stored Procedures in Oracle, SQL Developer, Application Express, and JDBC.

Exhibit Hall: Oracle Database 11g - Application Development Tools booth (DB-007)

See you there!

Oracle Application Express 3.0 a credible alternative to Microsoft Access?

Donal Daly - Wed, 2007-04-04 10:45
I hope most people know by now that Oracle Application Express (APEX) 3.0 has gone production, is available for download from OTN and our hosted instance, apex.oracle.com had also been upgraded to 3.0. There has been some positive reviews in the press recently, here are links to a number of them:

Oracle Updates Application Express Tool
Oracle updates free Web development tool
Oracle has big ambitions for Application Express
Oracle improves free tool for building Web Applications
Oracle Application Express 3.0 Touts Access Migration

Most customers I talk with have problems with Access and are looking at alternatives, which I guess is the reason I am talking with them in the first place. However, Microsoft Access is a popular desktop database and was updated recently as part of the Office 2007. That said, it is desktop centric and more suited (optimized?) for productivity applications used by individuals or small groups.

On our OTN page about the Application Migration Workshop we have published a high level feature comparison of Access and Oracle APEX.

Is Oracle Application Express 3.0 a credible alternative to Microsoft Access?

What do you think?

Sjoerd Michels contributes to SOA Best Practice Series, on automated deployment

Clemens Utschig - Sun, 2007-04-01 21:00
I am very happy (and proud) that I managed to get Sjoerd Michels (AMIS), one of our fellow SOA champions in europe, on board to contribute a new chapter to my SOA Suite Best Practice Series on OTN.

"In this Technical Note, you will learn to set up an automated build and deployment environment for your Oracle SOA Suite project. (Release of Oracle SOA Suite features improved automated build capabilities; instead of the Oracle-specific obant Ant tool, plain-vanilla Ant is now used for building and deploying BPEL suitcases.) The goal is to automatically build Oracle's SOA Suite Order Booking demo application and deploy it to an Oracle Application Server instance that runs Oracle SOA Suite. Oracle's demo application is ideal here because it uses all the components in Oracle SOA Suite: Oracle Enterprise Service Bus (ESB), Oracle BPEL Process Manager, and Oracle Business Rules. The demo application also includes a number of Web services that are programmed in Java."

The whole article can be found here and while this one just got published there is lot more to come, especially around BPA, end to end design, and governance.

The next month will bring me back to europe to visit customers, help reviewing architectures, as well as speaking at several conferences throughout. Here is a sneak preview
  • SOA Telecom conference, Paris
    • Where I'll deep dive into implementing SOA in large enterprises and the many caveats when doing so

  • JAX (EAKON) 2007, Wiesbaden
    • After last year, I am happy to be back - this time on the SOA Management track, to evangelize together with a couple of good friends on the importance of the human factor

  • EOUC 2007, Amsterdam
    • The first year, the emea oracle user conference takes place, and it will be a blast - looking through the agenda, the lineup of sessions is unbelievable. I am happy to be part of it. This time it will be about technology, and the advanced concepts of the BPEL language.
If you are around, just send a ping, or come by the SOA booth after the session to say hello ..

IBM wants to finish JBoss

Omar Tazi - Thu, 2007-03-29 18:07
After losing its founder and leader to music and other personal interests shortly after being acquired by Red Hat, JBoss has a new set of issues to deal with. Marc Fleury left after sharing with his colleagues how he felt about working with Red Hat: "I am increasingly experiencing diminishing returns on my emotional and professional investments at Red Hat."

The new danger comes from outside. IBM and Covalent announced today that they had each contributed a significant amount of IP to Apache's Geronimo to help users migrate from JBoss to Geronimo. Although I personally consider this a serious attack on JBoss, Shaun Connolly (VP of product management in the JBoss division of Red Hat) begs to differ calling the IBM-Covalent initiative "uninteresting". I still think that JBoss today is far more superior than Geronimo if they play a feature war. But we all know the better products don't always win. I also believe that existing JBoss customers may not want to switch to a less performant application server if they are already in production. If it works why fix it? But I still think that when giants like IBM or Microsoft go after a much smaller company, we know how that movie ends.

Speaking of movies let's rewind the JBoss/IBM movie. Let me refresh your memory on a few events that put together are confusing to say the least:

- In September of 2003, JBoss and IBM team up to cool off the growing popularity of Microsoft's C#
- Not too long after this Marc Fleury started bashing BEA and IBM on his blog
- In May of 2005 IBM purchases Gluecode a company that employed most Apache Geronimo contributors and positions this acquisition as their entry level, lightweight application server. They later called the Geronimo-based product WAS Community Edition.
- Exactly two years after deciding IBM was nice and C#/Microsoft evil, Marc Fleury partners with Microsoft (Sept 2005). Their partnership shocked me (and I was not the only one) but I thought it was pretty clever after all. Marc described that day as his best day ever.
The idea there was that half JBoss servers were running on Windows so let's work together on making JBoss work even better on Windows and SQL Server,
Active Directory and single sign-on, etc.
- Then Red Hat buys JBoss, Microsoft becomes great friends with Novell and Fleury doesn't like working for Red Hat, fakes a paternity leave and never comes back to work. [Sorry I had to compress the story]
- Next IBM feels JBoss is kind of vulnerable and decides to partner with Covalent to hurt them even more, hence the announcement.

Concretely IBM
(which roughly employs half of Geronimo's committers) and Covalent (which already provides support for Apache's Tomcat, HTTP Server and Axis) are getting together to provide quality support for Geronimo and lure people away from JBoss. Paul Buck, director of IBM WebSphere open source said that they were going to provide a migration tool that would go through the J2EE application itself and look for any required changes at the source that we know are different between JBoss and Geronimo.

I am interested in your thoughts, do you think IBM with this move is going hurt JBoss' business in a significant way? Can somebody tell me why we never see Glassfish in these battles? It's also a Java EE open source application server but no one seems to take it seriously. I'd be interested to hear from anybody who reads this blog who uses Glassfish in the enterprise.

Oracle on The Linux Foundation Board

Omar Tazi - Thu, 2007-03-29 13:21
It's no news that Oracle has been a serious player in the Linux community. Our commitment to the Linux community started way back in 1998 when we released the industry's first commercial database on Linux. We also like Linux because we run our own IT systems on Linux and realize first-hand the benefit of lower IT costs from using Linux in a grid computing infrastructure. Additionally, Oracle's Linux kernel team contributed a cluster file system OCFS to the Linux kernel under the GPL license. OCFS2 was the first ever cluster file system in the mainline Linux kernel. Finally we recently announced Oracle Unbreakable Linux 2.0 which is a support program that provides enterprises with world-class global support for Linux.

All this to say that Oracle/Wim's nomination on the Linux Foundation board is no accident. Who better than Wim Coekaerts to represent Oracle on that diverse board?

Congrats Wim!

Programmatically removing all entities from a view object

Brenden Anstey - Tue, 2007-03-27 20:56
Recently I had a case where I needed to remove all rows from a view object and found that there was no existing method to do this.
The case for doing such an action is where there is a Master-Detail relationship and the detail relation is used only of there is a certain condition met in the master. If the condition is met then the detail is required, however if the user changes their mind then we need a way of removing any records that may have been created in the detail.

By adding the following method in the View Object Implementation class we can safely delete all records in the view object:

    public void removeAllRows(){
// rangeSize is -1
Row[] rows = getAllRowsInRange();
for (int r = 0; r < rows.length; r++)
if (rows[r] != null)


Apache Trinidad version 1.0.0-incubating

Omar Tazi - Mon, 2007-03-26 19:24

A little more than a year ago Oracle donated a rich set of UI components based on the JavaServer Faces specification to the Apache Software Foundation under the Apache 2.0 license. The donation was originally part of Oracle ADF and the community chose the name it Apache Trinidad. Today we’re excited to announce that we reached another milestone: the release of Apache Trinidad Core version 1.0.0-incubating.

Both binary and source code are available at the Apache Incubator Trinidad Podling page.

Live demos and release notes are also available.


Application Express 3.0

Herod T - Mon, 2007-03-26 09:03

We have eagerly been waiting for the release of APEX 3.0 , Last week, APEX 3.0 was made available for download. We use APEX extensively for internal application development and are porting many oracle forms applications that were internally developed to APEX. The users love APEX, the IT people love APEX, I as a DBA love APEX. We were looking forward to the PDF printing most of all, the ability to build PDF reports in APEX was going to be a huge feather in the cap for oracle and there was serious talk about having a vendor port a major application from a Delphi fat client to APEX, the vendor was on board, everything seemed to line up.

Then we installed APEX 3.0, the upgrade and installation on our test environment went perfectly, no problems at all. We start to read the documentation about the PDF printing, and we realize. We need to install XML/BI publisher to take advantage of the robust PDF printing that was all the rage. Well, that burnt us. Yes we can install the FOP stuff and do really basic reporting, but we had hoped the PDF generation was part of APEX 3.0.

We have had XML/BI publisher on the radar for awhile, knowing we will have to go to it with our Oracle E-Business suite upgrade later this year. I guess I had upgrade our evaluation copy to the newest version and see what has changed and try and figure out some business cases for spending the C$45,872 per CPU for XML/BI publisher.

We still love APEX 3.0, wonderful product, if your not using it, you should figure out a reason to.


Subscribe to Oracle FAQ aggregator