Wie kann man Oracle APEX 3.0 unter XE installieren?

02.
Juni
2007
Veröffentlicht von: Marco Patzwahl

Oracle sagt, diese Konfiguration ist nicht supported, also ab hier auf eigene Gefahr weiter :-)

Oracle sagt, diese Konfiguration ist nicht supported, also ab hier auf eigene Gefahr weiter :-)

Netterweise ist das Installationsskript schon auf XE angepasst, man muss nur ein paar kleine Schlaglöcher umschiffen.

Wir gehen im nachfolgenden Beispiel davon aus, dass Sie das Oracle-APEX 3.0 Package heruntergeladen und im Verzeichnis c:\temp ausgepackt haben.

  • Gehen Sie in das Verzeichnis von APEX (C:\temp\apex) zur Datei coreins.sql
  • Erzeugen Sie eine Sicherheitskopie der Datei
  • Suchen Sie nach dem Vorkommen von "Define XE" (Zeile 573)
  • Ersetzen Sie die Zeile durch

define XE = '1'

  • Starten Sie die Installation von APEX:
  • Öffnen Sie dazu ein Dos-Fenster und gehen Sie in das Verzeichnis, in dem die APEX-Skripten liegen
  • Beispiel:

dos> cd c:\temp\apex

Wenn Sie das nicht machen und das nachfolgende Skript über den absoluten Pfad (c:\temp\apex\apexins.sql ....) starten, dann stimmen die davon abhängigen relativen Pfade nicht mehr!

  • Starten Sie SQL*Plus mit dem Installationskript von APEX 3.0

Ich verweise mal auf den schönen Header der Datei apexins.sql

Rem 1)Local
Rem sqlplus "sys/syspass as sysdba" @apexins password SYSAUX SYSAUX TEMP /i/ none
Rem
Rem 2)With connect string
Rem sqlplus "sys/syspass@10g as sysdba" @apexins password SYSAUX SYSAUX TEMP /i/ 10g

Achtung: 

An der Stelle, an der <passwort> steht, sollte IHR Passwort für den APEX-Benutzer (FLOWS_030000) eingetragen werden!

Beispiel:

dos> sqlplus "sys/sys@xe as sysdba" @apexins.sql sagichnicht SYSAUX SYSAUX TEMP /i/ none

Nun ergeben sich noch folgende Probleme:

- Ein Package (wwv_flow_xe_config) zickt rum, dass (mindestens) eine Tabelle nicht existiert. Dazu vergeben wir dem APEX-Benutzer das Recht auf die Verwaltungstabellen.

Dies können Sie auch schon kurz nach dem Start des Skripts aus 5d machen.

Mit Recht "select any dictionary" gestatten wir dem Benutzer flows_030000 (dessen Account später eh gesperrt wird) auf dem Verwaltungsapparat lesend zugreifen zu dürfen:

sqlplus "sys/syspass@xe as sysdba"
sql> alter session set current_schema=FLOWS_030000;
sql> grant select any dictionary to FLOWS_030000;

- Ein Skript wird nicht installiert, wenn XE ausgewählt wurde. Dieses starten wir nachträglich. (Achtung: wir sind weiterhin im APEX-Installationspfad!)

sqlplus "sys/syspass@xe as sysdba" @builder/f4050.sql

Nun installieren wir das Package noch mal neu:

sql> @<apex_install_ordner>\core\wwv_flow_xe_config.sql
sql> @<apex_install_ordner>\core\wwv_flow_xe_config.plb

Troubleshooting: Was tun, wenn APEX 3.0 nicht läuft:

Wenn mit dem internen Gatway (dbms_epg) gearbeitet wurde, fragen wir uns: Ist die Portnummer für HTTP eingerichtet?

SQL> select dbms_xdb.gethttpport from dual;

GETHTTPPORT
-----------
8080

Falls nicht, den Port setzen mittels

SQL> BEGIN dbms_xdb.sethttpport(8080); end;

Dem Listener Bescheid geben, dass sich etwas geändert hat

 SQL> ALTER SYSTEM REGISTER;

Listener nun prüfen

SQL> HOST lsnrctl status

Zusammenfassung Listening-Endpunkte...

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)

(PIPENAME=\\.\pipe\EXTPROC_FOR_XEipc)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)

(HOST=goofy.muniqsoft.de)(PORT=1522)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)

(HOST=goofy.muniqsoft.de)(PORT=8081)) (Presentation=HTTP)(Session=RAW))

Services Übersicht...

Dienst "CLRExtProc" hat 1 Instance(s).

Instance "CLRExtProc", Status UNKNOWN, hat 1 Handler für diesen Dienst...

Dienst "PLSExtProc" hat 1 Instance(s).

Instance "PLSExtProc", Status UNKNOWN, hat 1 Handler für diesen Dienst...

Dienst "XEXDB" hat 1 Instance(s).

SQL> connect 'SYS/<SYS_Password> as SYSDBA'

Benutzer Anonymous freischalten:

SQL> ALTER USER ANONYMOUS ACCOUNT UNLOCK;

 

Zum Schluss werden die Bilder hochgeladen

sql> @<apex_install_ordner>\apex_epg_config.sql c:\temp

Notlösung: XDB deinstallieren und wieder installieren

@?/rdbms/admin/catnoqm.sql
@?/rdbms/admin/catqm.sql XDB SYSAUX TEMP

pex_admin wieder einrichten

create or replace procedure flows_030000.apex_admin
as
begin
f (p=>'4050:3');
end;
/

Rechte an Anonymous vergeben

grant execute on flows_030000.apex_admin to anonymous;

Hinweis: Für die Version 3.1 und 3.2 besteht die Restriktion nicht mehr. Hier kann APEX ohne Probleme installiert werden.

APEX

Jede Menge Know-how für Sie!

In unserer Know-How Datenbank finden Sie mehr als 300 ausführliche Beiträge zu den Oracle-Themen wie DBA, SQL, PL/SQL, APEX und vielem mehr.
Hier erhalten Sie Antworten auf Ihre Fragen.