Thursday, January 12, 2012

كيف تبدأ مع أوراكل أبكلكيشن Oracle APEX


Download & Install Oracle 11g XE:







Click To Download Oracle 11g XE

عند عملية التنصيب قد تواجه مشكلة و الحل هنا


connect /as sysdba

SET SERVEROUTPUT ON ;
DECLARE
l_cfgxml XMLTYPE;
l_value VARCHAR2(5) := 'true'; -- (true/false)
BEGIN
l_cfgxml := DBMS_XDB.cfg_get();

IF l_cfgxml.existsNode('/xdbconfig/sysconfig/protocolconfig/httpconfig/allow-repository-anonymous-access') = 0 THEN
dbms_output.put_line('NO access anonymous');
ELSE
dbms_output.put_line('YES access anonymous');
end if;
end ;

====if it is NO you have to add or update ============
SET SERVEROUTPUT ON
DECLARE
l_cfgxml XMLTYPE;
l_value VARCHAR2(5) := 'true'; -- (true/false)
BEGIN
l_cfgxml := DBMS_XDB.cfg_get();
IF l_cfgxml.existsNode('/xdbconfig/sysconfig/protocolconfig/httpconfig/allow-repository-anonymous-access') = 0 THEN
-- Add missing element.
SELECT insertChildXML
(
l_cfgxml,
'/xdbconfig/sysconfig/protocolconfig/httpconfig',
'allow-repository-anonymous-access',
XMLType('<allow-repository-anonymous-access xmlns="http://xmlns.oracle.com/xdb/xdbconfig.xsd">' ||
l_value ||
'</allow-repository-anonymous-access>'),
'xmlns="http://xmlns.oracle.com/xdb/xdbconfig.xsd"'
)
INTO l_cfgxml
FROM dual;
DBMS_OUTPUT.put_line('Element inserted.');
ELSE
-- Update existing element.
SELECT updateXML
(DBMS_XDB.cfg_get(),
'/xdbconfig/sysconfig/protocolconfig/httpconfig/allow-repository-anonymous-access/text()',
l_value,
'xmlns="http://xmlns.oracle.com/xdb/xdbconfig.xsd"')
INTO l_cfgxml
FROM dual;
DBMS_OUTPUT.put_line('Element updated.');
END IF;
DBMS_XDB.cfg_update(l_cfgxml);
DBMS_XDB.cfg_refresh;
END;

commit;
=====================================
step 3

ALTER USER ANONYMOUS IDENTIFIED BY anonymous;
ALTER USER ANONYMOUS ACCOUNT UNLOCK;
ALTER USER XDB IDENTIFIED BY xdb;
ALTER USER XDB ACCOUNT UNLOCK;

step 4
check if there is DAD APEX
====
set serverout on;
declare
my_dad_list dbms_epg.VARCHAR2_TABLE;
begin
DBMS_EPG.GET_DAD_LIST (my_dad_list);
for i in 1..my_dad_list.count
loop
dbms_output.put_line(my_dad_list(i));
end loop;
end;
IT should return APEX

===========

if it is empty you should run
@apex_epg_config.sql /home/oracle <--- dir where new apex was unziped (APEX is in /home/oracle/apex)
It will also load images.

========
step 5
change password for ADMIN APEX user:
@apxchpwd.sql


Upgrade APEX to the latest version:

Click To Download The Latest Version Of APEX



To Install the latest version  ( Upgrade ) follow these steps:
1. Unzip the downloadloaded zip file:
  • Double click <filename>.zip in Windows Explorer
  • [Note: You should keep the directory tree where you unzip the files short and not under directories that contain spaces. 
    For example, within Windows unzip to C:\.]
2. Change your working directory to apex.


  • In Windows 7: Go to Start Menu, then Type CMD. Then type: 
  • CD/
  • cd apex
  • 3. Start SQL*Plus and connect to the Oracle XE database
  • {Command prompt} C:\apex> sqlplus /nolog
     SQL> CONNECT SYS as SYSDBA
     Enter Password: 
     SYS_Password
      
4. Install Application Express:
  • SQL> @apexins SYSAUX SYSAUX TEMP /i/
5. Log back into SQL*Plus (as above) and load images:
  • SQL> @apxldimg.sql APEX_HOME
  • [Note: APEX_HOME is the directory you specified when unzipping the file. For example, with Windows 'C:\'.]
6. Upgrade Application Express password:
  • SQL> @apxchpwd
    Enter password for Application Express ADMIN account.
7. In a Web browser, navigate to the Oracle Application Express Administration Services application:
  • http://localhost:8080/apex/apex_admin
  • In Username, enter ADMIN
  • In Password, enter your password. ( that you chose in step 6 )


Unlocking  the APEX_PUBLIC_USER Account

Go To Start Menu and type CMD.
SYSTEM_DRIVE:\ sqlplus /nolog
SQL> CONNECT SYS as SYSDBA
Enter password: SYS_password


Run the following statements:
ALTER USER APEX_PUBLIC_USER ACCOUNT UNLOCK
ALTER USER APEX_PUBLIC_USER IDENTIFIED BY new_password



Enable Network Services in Oracle Database 11g

You may need this for the following reasons:

  • Sending outbound mail in Oracle Application Express.
  • Using Web services in Oracle Application Express.
  • PDF/report printing.

Copy and Past the following code in SQL:

DECLARE
  ACL_PATH  VARCHAR2(4000);
  ACL_ID    RAW(16);
BEGIN
  -- Look for the ACL currently assigned to '*' and give APEX_040100
  -- the "connect" privilege if APEX_040100 does not have the privilege yet.

  SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS
   WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL;

  -- Before checking the privilege, ensure that the ACL is valid
  -- (for example, does not contain stale references to dropped users).
  -- If it does, the following exception will be raised:
  --
  -- ORA-44416: Invalid ACL: Unresolved principal 'APEX_040100'
  -- ORA-06512: at "XDB.DBMS_XDBZ", line ...
  --
  SELECT SYS_OP_R2O(extractValue(P.RES, '/Resource/XMLRef')) INTO ACL_ID
    FROM XDB.XDB$ACL A, PATH_VIEW P
   WHERE extractValue(P.RES, '/Resource/XMLRef') = REF(A) AND
         EQUALS_PATH(P.RES, ACL_PATH) = 1;

  DBMS_XDBZ.ValidateACL(ACL_ID);
   IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_040100',
     'connect') IS NULL THEN
      DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH,
     'APEX_040100', TRUE, 'connect');
  END IF;

EXCEPTION
  -- When no ACL has been assigned to '*'.
  WHEN NO_DATA_FOUND THEN
  DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('power_users.xml',
    'ACL that lets power users to connect to everywhere',
    'APEX_040100', TRUE, 'connect');
  DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*');
END;
/
COMMIT;



Download APEX listener:
http://www.oracle.com/technetwork/developer-tools/apex-listener/downloads/index.html



Download and Install Glass Fish Server:
http://glassfish.java.net/downloads/3.1.1-final.html

Download JDK
http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u2-download-1377129.html
Download SQL Developer.
http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html



No comments:

Post a Comment