ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีใช้ฟังก์ชันแทนที่ () ใน Oracle เพื่อแทนที่เหตุการณ์ทั้งหมดของสตริงย่อยด้วยอักขระชุดอื่น
Oracle แทนที่ () ไวยากรณ์ของฟังก์ชัน
รหัสต่อไปนี้แสดงไวยากรณ์ของฟังก์ชันเปลี่ยน ():
แทนที่ ( source_string, สตริงย่อย, replacement_string ) ;
ฟังก์ชันยอมรับพารามิเตอร์สามตัว:
- source_string – กำหนดสตริงต้นฉบับที่จะค้นหา
- สตริงย่อย – กำหนดสตริงย่อยที่จะถูกแทนที่
- 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