OTN Appreciation Day : APEX

Dimitri Gielis - Tue, 2016-10-11 15:39
If you're following some Oracle blogs or Twitter, you'll see many blog posts starting with "OTN Appreciation Day : " today. You can read the story behind this initiative on Tim Hall's blog. "The blog post content should be short, focusing more on why you like the feature, rather than technical content."
In my life Oracle played (and is still playing) an important role... and it all started because I love working with data - which lead me to the Oracle database, the *best* database in the world.

So I just have to write about a feature of the Oracle Database; but which one to pick? The way Oracle implemented SQL, or the programming language inside the database PL/SQL or the tools and options that make the database awesome?... I thought some time about it and for me personally next to the database itself, it was really APEX that changed my life, so I just have to write about it.

In this post I want to share why I love Oracle Application Express (APEX) and why I consider this the best feature of the Oracle Database *ever*.

The goal, I believe, of a database is to capture data and do something with it; either to get insight in your data or share it again in different formats with others... and Oracle Application Express is just the easiest way to do this! In no time you create a web application with some forms that capture data directly in your database. And in even less time you share and get insight in your data through beautiful reports and charts. You just need a browser... it's secure, fast, scalable and you can use the full power and features of the database - APEX is the window to your data!

Categories: Development

OTN Appreciation Day: Easy Execution Plans

Complete IT Professional - Tue, 2016-10-11 13:54
As part of the #ThanksOTN idea on Twitter, my favourite Oracle feature is the ability to easily view and analyse execution plans for queries. Time and time again I’ve needed to see how a query is running, and Oracle databases make it easy to view the execution plan. You can view it in either a text format […]
Categories: Development

Automatic Time-Based Dismiss for Oracle ADF Popups

Shay Shmeltzer - Mon, 2016-10-10 11:09

This blog entry is about a nice little new feature that was introduced into ADF in the version, and didn't get a mention in the "what's new" document.

Self dismissing messages  are popping up everywhere these days (when you get an email, when you have a new calendar invite etc), and you might want to use this UI pattern in your ADF apps too.

There is a new property for af:popup components - autoDismissalTimeout - that allow popups to automatically dismiss after a certain number of seconds that you can specify. This is very useful for all sort of messages that you want to show to the user, but you don't want to require the user to do any activity to dismiss.

Here is an example of such a message that you can associate with a save button:

popup sample

And here is the code you'll need to do this:

            <af:popup id="p1" animate="true" autoDismissalTimeout="2">

                <af:panelGroupLayout id="pgl1" layout="horizontal">

                    <af:image source="stat_confirm_16.png" id="i1"/>

                    <af:outputFormatted value="Your changes have been saved" id="of1"/>



One more (small) reason to adopt the new versions of Oracle ADF! 

Categories: Development

4 Things To Spend Money On for Work

Complete IT Professional - Mon, 2016-10-10 06:00
There are many things that your workplace will provide as part of your employment. Notebooks, pens, computer, and a chair. There are some other things that, if you spend money on, they can really improve the quality and efficiency of your work. 1 – A Decent Pen Every office I’ve worked in has had a […]
Categories: Development

Oracle EMPTY_BLOB Function with Examples

Complete IT Professional - Thu, 2016-10-06 06:00
In this article, I’ll explain what the Oracle EMPTY_BLOB function does and show you an example of how to use it. Purpose of the Oracle EMPTY_BLOB Function The EMPTY_BLOB function is used to initalise a LOB column to EMPTY. It can be used in several places: In an INSERT statement In an UPDATE statement Initialising […]
Categories: Development

Overview of Oracle Character Sets

Complete IT Professional - Mon, 2016-10-03 06:00
I’ve been working with databases for a long time, and the topic of character sets took me a while to understand. This article will answer some of the common questions, and questions I had about Oracle character sets and how they relate to the Oracle database. What is a Character Set? As defined by Webopedia: […]
Categories: Development

Oracle TO_SINGLE_BYTE Function with Examples

Complete IT Professional - Thu, 2016-09-29 06:00
The Oracle TO_SINGLE_BYTE function is useful for databases with different character sets. Learn how to use it and see some examples in this article. Purpose of the Oracle TO_SINGLE_BYTE Function The purpose of the TO_SINGLE_BYTE function is to convert a string with multi-byte characters into single-byte characters. To use this function, your database character set needs […]
Categories: Development

Counting my Zero Days

FeuerThoughts - Wed, 2016-09-28 11:38
I have decided to start keeping track of how many Zeroes I am able to accumulate in a day.

My "Zero Day" is not the same as the hacker zero day concept.

Instead, my Zero Day has to do with Reduce, Reuse, Recycle.

There's a lot of talk and action about recycling. Much less on the reduce and reuse side, which is understandable but lamentable.

Understandable: recycle is post-consumptino, reduce and reuse and pre-consumption. The more we reduce consumption, the less people consume = buy, and human economies are structured entirely around perpetual growth.

So corporations are all fine with promoting recycling, not so much reduction.

But I am convinced, and feel it is quite obvious, that the only way out of the terrible mess we are making of our world is for each of us, individually, to reduce our consumption as much as possible.

And you can't reduce lower than zero consumption. So I am going to see how well I can do at achieving some zeroes each day in my life. 

Here's what I am going to track on my Twitter account:
  • Zero use of my car
  • Zero consumption of plastic (plastic bag for groceries, for example)
  • Zero purchasing of processed food
  • Zero purchasing of anything
  • Zero seconds spent watching television
  • Zero drinking of water from plastic bottle (thanks, Rob!)
I am sure I will think of more - and will add to the above list as I do. Do you have other consumptions?

P.S. I am also trying really, really hard to only eat when I am hungry. So far I have lost 5 pounds in the last week. I hope that trend doesn't continue. :-)

Categories: Development

Oracle NCHR Function with Examples

Complete IT Professional - Wed, 2016-09-28 06:00
In this article, I’ll explain what the Oracle NCHR function is and show some examples. Purpose of the Oracle NCHR Function The NCHR function returns a character based on the specified number code in the national character set. It’s very similar to the CHR function, but it uses the national character set.   Syntax The […]
Categories: Development

New Capabilities for the Status Meter Component in ADF

Shay Shmeltzer - Mon, 2016-09-26 18:58

While building a demo of new Oracle ADF features for my OOW session, I came across some nice new functionality in the dvt status meter gauge component (dvt:statusMeterGauge), specifically the round one which has become quite popular in various Oracle Alta UIs.

Turns out you can turn the dial and cut it so it shows just parts of a circle.

By adding thresholds you can use it as a replacement for the dial gauge.

Here is how it can look: 

status meter

Here is the code used:

                            <dvt:statusMeterGauge orientation="circular" inlineStyle="width:150px; height:100px;"

                                                  id="statusMeterGauge1" maximum="25000"

                                                  value="#{bindings.Salary.inputValue}" minimum="0" startAngle="180" angleExtent="180"


                                <dvt:gaugeMetricLabel rendered="true" id="gml1"/>

                                <dvt:gaugeThreshold id="gt1" maximum="4000" color="red"/>

                                <dvt:gaugeThreshold id="gt2" maximum="6000" color="yellow"/>

                                <dvt:gaugeThreshold id="gt3" maximum="20000" color="green"/>


Categories: Development

Version Control for PL/SQL

Gerger Consulting - Mon, 2016-09-26 07:13
Today, we are happy to announce the new version of Gitora, Gitora 2.0, the version control tool for PL/SQL developers.

Gitora helps PL/SQL developers manage their source code in Git easily. It helps them lock database objects to prevent edits from other users regardless of the editor they use, create, change branches, merge code from other schemas or databases and see the source code in the database change instantly, generate diff scripts automatically and automate processes for continuous integration.

Gitora is the easiest and fastest way to put your source code in version control and improve your database development practices. It requires no client machine installation (all installation is server side), and is free to use for one database.

Learn more and download at
Categories: Development

How to Calculate the Mean, Median, and Mode in Oracle

Complete IT Professional - Mon, 2016-09-26 06:00
Calculating the mean, median, and mode in Oracle SQL is a task often performed by report developers or anyone else working with SQL. Learn how to calculate these three values from a range of data in this article. What is the Mean, Median, and Mode? Mean, median, and mode are three kinds of average values […]
Categories: Development

Wiederholung APEX 5.0 Best Practices

Denes Kubicek - Fri, 2016-09-23 10:30
Wegen der großen Nachfrage veranstalten wir jetzt einen Zusatztermin für den APEX 5.0 Best Practice Kurs am 21.Nov - 23. Nov. 2016.

Anmeldung zum Kurs

Categories: Development

Oracle NEW_TIME Function with Examples

Complete IT Professional - Thu, 2016-09-22 06:00
In this article, I’ll explain what the NEW_TIME function does and show you some examples. Purpose of the Oracle NEW_TIME Function The NEW_TIME function converts a date from one timezone to another timezone.   Syntax The syntax of the NEW_TIME function is: NEW_TIME ( input_date, timezone1, timezone2 )   Parameters The parameters of the NEW_TIME […]
Categories: Development

How even empty trigger increases redo generation

XTended Oracle SQL - Wed, 2016-09-21 17:30

Very simple example:

Test case
set feed on;
-- simple table:
create table xt_curr1 as select level a,level b from dual connect by level<=1e4;
-- same table but with empty trigger:
create table xt_curr2 as select level a,level b from dual connect by level<=1e4;
create or replace trigger tr_xt_curr2 before update on xt_curr2 for each row

set autot trace stat;
update xt_curr1 set b=a;
set autot off;

set autot trace stat;
update xt_curr2 set b=a;
set autot off;
set feed off

drop table xt_curr1 purge;
drop table xt_curr2 purge;

SQL> -- simple table:
SQL> create table xt_curr1 as select level a,level b from dual connect by level<=1e4;

Table created.

SQL> -- same table but with empty trigger:
SQL> create table xt_curr2 as select level a,level b from dual connect by level<=1e4;

Table created.

SQL> create or replace trigger tr_xt_curr2 before update on xt_curr2 for each row
  2  begin
  3    null;
  4  end;
  5  /

Trigger created.

SQL> update xt_curr1 set b=a;

10000 rows updated.

         25  recursive calls
      10553  db block gets
         91  consistent gets
         18  physical reads
    3101992  redo size
        560  bytes sent via SQL*Net to client
        491  bytes received via SQL*Net from client
          3  SQL*Net roundtrips to/from client
          2  sorts (memory)
          0  sorts (disk)
      10000  rows processed

SQL> update xt_curr2 set b=a;

10000 rows updated.

         11  recursive calls
      20384  db block gets
         59  consistent gets
         18  physical reads
    4411724  redo size
        560  bytes sent via SQL*Net to client
        491  bytes received via SQL*Net from client
          3  SQL*Net roundtrips to/from client
          2  sorts (memory)
          0  sorts (disk)
      10000  rows processed
Categories: Development

Oracle NANVL Function with Examples

Complete IT Professional - Wed, 2016-09-21 06:00
The Oracle NANVL function is useful when working with number values. Learn what it does and how to use it in this article. Purpose of the Oracle NANVL Function The NANVL function is used to return a different value if the specified value is NaN (not a number). It’s useful for floating-point numbers such as […]
Categories: Development

Creating a Web App – One Year On

Complete IT Professional - Mon, 2016-09-19 06:00
One year ago I decided to create a web app for an organisation a friend of mine works with. I’d like to share where it’s at and what I’ve learnt. One Year On I wrote a post where I decided to create a web app. It’s a customised reporting tool for a group of sports […]
Categories: Development

Oracle DECOMPOSE Function with Examples

Complete IT Professional - Thu, 2016-09-15 06:00
The DECOMPOSE function is a handy string manipulation function. Learn more about it and find out what it does in this article. Purpose of the Oracle DECOMPOSE Function The DECOMPOSE function is used to transform a string into a Unicode string. It will split a character with an accent into two separate characters. For example, […]
Categories: Development

Oracle OpenWorld 2016 and Where You'll Find Me

Shay Shmeltzer - Tue, 2016-09-13 17:49

It's that time of the year - Oracle OpenWorld is taking place starting on Sunday - and my calendar is full of activities.

I'm going to be presenting on multiple tools and frameworks including sessions on Oracle Application Builder Cloud Service, Oracle JDeveloper and Oracle ADF, Oracle Developer Cloud Service and a session discussing which dev framework and tool is right for you. 

In case you want to catch me at #OOW16 here is my schedule:

Simplified Multichannel App Development for Business Users [CON2884] 
Monday, Sep 19, 1:45 p.m. | Moscone West - 2005 - A session where I'll demo how easy it is to create and host your own applications with Oracle Application Builder Cloud Service.

Oracle Application Development Framework and Oracle JDeveloper: What’s New [CON1226]
Tuesday, Sep 20, 4:00 p.m. | Moscone West - 2018 - A quick review of the new features we added in the 12.2.* releases of JDeveloper and ADF

Oracle Development Tools and Frameworks: Which One Is Right for You? [MTE6650]
Tuesday, Sep 20, 6:15 p.m. | Moscone South - 301- A session for all of those who are not sure which technology is right for them, or for those who want to ask me "is Oracle [fill in the product name] dead?"

A Guide to Cloud-Based Agile Development Methodology Adoption [CON1947]
Wednesday, Sep 21, 12:15 p.m. | Moscone West - 2018 - A demo focused session that show cases how Oracle Developer Cloud Service helps your team adopt agile development. 

No Code Required: Application Development and Publishing Made Easy [HOL7402]
Tuesday, Sep 20, 11:30 a.m. | Hotel Nikko - Nikko Ballroom III (3rd Floor)
Monday, Sep 19, 4:15 p.m. | Hotel Nikko - Nikko Ballroom III (3rd Floor) - Your two chances to try out  the new Oracle Application Builder Cloud Service and develop your first app

Agile Development Management and Continuous Integration Simplified [HOL7403]
Wednesday, Sep 21, 8:00 a.m. | Hotel Nikko - Nikko Ballroom III (3rd Floor) - Your chance to manage a whole development team agile process using Oracle Developer Cloud Service

I'm also going to be in the mobile theater in the mobile area in the demo ground on Tue and Wed at 10:30 doing a quick demo of ABCS and its mobile capabilities.

In between these sessions, you'll be able to find me at the Oracle Demoground doing some shifts in the Oracle ADF booth (which is in Moscone South far left corner) - the rest of our pods are close by including JET, DevCS, ABCS and even Forms :-)

And if I'll have any spare time, I'll try and catch some of the other session on this list of Dev tools and framework sessions

See you next week.


Categories: Development

How I Organise Email At Work To Keep Track Of It All

Complete IT Professional - Mon, 2016-09-12 06:00
Email. It can be a mess. Have you ever looked at your inbox at work and seen a massive list of emails, and not know what to do with them? I used to get that as well. This was until about a year ago when I changed the way I handle my email at work. […]
Categories: Development


Subscribe to Oracle FAQ aggregator - Development