วันจันทร์ที่ 20 พฤศจิกายน พ.ศ. 2566

REGEXP_LIKE Oracle PL/SQL ใช้เพื่อตรวจสอบว่าค่าของ v_value เป็นตัวเลขหรือไม่

 

 REGEXP_LIKE  Oracle PL/SQL ใช้เพื่อตรวจสอบว่าค่าของ v_value เป็นตัวเลขหรือไม่


DECLARE
    v_value VARCHAR2(50); -- ประกาศตัวแปร VARCHAR2
BEGIN
    -- กำหนดค่าให้กับตัวแปร
    v_value := '123'; -- หรือ 'ABC'
    -- เช็คเงื่อนไข
    IF REGEXP_LIKE(v_value, '^[[:digit:]]+$') THEN
        DBMS_OUTPUT.PUT_LINE('ค่าเป็นตัวเลข');
    ELSE
        DBMS_OUTPUT.PUT_LINE('ค่าไม่เป็นตัวเลข');
    END IF;
END;


ตัวอย่างนี้, REGEXP_LIKE ใช้เพื่อตรวจสอบว่าค่าของ v_value เป็นตัวเลขหรือไม่ โดยใช้ pattern ^[[:digit:]]+$ ที่หมายถึงต้องมีตัวเลขเท่านั้นและมีอย่างน้อย 1 ตัวขึ้นไป. ถ้าค่าเป็นตัวเลข, โปรแกรมจะพิมพ์ "ค่าเป็นตัวเลข", ถ้าไม่ใช่, จะพิมพ์ "ค่าไม่เป็นตัวเลข".

วันพุธที่ 15 พฤศจิกายน พ.ศ. 2566

REGEXP_SUBSTR คือ คำสั่ง ค้นหาข้อควาน

 คำสั่ง REGEXP_SUBSTR ใช้ใน SQL เพื่อดึงข้อมูลจากสตริงโดยใช้ ตัวกำหนดเป็นเงื่อนไขการค้นหาข้อมูล


REGEXP_SUBSTR(source_string, pattern [, start_position [, match_occurrence [, match_return_option [, match_parameter ]]]])

source_string: สตริงที่ต้องการค้นหา

pattern: รูปแบบของ regular expression ที่ใช้ในการค้นหา

start_position (ไม่บังคับ): ตำแหน่งเริ่มต้นในสตริงที่จะทำการค้นหา (default คือ 1)

match_occurrence (ไม่บังคับ): ลำดับที่ของการตรงตาม regular expression ที่ต้องการคืนค่า (default คือ 1)

match_return_option (ไม่บังคับ): ตัวเลือกที่กำหนดว่าจะคืนค่าอะไร หากไม่ระบุจะคืนค่าทั้งหมด

match_parameter (ไม่บังคับ): ตัวเลือกสำหรับการกำหนดพฤติกรรมของ regular expression


SELECT REGEXP_SUBSTR('Hello World', 'o') AS result;

-- Output: 'o'


SELECT REGEXP_SUBSTR('Hello World', 'o', 5, 2) AS result;

-- Output: NULL (ไม่มีการตรงตามที่สอดคล้อง)


SELECT REGEXP_SUBSTR('John 25, Smith 99', '\d+', 1, 2) AS result;

-- Output: '99' (คืนค่าตัวเลขที่สอง)


SELECT REGEXP_SUBSTR('apple orange banana', '\w+', 1, 2, 'i') AS result;

-- Output: 'ORANGE' (คืนค่าตัวพิมพ์ใหญ่ทั้งหมด)

วันจันทร์ที่ 13 พฤศจิกายน พ.ศ. 2566

SQL%ROWCOUNT PL/SQL,SQL DEVELOPER


SQL%ROWCOUNT เป็นตัวแปรพิเศษที่ใช้เก็บจำนวนแถวที่ถูกปรับเปลี่ยนโดยคำสั่ง SQL ล่าสุดที่ทำงานในบล็อก PL/SQL 

การใช้  SQL%ROWCOUNT  มักจะมีในลักษณะต่อไปนี้


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

DECLARE

  v_count NUMBER;

  -- ตัวแปรสำหรับใช้ใน SELECT INTO

  v_column_value VARCHAR2(50);

BEGIN

  -- ตัวอย่างคำสั่ง SQL ที่ทำให้ SQL%ROWCOUNT เป็นค่า

  UPDATE your_table SET your_column = 'new_value' WHERE some_condition;


  -- เก็บจำนวนแถวที่ถูกปรับเปลี่ยน

  v_count := SQL%ROWCOUNT;


  -- ตรวจสอบจำนวนแถวที่ถูกปรับเปลี่ยน

  IF v_count > 0 THEN

    DBMS_OUTPUT.PUT_LINE('มี ' || v_count || ' แถวที่ถูกปรับเปลี่ยน');

  ELSE

    DBMS_OUTPUT.PUT_LINE('ไม่มีแถวที่ถูกปรับเปลี่ยน');

  END IF;


  -- ตัวอย่าง SELECT INTO โดยใช้ SQL%ROWCOUNT

  SELECT your_column INTO v_column_value FROM your_table WHERE some_condition;


  -- ตรวจสอบว่ามีข้อมูลที่ถูกดึงมาหรือไม่

  IF SQL%ROWCOUNT > 0 THEN

    DBMS_OUTPUT.PUT_LINE('มีข้อมูลที่ถูกดึงมา: ' || v_column_value);

  ELSE

    DBMS_OUTPUT.PUT_LINE('ไม่มีข้อมูลที่ถูกดึงมา');

  END IF;

END;

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