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;
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
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;
بسم الله الرحمن الرحيم , الحمد لله و الصلاة و السلام على رسول الله
تعديل الجدول
ALTER TABLE demo_products ADD ( last_updated_by varchar2 (35), last_updated_on timestamp (4) with local time zone )
إنشاء القادح
CREATE OR REPLACE TRIGGER "BI_product_info"
BEFORE INSERT OR UPDATE ON demo_product_info
FOR EACH ROW
BEGIN
IF (inserting) THEN
BEGIN
:new.Last_updated_by := nvl(v('APP_USER'), 'user');
:new.last_updated_on := systimestamp;
END;
ELSIF (updating) THEN
BEGIN
:NEW.Last_updated_by := nvl(v('APP_USER'), 'user');
:NEW.last_updated_on := systimestamp;
END;
END IF;
END;
** Attributes
Region Attributes: style=width:300px
** HTML Table Cell Attributes
style="color:#800517; font-weight: bold"
*** Do not forget to disable the tigger if you are going to upload data to your table:
ALTER TRIGGER bi_products DISABLE
APP_USER Syntax
Reference TypeSyntax
Bind variable
:APP_USER
PL/SQL
V('APP_USER')
Substitution string
&APP_USER.
Consider the following examples:
From within an HTML region:Hello you are logged in as &APP_USER.
Using PL/SQL:
htp.p('Hello you are logged in as'||V('APP_USER'));
As a bind variable:
SELECT * FROM some_table WHERE user_id = :APP_USER