ฟังก์ชันแทนที่ของ Oracle

Fangkchan Thaenthi Khxng Oracle



ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีใช้ฟังก์ชันแทนที่ () ใน Oracle เพื่อแทนที่เหตุการณ์ทั้งหมดของสตริงย่อยด้วยอักขระชุดอื่น

Oracle แทนที่ () ไวยากรณ์ของฟังก์ชัน

รหัสต่อไปนี้แสดงไวยากรณ์ของฟังก์ชันเปลี่ยน ():







แทนที่ ( source_string, สตริงย่อย, replacement_string ) ;



ฟังก์ชันยอมรับพารามิเตอร์สามตัว:



  1. source_string – กำหนดสตริงต้นฉบับที่จะค้นหา
  2. สตริงย่อย – กำหนดสตริงย่อยที่จะถูกแทนที่
  3. replacement_string – สร้างสตริงหรือชุดของอักขระที่จะแทนที่ในตำแหน่งของสตริงย่อย นี่เป็นพารามิเตอร์ทางเลือก หากไม่มีค่าของพารามิเตอร์ replacement_string ฟังก์ชันจะลบสตริงย่อยที่เกิดขึ้นทั้งหมดออกจากสตริงต้นทาง

ในทำนองเดียวกัน หากสตริงย่อยว่างเปล่า ฟังก์ชันจะไม่ทำงานใดๆ และส่งกลับค่า source_string





ฟังก์ชันส่งกลับประเภทสตริงที่มีการเกิดขึ้นทั้งหมดของสตริงย่อยที่แทนที่ด้วย replacement_string

ตัวอย่างฟังก์ชัน Oracle Replace()

ตัวอย่างต่อไปนี้สาธิตการทำงานของฟังก์ชันภายใต้พารามิเตอร์และประเภทอินพุตต่างๆ



ตัวอย่างที่ 1 – แทนที่การเกิดขึ้นของสตริงย่อย

ตัวอย่างด้านล่างแสดงการใช้งานหลักของฟังก์ชันเปลี่ยน () กับพารามิเตอร์อินพุตทั้งหมดที่มีให้

เลือก แทนที่ ( 'การพัฒนาฐานข้อมูล Oracle' , 'แอ๊บ' , 'xy' ) AS แทนที่
จากคู่;

ข้อความค้นหาด้านบนใช้ฟังก์ชันแทนที่ () เพื่อแทนที่อักขระ (ab) ด้วย (xy) ผลลัพธ์ที่ได้:

แทนที่ |
--------------------------+
การพัฒนา Oracle datxyase |

ตัวอย่างที่ 2 – การใช้ฟังก์ชันแทนที่เพื่อลบสตริงย่อย

ดังที่กล่าวไว้ เราสามารถใช้ฟังก์ชันแทนที่ () เพื่อลบสตริงย่อยออกจากสตริงต้นทาง สิ่งนี้เกิดขึ้นเมื่อเราไม่ได้ให้ค่าจากสตริงย่อยตามที่แสดง:

เลือกแทนที่ ( 'https://linuxhint.com' , 'https://' ) AS d จากคู่;

ผล:

|
-------------+
ลินุกซ์ฮินท์.คอม |

ตัวอย่างที่ 3 – แทนที่ค่าในตาราง

เรามักใช้ฟังก์ชันแทนที่ () เพื่อแทนที่ค่าในตารางฐานข้อมูล นำตารางตัวอย่างที่แสดง:

สร้างตาราง sample_data
(
รหัส ตัวเลข,
first_name  varchar2 ( ห้าสิบ ) ,
ip_address  varchar2 ( ยี่สิบ ) ,
btc_address varchar2 ( ห้าสิบ ) ,
credit_card varchar2 ( ห้าสิบ ) ,
ตัวระบุ varchar2 ( 40 ) ,
จำกัด คีย์หลัก sample_pk ( รหัส )
) ;
ใส่ใน sample_data ( รหัส , first_name, ip_address, btc_address, credit_card, ตัวระบุ )
ค่า ( สิบเอ็ด , 'วอลลาส' , '169.158.70.77' , '1CNz5d1d5SC8SaR6dFSVihwztqYx5Fg77q' , '4017955174552' ,
'26811d77-0a3a-4397-bc33-f7835f7c7ab9' ) ;
ใส่ใน sample_data ( รหัส , first_name, ip_address, btc_address, credit_card, ตัวระบุ )
ค่า ( 12 , 'เอียน' , '148.190.10.178' , '1ADxBV7n9JeDDcb8pL24J9wV54mcSRHdu7' , '4017956704480827' ,
'a69fe590-bc1b-4001-8ff8-154bcdb5802d' ) ;
ใส่ใน sample_data ( รหัส , first_name, ip_address, btc_address, credit_card, ตัวระบุ )
ค่า ( 13 , 'อีสเตอร์' , '150.86.18.140' , '126hVKom2Foy9LEA6M4pUAT1h97c2rSD8B' , '4017953296787867' ,
'34ac9385-9e1e-4d13-9537-c4eedb9f2c35' ) ;

ก่อนการปรับปรุงคำสั่ง:

เลือก FIRST_NAME, IP_ADDRESS, CREDIT_CARD จาก SAMPLE_DATA sd;

เราสามารถใช้ฟังก์ชันแทนที่ () เพื่อแทนที่เหตุการณ์ทั้งหมดของ 4 ในคอลัมน์ credit_card ด้วย 5

อัปเดต SAMPLE_DATA SET CREDIT_CARD = REPLACE ( บัตรเครดิต, '4' , '5' ) ;

หลังจากคำสั่งอัปเดต:

ในตารางผลลัพธ์ เราสามารถตรวจสอบได้ว่าค่าในคอลัมน์ credit_card ถูกแทนที่จาก 4 เป็น 5

บทสรุป

จากบทช่วยสอนนี้ คุณจะเข้าใจการทำงานของฟังก์ชันเปลี่ยน () ในฐานข้อมูล Oracle