Browsing "Older Posts"

Building your own button in an APEX region

Von Tobias Arnhold → 5.29.2009
Have you ever experienced some issues when you wanted to create a button inside an APEX region behind an item and that button should call a javascript function.
With normal APEX features "Create a button displayed among this region's items" it's not possible as I know because APEX creates automatically a doSubmit button.

Anyway one way to fix that is to create an own button:

First create your own button, for example on:
http://www.buttongenerator.com/
or on:
http://www.buttonboost.com

Next upload the new button image into the application workspace.
Home>Application Builder>Application 100>Shared Components>Images>Create>
Application: #Your application name#
Upload New Image: #Image path#
Notes: #Additional information to the picture#

Last step is to create an "Display as Text" page item with the following settings:
Label: empty
Template: No Label
Width: 0
Post Element Text:

 
<img
id="P1_btnID1"
src="#APP_IMAGES#start.png"
// if image was set to
// "No Application Associated"
// then use #WORKSPACE_IMAGES#
alt="Set user settings"
onclick="fnc_setUser('P1_USER')"
style="cursor: pointer"
title="Set user settings"
>

Info: If the button should be right behind an item then edit the option "Begin On
New Line" to "No".
And of course you can put the img-tag also into the "Post Element Text" of an already used APEX item.

At the end it should look similar to that:

ORA-07445 _npierr+487 error in APEX runinng under a XE database

Von Tobias Arnhold → 5.15.2009
I created a dynamic pl/sql report where the select was based on an external table (transcribed through a database link).

DECLARE
v_query varchar2(1000);
BEGIN
IF :P1_INSTANCE_NAME is not null THEN
v_query := 'SELECT NAME,
VALUE,
isdefault,
isses_modifiable,
issys_modifiable,
ismodified,
isadjusted,
description
FROM v$parameter@'||:P1_INSTANCE_NAME;
ELSE
v_query := 'SELECT 1 FROM dual WHERE 1=0';
END IF;
return(v_query);
END;

Tip: If you are more interested into dynamic reports! Then here comes a really handy explanation:
http://www.apex-blog.com/oracle-apex/dynamic-report-regions-tutorial-32.html

After the login into the APEX application builder a strange download error occurred. When I clicked on a APEX link a download window opened and showed the following arguments:


At the same time when the error occurred the following entries in the alertlog file got created:

Fri May 15 13:14:43 2009
Errors in file c:\oracle\admin\xe\bdump\xe_s000_1436.trc:
ORA-07445: exception encountered: core dump [ACCESS_VIOLATION] [_npierr+487] [PC:0x5F22C3] [ADDR:0x4] [UNABLE_TO_READ] []

Fri May 15 13:15:27 2009
found dead shared server 'S000', pid = (14, 2)
Fri May 15 13:17:07 2009
Errors in file c:\oracle\admin\xe\bdump\xe_s002_2492.trc:
ORA-07445: exception encountered: core dump [ACCESS_VIOLATION] [_npierr+487] [PC:0x5F22C3] [ADDR:0x4] [UNABLE_TO_READ] []

Fri May 15 13:17:24 2009
found dead shared server 'S002', pid = (16, 1)

I looked in Metalink, the Oracle forum and the web itself and came to the following conclusion:
That error occurs when you call a database link in a web application. There is no official workaround at least no one for the XE database. It should be patched in the following Oracle database versions: 11.2, 11.1.0.6.P11

Another hint came from the Oracle forum. They meant you should set up your browser to "en-us" language. I tried it but it didn't help either.
Anyway I created a application with German language so it wouldn't be such a good hotfix. ;D

My workaround:
Creating a new table where I import the information before via a pl/sql package and the dbms scheduler. It's not really what I wanted but the only way for now.

Here are the web links I rallied to it:
Metalink note: 6798427.8
Metalink note: 809366.1
Metalink bug no.: 6798427
XE forum: Beta 3 Bug: using database link freezes apex and xdb
XE forum: Universal edition choke on en-GB browser, core dumped, ORA-07445, _npierr+4
APEX forum: page not found, ORA-07445: exception encountered: core dump

Update 22.06.2009
I had the idea to use a function selecting the external data (with execute immediate) and save this data into a temporary table.
Then I created a new APEX "Before Header Process" and called this database function and made a select into my page variables.
But I still get this error... I give up!