Monthly Archives: April 2011

APEX: Creating a horizontal menu from a SQL Report

Ever wondered if, for the ApexNinjas.com website, we used tabs or lists for our main horizontal menu? Well, we used a SQL Report!

Well, we couldn’t use standard APEX tabs because all of the pages from our menu are created dynamically, via our Administration Dashboard and not using the Application Builder, which eliminated to possibility to use tabs. Well, not completely, because there is an Apex API for creating/modifying/deleting tabs, but it’s kind of undocumented and rather difficult to use. The same with lists. So we sticked to the safe method, of creating a horizontal menu using a SQL Report and custom CSS. How did we do that:

Continue reading

Serving APEX: HTTPD & EPG

The Oracle XE database comes out-of-the box with the Embedded PLSQL Gateway (EPG), which is a robust web server. EPG is an embedded web server to run PLSQL application via mod_plsql. It's simple and straightforward when you are running APEX on an XE database, and you you know the basic DBMS_EPG API for adminstrating the Database Access Descriptors (DADs) for the XML DB HTTP. But practice revealed that EPG is limited and more often it best to put a Apache HTTP server "on top" of EPG, for extended features and simplicity.

Configure EPG DAD settings

By default, leave the EPG HTTP port to 8080. Check the current port by connecting to sqlplus as sys and execute: select DBMS_XDB.GETHTTPPORT() from dual;

At this point, you can access you application at: http://mydomain.com:8080/epg_dad

The epg_dad value is automatically set during the APEX installation, and it's value is apex with the path /apex. So your application would be typically accessed from http://mydomain.com/apex

Continue reading

Import full APEX application to runtime environments

In a previous article, Importing APEX pages and components, we described the way that application pages and components can be exported from the development environment and imported in runtime environments. A user asked us on our email contact address for a way to import the full application to the runtime environment. Although we do not fully recommend this option, because of the drawbacks that are described in the article mentioned above and others that will be the subject of a future post, there are situations when the full import in the runtime environment is needed.

There are certain steps that need to be taken:

Continue reading

Interested in an APEX blogging platform?

So, are you interested in an APEX blogging platform? Because we are planning on re-factoring of our ApexNinjas.com website and our goal is to create a deployable, fully customized blogging platform, for the APEX freaks out there!

At this moment, www.apexninjas.com comes with a fully-functional administration panel, where you can add articles, manage pictures, users, comments, links, a database usage dashboard and much more. Just take a quick peak at the screenshots below. But some things are still not quite finished and we will start to fix these things as soon as we can. The result will be a robust blogging platform with standard features, nothing to fancy. We will probably distribute it freely, without any cost or strings attached. So, are your interested?

Peak Preview:

Database usage dashboard. Article count, comments by status, uploaded image size and tablespace occupation.

Continue reading

Patch 4.0.2 screwed up our APEX installation

After applying the 4.0.2.00.07 APEX patch on our ApexNinjas XE Apex 4.0 instance, the Application builder stopped working, giving the error:

ORA-06508: PL/SQL: could not find program unit being called

Looking in Administration -> Monitor Activity -> Application Errors, we see the complete error message is: ORA-04063: package body "APEX_040000.WWV_FLOW_TEAM" has errors ORA-06508: PL/SQL: could not find program unit being called: "APEX_040000.WWV_FLOW_TEAM". So the Application Builder won't  start because package WWV_FLOW_TEAM is invalid!

Actually, there are 3 APEX objects that have been invalidated after applying the patch:

1. package APEX_040000.WWV_FLOW_TEAM: Error: PLS-00302: component 'WWV_FLOW_TEAM_TAG_SYNC' must be declared

2. package WWV_FLOW_NATIVE_DYNAMIC_ACTION: Error: PLS-00302: component 'TABLE_TO_STRING3' must be declared

3. trigger: WWV_FLOW_FEEDBACK_T1

Help, anyone?

Install Oracle XE on Linux Centos 5

This is a quick guide on how to install Oracle XE on a Linux Centos 5 machine:

Download Oracle XE from Oracle.com: http://www.oracle.com/technetwork/database/express-edition/downloads/102xelinsoft-102048.html. For Linux Centos release, you will download your desired .rpm file (Universal or Western European)

Copy you .rpm to the Linux machine, either using WinScp or setting up a FTP server.

Log in as root (or sudo as root) and change the folder where you copied your .rpm file.

Install the dependencies:

yum install libaio

yum install bc

Install Oracle XE:

rpm -ivh oracle-xe-10.2.0.1-1.0.i386.rpm

A successful installation will result in the following message:

Preparing… ########################################### [100%]
1:oracle-xe ########################################### [100%]
Executing Post-install steps…

You must run '/etc/init.d/oracle-xe configure' as the root user to configure the database.

Continue reading

Making your APEX website Google-friendly

Creating a website in APEX might be an easy tasks for an experienced developer, but what about making your website “Google-friendly”? Or any other “Search-engine-friendly”? By default, APEX applications have very little “out-of-the-box” features for Search Engine Optimization (SEO). The URL links look messy, you have no default description or keywords meta-tag. But all this can be fixed by following these simple rules. These rules were enforced on the old versio of www.apexninjas.com (built on APEX NinjaBlog Platform) and have proven to work (over 50% of our daily hits come from Google) and are basically simple SEO guidelines:

1. Make sure each of your site pages has a distinct name. Do not look at an APEX page (which is an application page) as a webpage. They might be same, but might also not.

2. Insert “description” and “keywords” meta tags in each of your pages’ HTML header

3. Create a sitemap and register it to Google Webmaster Tools application. Eliminate the session id from the URLs.

4. Follow basic SEO rules: content is king, use H1 and H2 tags for titles, use bold text for emphasis, add alt tags to your pictures and do not repeat or copy content from other web resources.

Continue reading