الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Pl/sql Function

Featured Replies

بتاريخ:

السلام عليكم ورحمة الله

شباب أبغى أعرف طريقة تشفير أرقام مثل لوحة أرقام الجوال إلى حروف

على سبيل المثال

a = 2

b = 22

c = 222

d = 3

e = 33

أرجو أن أجد الحل عندكم

بتاريخ:

SELECT TRANSLATE('12345','ABCDE') FROM DUAL ;

اقرأ عن TRANSLATE OR REPLACE FUNCTIONS

بتاريخ:

 

CREATE OR REPLACE FUNCTION EN_DECRYPT (INPUT_STR IN VARCHAR2 , ACTION IN VARCHAR2)RETURN VARCHAR2 IS 

    CRNT_CHR   VARCHAR2(2) ;                             -- CONCURRENT CHARACTER .

    REVRS_STR  VARCHAR2(2000);

    TEMPSTR    VARCHAR2(2000) := NULL;

    OUTPUT_STR VARCHAR2(2000);

    EN_KEY     NUMBER(1) := 1;

    RSLT       VARCHAR2(2000);

    INPUT      VARCHAR2(2000);

BEGIN 

    -- GET EN_KEY 

--    EN_KEY := SUBSTR(LENGTH(INPUT_STR),1,1);

  INPUT := EN_KEY||INPUT_STR;

    -- CHECK IF INPUT_STR IS NULL

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

--- E N C R Y P T I O N ---

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

    IF ACTION = 'E' OR ACTION = 'e' THEN

    -- REVERS THE INPUT LINE 

    FOR I IN REVERSE 1..LENGTH(INPUT)

    LOOP

        CRNT_CHR := SUBSTR(INPUT,I,1);

        IF ASCII(CRNT_CHR) = 32 THEN CRNT_CHR := '}{';

             END IF;   -- IF THE CRNT_CHR IS SPACE THEN REPLACE IT WITH ,! [_(] 

        REVRS_STR := REVRS_STR||CRNT_CHR;

    END LOOP;

    -- PARSE THE INPUT LINE .

    -- GET THE CHARACTER ASCCI

    -- ADD THE POSITION OF THE CHARACTER PLTIPIED BY 1.5 TO THE ASCII NUMBER

  FOR I IN  1..LENGTH(REVRS_STR) 

  LOOP                                           

    CRNT_CHR := SUBSTR(REVRS_STR,I,1);

      RSLT := RSLT||CHR((ASCII(CRNT_CHR))+(EN_KEY));

  END LOOP;

  ELSIF

 ACTION = 'D' OR ACTION = 'd' THEN

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

 -- D C R Y P T I O N --

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

 TEMPSTR := NULL;

 REVRS_STR := NULL;

   FOR I IN  1..LENGTH(INPUT_STR) 

  LOOP                                           

    CRNT_CHR := SUBSTR(INPUT_STR,I,1);

      TEMPSTR := TEMPSTR||CHR((ASCII(CRNT_CHR))-(EN_KEY));     

        END LOOP;

    -- REVERS THE OUTPUT LINE 

    FOR I IN REVERSE 1..LENGTH(TEMPSTR)

    LOOP

        CRNT_CHR := SUBSTR(TEMPSTR,I,1);

        IF ASCII(CRNT_CHR) = 32 

            THEN CRNT_CHR := '}{';

             END IF;   -- IF THE CRNT_CHR IS SPACE THEN REPLACE IT WITH ,! [_(] 

        REVRS_STR := REVRS_STR||CRNT_CHR;

        END LOOP;  

   FOR I IN  1..LENGTH(REVRS_STR) 

  LOOP                                           

    CRNT_CHR := SUBSTR(REVRS_STR,I,1);

    IF CRNT_CHR = '{' THEN 

      IF     SUBSTR(REVRS_STR,I+1,1) = '}' THEN

           CRNT_CHR := NULL;  

      END IF;

    END IF;  

    IF CRNT_CHR = '}' THEN 

      IF     SUBSTR(REVRS_STR,I-1,1) = '{'

           THEN CRNT_CHR := '_'; 

      END IF;

    END IF;  

      RSLT := RSLT||CRNT_CHR;     

  END LOOP;

    RSLT := SUBSTR(RSLT,2,LENGTH(RSLT)-1);

    END IF;    

    RETURN(RSLT);

END;

/

 

===============================================================================================

تشفير

SELECT EN_DECRYPT('123456','e') FROM DUAL ;

الناتج

7654322

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

فك التشفير

SELECT EN_DECRYPT('7654322','d') FROM DUAL ;

الناتج

123456

======================================================================================

للامانه منقول من احدى الزملاء

 

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.