Friday, 14 March 2025

Password Encryption and Decryption in Oracle DB

 CREATE OR REPLACE PACKAGE  encrypt_paswd as

FUNCTION encrypt_val( p_val IN VARCHAR2 ) RETURN RAW;

FUNCTION decrypt_val( p_val IN RAW ) RETURN VARCHAR2  ;

end;

/


CREATE OR REPLACE PACKAGE BODY encrypt_paswd

AS

  G_CHARACTER_SET VARCHAR2(10) := 'AL32UTF8';

  G_STRING VARCHAR2(32) := '12345678901234567890123456789012';

  G_KEY RAW(250) := utl_i18n.string_to_raw

                      ( data => G_STRING,

                        dst_charset => G_CHARACTER_SET );

  G_ENCRYPTION_TYPE PLS_INTEGER := dbms_crypto.encrypt_aes256 

                                    + dbms_crypto.chain_cbc 

                                    + dbms_crypto.pad_pkcs5;

  ------------------------------------------------------------------------

  --Encrypt a password 

  --Salt the password

  ------------------------------------------------------------------------

  FUNCTION encrypt_val( p_val IN VARCHAR2 ) RETURN RAW

  IS

    l_val RAW(32) := UTL_I18N.STRING_TO_RAW( p_val, G_CHARACTER_SET );

    l_encrypted RAW(32);

  BEGIN

    l_val := utl_i18n.string_to_raw

              ( data => p_val,

                dst_charset => G_CHARACTER_SET );


    l_encrypted := dbms_crypto.encrypt

                   ( src => l_val,

                     typ => G_ENCRYPTION_TYPE,

                     key => G_KEY );


    RETURN l_encrypted;

  END encrypt_val;



FUNCTION decrypt_val( p_val IN RAW ) RETURN VARCHAR2  

  IS

    l_decrypted RAW(32);

    l_decrypted_string VARCHAR2(32);

    l_user  VARCHAR2(32);

  BEGIN

    SELECT user 

      INTO l_user

      FROM dual;


   -- if l_user = 'ADMIN' -- you can restrict usage of decrypt to certain db users only.

    --then

        l_decrypted := dbms_crypto.decrypt

                ( src => p_val,

                  typ => G_ENCRYPTION_TYPE,

                  key => G_KEY );


        l_decrypted_string := utl_i18n.raw_to_char

                    ( data => l_decrypted,

                      src_charset => G_CHARACTER_SET );

        RETURN l_decrypted_string;

   -- else            

     --       RAISE_APPLICATION_ERROR(-20101, 'You are not authorized to use this function - decrypt_val()');

    --end if;

   --RETURN 'Unknown';

  END decrypt_val;

  END encrypt_paswd;

/


Thursday, 13 March 2025

Dynamic Query In Oracle Apex Intrective Report

 declare

qry varchar2(32760);

lvl number;

where_string varchar2(32000);

begin

where_string := ' Where item_name like '||'''%'||:P531_NAME||'%'||'''' ;

where_string := where_string||' and brand_name like '||'''%'||:P531_NAME||'%'||'''' ;

qry := 'select * from ( ';

qry := qry||     'select * from (  select  brand_name , brand_id , a.item_id , i.item_name ,  item_packing , cmonthyear , NMONTHYEAR ,  i.store_typename, ' ;

qry := qry||'decode('''||:P531_ROUTE||''', ''W'', sum(NVL(QTY*ITEM_BASE_WEIGHT,0)/1000) ,  sum(NVL(QTY,0)))  qty ';

qry := qry||'from ( select * from v_issues@livedb vsi where unit_id = '''||:UNIT_ID||'''  and vsi.store_id = '''||:P531_STORE||'''';

qry := qry||'union all select * from smerp2021.v_issues@livedb vsi2021 where unit_id = '''||:UNIT_ID||''' and vsi2021.store_id = '''||:P531_STORE||''')  a , ';

qry := qry||'calendar@livedb b ,  v_mtl_items@livedb i where a.iss_date = b.cdate ';

qry := qry||'and  iss_date  between''' ||  :P531_FRMDAT || ''' and ''' ||  :P531_TODAT ||''''; 

qry := qry||'and   a.unit_id = '''||:UNIT_ID|| ''''; 

qry := qry||'and a.item_id = i.item_id ';

qry := qry||'and a.item_id = decode('''||:P531_ITEM||''', null, a.item_id, '''||:P531_ITEM||''')';

qry := qry||'and i.category_id = decode('''||:P531_CID||''', null, I.category_id,'''||:P531_CID||''')';

qry := qry||'and a.store_id = '''||:P531_STORE||''' ';

qry := qry||'group by   brand_name , i.brand_id , a.item_id , i.item_name ,  item_packing , cmonthyear , NMONTHYEAR  ,i.store_typename order by i.item_name , NMONTHYEAR)';

qry := qry||')';

qry := qry||where_string;

return qry ;

end;

Tuesday, 11 March 2025

Intrective Report Column ( Urdu Font ) in Apex

 Column HTML Expression


<html>

<head>

  <meta charset="UTF-8">

  <style>

    @font-face {

      font-family: 'Jameel Noori Nastaleeq';

      src: url('https://www.fontsaddict.com/fontface/jameel-noori-nastaleeq.ttf');

    }

    .shopname {

      font-family: 'Jameel Noori Nastaleeq', 'Noto Nastaliq Urdu', 'Urdu Typesetting', serif;

    }

  </style>

</head>

<body><div class="shopname">#SHOP_NAME#</div>

</body>

</html>

Check Internet Connectivity on Local System

if (!navigator.onLine) {     showOfflineAlert(); } else {     // Set a strict 3-second network timeout threshold     const controller = new ...