I am using the MDA-Vario a branded version of the HTC-QTEK 9100, and like it. It is a PocketPC, and so it synchronizes pretty good with mircosoft office. One thing i don't like is that the stylus-pen to operate the touch-screen is kind of loose in the case. I was looking often for the pen and always could find it, but since last week i could not find it again. T-Mobile was not able to send me some of this pens because the run out of these pens (guess why... Laughing). So i looked at ebay, and they are sold there for 1-3€ for one, that means with freight costs it is about 10€ for one pen, and about 15 for three of them. I thought that was too expensive for such a 10-Cent product. So i consulted my favourite Shop (Amazon), and there i found these pens (3 for 10€) and if you buy it with the the dockingstation (didn't come with the vario) you pay 20€ for all (no freight costs). 

By the way i am currently working on a Amazon-PHP-Framework to get the Amazon-Items that are really worth to buy (cheap).

Workspace Manager

In my developing-life there was often the question vor "versioning" a table. That means somebody wanted to know WHO WHEN changed what column of the database, what was the old value, what was the new value...

There were different possibilities how you could implement it, save the data in the same table, make a second table, and some tools that could automate the generation of the "history" and also called "journal" table, and the PL/SQL-Code to fill them correctly, for example the Oracle-Designer.

What i didn't knew was that Oracle implemented a feature that enables the versioning of a table by just entering:

DBMS_WM.EnableVersioning ('emp',  'VIEW_WO_OVERWRITE');

And the best: it works...  More info of the so called Workload Manager (WM) can be found here.



Today i set up a test-environment to play around, and after a database-clone attempt failed i had to do it with an logical exort, means a datapump in 10g. So i did it by using the Enterprise-Manager ( and did a full-export that worked fine. The import failed with ORA-06502 (numeric or value error) and no further error-message. After setting the NLS-language and also the browser-language from German to English, the import worked fine. Seems to be a problem with the language...

Opatch is a tool for applying one-off-patches for oracle-products, that means if you are running in bug xy the the support will tell you to apply the patch 08154711... 

In my case a found a metalink-note that could solve my problem, guess what... YES i had to apply a patch...  It took me a lot of time to find the download-page for opatch. The note described exactly what opatch is doing, referred to a lot of other notes....

So here is the shortcut directly to the opatch-download-page: 


By the way, you need an valid metalink-account for that link 

Migrating from a pfile to a spfile is really simple. You can use the following command on the console:

CREATE SPFILE FROM PFILE = 'C:\oradata\mydb\init.ora' 

... of course you have to enter the right path to the init.ora file... Wink

To do it the other way is also possible, just type

CREATE PFILE = 'C:\oradata\mydb\init.ora' FROM SPFILE = 'C:\oradata\mydb\spfilemydb.ORA'; 



In my current project a lot of customers are from east-european countries. For this reason the reports (printed as PDF) need to be printed with a lot of special characters, also cyrillic ones. For this reason i have to use UTF8. In Reports it is a almost simple procedure to configure. The hard part is to find the right documentation, there is a huge amount of whitepapers etc. floating around on metalink and OTN. Here in some simple steps, this example works with Windows-XP.

  • check where the fonts are located on the operating-system (f.e.: "c:\windows\fonts")
  • find the file uifont.ali file (should be in ...oracle...\tools\common....)
  • add a pdf subset-section or uncomment it (there are a lot of examples in this file)


[ PDF:Subset ]
"Times New Roman"..Italic.Bold.. = "timesbi.ttf"
"Times New Roman"...Bold.. = "timesbd.ttf"
"Times New Roman"..Italic... = "timesi.ttf"
"Times New Roman"..... = "times.ttf"
"Arial"..Italic.Bold.. = "Arialbi.ttf"
"Arial"...Bold.. = "Arialbd.ttf"
"Arial"..Italic... = "Ariali.ttf"
"Arial"..... = "Arial.ttf"

  • add the font-directory to the Reports-Path the reports-path is a registry-entry on windows and a environment-variable on linux/unix.
  • If it is a local installation for developing, you also have to set the nls-language to UTF8 (registry in windows, environment on linux/unix...)


If you want to learn more about PDF-subsetting take a look at the documentation, the document-number for 10g Developer is B13895-01, you can download it on metalink, or just google for it.


Do you like the SPFILE or are you using the classic init.ora for changes in the Oracle-Environment like sga-parameters? spfile

I like SPFILES more than the text-parameter-files. The advantage of a text-parameter file (init.ora) to the server-parameter-file (spfile) is that you can read it with a simple editor. The disadvantage is that you had to restart the whole instance to change sga-parameters, but also more simple parameters like SMTP_OUT_SERVER. With SPFILE you can do this with an running instance by typing for example: alter system set smtp_out_server='mail.xyz.at' scope=spfile;

If you are using Oracle-Failsafe Failsafe is  not capable to use spfiles, and that's a annoying thing if you are used to it.  But there is a workaround. Create a text-parameter-file (the best would be on the shared cluster-disk) and point it to the spfile by using the SPFILE Parameter.

Your text-parameter-file would look similar to this: spfile=h:\oradata\spfileprod.ora 


If you need to verify phone number or other fields, and you want to ensure that not all characters can be used, the best is to use a check-constraint. The following constraint is simple, and fast 100 times faster than using a pl/sql-function (tested with 2mio records) because it is used directly on the table and there is no switching between the sql and pl/sql-engine. fast

alter table customer  add constraint ck_phone_numeric  check ((RPAD(TRANSLATE(phoneno,'0123456789+-X','XXXXXXXXXXXXa'),20,'X')='XXXXXXXXXXXXXXXXXXXX'));

You have to replace the length of the column (in this case 20) to the length of your column and of course the table name...

Webutil is an enhancement of Oracle Webforms. A Toolbox where you can do things like reading the registry, transferring files by ftp, invoking dll-functions...

Last time when using it i got WUC-024 (WUC-24), i think i used the filetransfer-functions.

... I am a brave user so i am consulting the manual (RTFM). The manual reads 

    The error is caused by wrong/missing configuration.
    Solution: No mapping has been made for webutil directory where files are located.
    Follow description from WebUtil User’s Guide chapter 2.5 "Configuring Oracle HTTP Server for WebUtil" to set up correct mapping.

But guess what.... that was not the problem everything configured fine, i simply had not set the proxy-server in the jinitiator...

I like misleading Oracle Error-Messages... Yell


So what happened to my Oracle Service Request?....

Oracle found a similar bug reported. So i told them that i can live with my workaround and that they can close the SR if they give the Development-guys the infos from this Service-Request.

Some weeks later i did installed failsafe on a different server, and guess what.... i did not have this problem again.....

My workaround:

Enable  Database trace (exec dbms_monitor.database_trace_enable;)

                          check for which view is needed, you will find the output of the trace in the udump-directory (select value from v$parameter where name = 'user_dump_dest')

                           create a synonym for this view (create synonym v$controlfiWHATISLOOKEDFOR for v$controlfile;)

Don't forget to disable the Database trace by invoking DBMS_MONITOR.database_trace_disable. 

If you want direct access to the database without defining a TNSNAMES.ORA you have to be on the same machine as the database is installed. Just try the username/pwwithout the connect-string ("sqlplus system/manager" instead of "sqlplus system/manager@testdb".

If you get an ORA-12560 TNS:protocol adapter error, the ORACLE_SID environment variable does not seem to be set set it with "SET ORACLE_SID=yourdbsid" in Windows or "export ORACLE_SID=yourdbsid" on Linux/Unix. Hope it helps... Laughing




There is something wrong..... I installed the new version of failsafe and could not add a Database, because of ORA-00942 "View or Table does not exist". So i checked by enabling the database trace (in the DBMS_MONITOR Package) and looking for the SQL-Statement in the dump-directory of the database.

Failsafe is looking for a table "v$controlfiO" in another installation for "v$controlfif", thought v$controlfile was meant and created a public synonym for it ("create synonym v$controlfiO for v$controlfile;") after this it worked. I will log a Service Request for this issue...