Search This Blog

Monday, February 12, 2024

Database DML from frontend in Oracle Apex

Application users can able to do DML from the frontend side. 


 1. Create a region and create 7 item like below and a button call Convert 

 

P23_UPDATE_DELETE 

P23_COLUMN_NAME 

P23_CONDITION 

P23_CURRENT_DATE 

P23_UPDATE_COLUMN 

P23_TARGET_DATE 

P23_UPDATE_COUNT 

 

Convert 

 

 

 

2. P23_UPDATE_DELETE  

 

will be a radio group with Update-U and Delete-D 

 

 

 

3. P23_COLUMN_NAME 

 

select  COLUMN_NAME R, COLUMN_NAME D  

from all_tab_columns col 

WHERE  

OWNER='SCHEMA_NAME' AND  

TABLE_NAME='TABLE_NAME' AND  

COLUMN_NAME NOT IN (COLUMNS YOU WANT TO AVOID); 

 

 

 

 

 

4.P23_CONDITION 

 

Select list -> Equals = , Not Equals <> , Is Empty (IS NULL),Is No Empty (IS NOT NULL), Greater Than > , Less Than < , 

Greater Than Equals >=, Less Than Equals <= , IN , NOT IN 

 

 

5. P23_UPDATE_COLUMN 

 

select  COLUMN_NAME R, COLUMN_NAME D  

from all_tab_columns col 

WHERE  

OWNER='SCHEMA_NAME' AND  

TABLE_NAME='TABLE_NAME' AND  

COLUMN_NAME NOT IN (COLUMNS YOU WANT TO AVOID); 

 

 

6. Create a process on the Convert Button 

 

DECLARE 

V_QUERY VARCHAR2(4000):= NULL; 

BEGIN 

 

IF :P23_UPDATE_DELETE='U' THEN  

 

V_QUERY:='UPDATE SCHEMA_NAME.TABLE_NAME SET '||:P23_UPDATE_COLUMN||' = '''||:P23_TARGET_DATE||''' 

WHERE '||:P23_COLUMN_NAME||' '||:P23_CONDITION||'  

'||CASE WHEN UPPER(:P23_CONDITION) ='IS NULL' THEN NULL  

WHEN UPPER(:P23_CONDITION) ='IS NOT NULL' THEN NULL 

WHEN UPPER(:P23_CONDITION) ='IN' THEN '('||:P23_CURRENT_DATE||')' 

WHEN UPPER(:P23_CONDITION) ='NOT IN' THEN '('||:P23_CURRENT_DATE||')' 

WHEN UPPER(:P23_CONDITION) ='BETWEEN' THEN :P23_CURRENT_DATE ||' AND '|| :P23_BETWEEN 

ELSE :P23_CURRENT_DATE END ||'  

AND UPPER(UPLOADED_BY)= '''||UPPER(:APP_USER)||''''; 

 

ELSIF :P23_UPDATE_DELETE='D' THEN  

 

V_QUERY:='DELETE FROM UPDATE SCHEMA_NAME.TABLE_NAME WHERE '||:P23_COLUMN_NAME||' '||:P23_CONDITION||'  

'||CASE WHEN UPPER(:P23_CONDITION) ='IS NULL' THEN NULL  

WHEN UPPER(:P23_CONDITION) ='IS NOT NULL' THEN NULL 

WHEN UPPER(:P23_CONDITION) ='IN' THEN '('||:P23_CURRENT_DATE||')' 

WHEN UPPER(:P23_CONDITION) ='NOT IN' THEN '('||:P23_CURRENT_DATE||')' 

WHEN UPPER(:P23_CONDITION) ='BETWEEN' THEN :P23_CURRENT_DATE ||' AND '|| :P23_BETWEEN 

ELSE :P23_CURRENT_DATE END ||'  

AND UPPER(UPLOADED_BY)= '''||UPPER(:APP_USER)||''''; 

 

END IF ; 

 

 

EXECUTE IMMEDIATE V_QUERY ;  

 

 

IF SQL%ROWCOUNT > 0 THEN 

:P23_UPDATE_COUNT:=SQL%ROWCOUNT||' Records Successfully Updated!'  ; 

ELSE  

:P23_UPDATE_COUNT:=NULL; 

END IF; 

 

END ; 

 

-----> Put it &P23_UPDATE_COUNT.  on Process Success Message 

 

Monday, January 8, 2024

Go to the Previous Page on the Back Button Oracle Apex

Step 1:  Create two application items. 




Step 2: Create an application process like below

IF :AI_CURRENT_PAGE <> :APP_PAGE_ID  

THEN  
:AI_PREVIOUS_PAGE:=:AI_CURRENT_PAGE;  
END IF; 

:AI_CURRENT_PAGE:=:APP_PAGE_ID;





Step 3: Put the    &AI_PREVIOUS_PAGE.    item into the Back Button target page.



 

Friday, December 29, 2023

Oracle Apex Workspace User Create, Edit Information, Reset Password

Oracle Apex Workspace User Create, Edit Information, Reset Password
#ORACLE_APEX
#CREATE_USER
#EDIT_USER
#RESET_PASSWORD
#APEX_UTIL

APEX_UTIL.CREATE_USER(
    p_user_id                            IN      NUMBER      DEFAULT NULL,
    p_user_name                       IN      VARCHAR2,
    p_first_name                        IN      VARCHAR2    DEFAULT NULL,
    p_last_name                        IN      VARCHAR2    DEFAULT NULL,
    p_description                      IN      VARCHAR2    DEFAULT NULL,
    p_email_address                 IN      VARCHAR2    DEFAULT NULL,
    p_web_password                IN      VARCHAR2,
    p_web_password_format    IN      VARCHAR2    DEFAULT 'CLEAR_TEXT',
    p_group_ids                        IN      VARCHAR2    DEFAULT NULL,
    p_developer_privs               IN      VARCHAR2    DEFAULT NULL,
    p_default_schema                IN      VARCHAR2    DEFAULT NULL,
    p_allow_access_to_schemas       IN      VARCHAR2    DEFAULT NULL,
    p_account_expiry                        IN      DATE        DEFAULT TRUNC(SYSDATE),
    p_account_locked                       IN      VARCHAR2    DEFAULT 'N',
    p_failed_access_attempts           IN      NUMBER      DEFAULT 0,
    p_change_password_on_first_use  IN      VARCHAR2    DEFAULT 'Y',
    p_first_password_use_occurred   IN      VARCHAR2    DEFAULT 'N',
    p_attribute_01                  IN      VARCHAR2    DEFAULT NULL,
    p_attribute_02                  IN      VARCHAR2    DEFAULT NULL,
    p_attribute_03                  IN      VARCHAR2    DEFAULT NULL,
    p_attribute_04                  IN      VARCHAR2    DEFAULT NULL,
    p_attribute_05                  IN      VARCHAR2    DEFAULT NULL,
    p_attribute_06                  IN      VARCHAR2    DEFAULT NULL,
    p_attribute_07                  IN      VARCHAR2    DEFAULT NULL,
    p_attribute_08                  IN      VARCHAR2    DEFAULT NULL,
    p_attribute_09                  IN      VARCHAR2    DEFAULT NULL,
    p_attribute_10                  IN      VARCHAR2    DEFAULT NULL,
    p_allow_app_building_yn              IN      VARCHAR2    DEFAULT NULL,
    p_allow_sql_workshop_yn             IN      VARCHAR2    DEFAULT NULL,
    p_allow_websheet_dev_yn             IN      VARCHAR2    DEFAULT NULL,
    p_allow_team_development_yn     IN      VARCHAR2    DEFAULT NULL);



APEX_UTIL.EDIT_USER (
    p_user_id                          IN                   NUMBER,
    p_user_name                    IN                   VARCHAR2,
    p_first_name                     IN                   VARCHAR2    DEFAULT NULL,
    p_last_name                      IN                   VARCHAR2    DEFAULT NULL,
    p_web_password              IN                   VARCHAR2    DEFAULT NULL,
    p_new_password              IN                   VARCHAR2    DEFAULT NULL,
    p_email_address               IN                   VARCHAR2    DEFAULT NULL,
    p_start_date                      IN                   VARCHAR2    DEFAULT NULL,
    p_end_date                        IN                   VARCHAR2    DEFAULT NULL,
    p_employee_id                  IN                   VARCHAR2    DEFAULT NULL,
    p_allow_access_to_schemas      IN                   VARCHAR2    DEFAULT NULL,
    p_person_type                  IN                   VARCHAR2    DEFAULT NULL,
    p_default_schema             IN                   VARCHAR2    DEFAULT NULL,
    p_group_ids                      IN                   VARCHAR2    DEFAULT NULL,
    p_developer_roles            IN                   VARCHAR2    DEFAULT NULL,
    p_description                    IN                   VARCHAR2    DEFAULT NULL,
    p_account_expiry             IN                   DATE        DEFAULT NULL,
    p_account_locked             IN                   VARCHAR2    DEFAULT 'N',
    p_failed_access_attempts       IN                   NUMBER      DEFAULT 0,
    p_change_password_on_first_use IN                   VARCHAR2    DEFAULT 'Y',
    p_first_password_use_occurred  IN                   VARCHAR2    DEFAULT 'N');



APEX_UTIL.RESET_PASSWORD (
   p_user_name      => 'USER NAME',
   p_new_password   => 'NEW PASSWORD',
   p_change_password_on_first_use=>false);


Monitor Oracle Database Job Scheduler Activity



SELECT * FROM DBA_SCHEDULER_RUNNING_JOBS ; 

SELECT * FROM DBA_SCHEDULER_JOBS WHERE LAST_START_DATE > SYSDATE - 1 ORDER BY CAST(LAST_START_DATE AS DATE) ;

SELECT * FROM DBA_SCHEDULER_JOB_LOG WHERE LOG_DATE > SYSDATE - 1 ORDER BY LOG_DATE ;

SELECT * FROM DBA_SCHEDULER_JOB_RUN_DETAILS WHERE ACTUAL_START_DATE > SYSDATE - 1 order by ACTUAL_START_DATE ;

Create a Form Using Python for Save Data into Excel like a Database

#Download Pyhton from here https://www.python.org/downloads/  #Download Python: #Click the “Download Python 3.x.x” button (the latest versio...