Oracle Replace

Oracle Replace



Αυτό το άρθρο διερευνά τη χρήση της συνάρτησης replace() στη βάση δεδομένων Oracle για την αντικατάσταση της εμφάνισης μιας δεδομένης υποσυμβολοσειράς με μια άλλη υποσυμβολοσειρά.

Συντακτικό συνάρτησης

Ο ακόλουθος κώδικας δείχνει τη σύνταξη της συνάρτησης replace():







REPLACE(πηγή_συμβολοσειρά, υποσυμβολοσειρά, αντικατάσταση_συμβολοσειρά);

Η συνάρτηση δέχεται τρεις παραμέτρους:



  1. source_string – αντιπροσωπεύει τη συμβολοσειρά πηγής προς αναζήτηση.
  2. Υποσυμβολοσειρά – ορίζει την υποσυμβολοσειρά που θα αντικατασταθεί
  3. αντικατάσταση_συμβολοσειράς – ορίζει τη συμβολοσειρά ή το σύνολο χαρακτήρων που αντικαθίστανται στη θέση της δευτερεύουσας συμβολοσειράς.

Η συνάρτηση επιστρέφει έναν τύπο συμβολοσειράς με όλες τις εμφανίσεις της υποσυμβολοσειράς να έχουν αντικατασταθεί με το replacement_string.



Παραδείγματα συνάρτησης Oracle Replace().

Τα ακόλουθα παραδείγματα δείχνουν πώς συμπεριφέρεται η συνάρτηση κάτω από διάφορες παραμέτρους και τύπους εισόδου:





Παράδειγμα 1 – Αντικατάσταση εμφάνισης υποσυμβολοσειράς

Το παρακάτω παράδειγμα δείχνει την κύρια χρήση της συνάρτησης replace() με όλες τις παραμέτρους εισόδου που παρέχονται.

επιλέξτε αντικατάσταση('Ανάπτυξη βάσης δεδομένων Oracle', 'ab', 'xy') AS αντικαταστάθηκε
απο διπλο?

Το παραπάνω ερώτημα χρησιμοποιεί τη συνάρτηση replace() για να αντικαταστήσει τους χαρακτήρες (ab) με (xy). Προκύπτουσα έξοδος:



ΑΝΤΙΚΑΤΑΣΤΑΘΗΚΕ                   |
---------------------------+
Oracle datxyase ανάπτυξη|

Παράδειγμα 2 – Χρήση της συνάρτησης αντικατάστασης για την αφαίρεση μιας υποσυμβολοσειράς

Όπως αναφέρθηκε, μπορούμε να χρησιμοποιήσουμε τη συνάρτηση replace() για να αφαιρέσουμε μια υποσυμβολοσειρά από τη συμβολοσειρά πηγής. Αυτό συμβαίνει όταν δεν παρέχουμε την τιμή από την υποσυμβολοσειρά όπως φαίνεται:

SELECT αντικατάσταση('https://linuxhint.com', 'https://') AS d FROM dual;

Αποτέλεσμα:

Δ            |
-------------+
linuxhint.com|

Παράδειγμα 3 – Αντικατάσταση τιμών σε πίνακα

Συχνά χρησιμοποιούμε τη συνάρτηση replace() για να αντικαταστήσουμε τιμές σε έναν πίνακα βάσης δεδομένων. Πάρτε το παράδειγμα του πίνακα που φαίνεται:

δημιουργία πίνακα δείγματος_δεδομένων
(
αριθμό ταυτότητας,
first_name  varchar2(50),
ip_address  varchar2(20),
btc_address varchar2(50),
πιστωτική_κάρτα varchar2(50),
αναγνωριστικό  varchar2(40),
περιορισμός sample_pk πρωτεύον κλειδί (αναγνωριστικό)
)
εισαγάγετε στο sample_data (id, first_name, ip_address, btc_address, credit_card, identifier)
τιμές (11, 'Wallas', '169.158.70.77', '1CNz5d1d5SC8SaR6dFSVihwztqYx5Fg77q', '4017955174552',
'26811d77-0a3a-4397-bc33-f7835f7c7ab9');
insert into sample_data(id, first_name, ip_address, btc_address, credit_card, identifier)
τιμές (12, 'Ian', '148.190.10.178', '1ADxBV7n9JeDDcb8pL24J9wV54mcSRHdu7', '4017956704480827',
'a69fe590-bc1b-4001-8ff8-154bcdb5802d');
εισαγάγετε στο sample_data (id, first_name, ip_address, btc_address, credit_card, identifier)
τιμές (13, 'Pasquale', '150.86.18.140', '126hVKom2Foy9LEA6M4pUAT1h97c2rSD8B', '4017953296787867',
'34ac9385-9e1e-4d13-9537-c4eedb9f2c35');

Δήλωση πριν από την ενημέρωση:

SELECT FIRST_NAME, IP_ADDRESS, CREDIT_CARD FROM SAMPLE_DATA sd.

Μπορούμε να χρησιμοποιήσουμε τη συνάρτηση replace() για να αντικαταστήσουμε όλες τις εμφανίσεις του 4 στη στήλη πιστωτική_κάρτα με ένα 5.

ΕΝΗΜΕΡΩΣΗ ΣΕΤ ΔΕΙΓΜΑΤΟΣ_ΔΕΔΟΜΕΝΩΝ CREDIT_CARD = REPLACE(CREDIT_CARD, '4', '5');

Μετά τη δήλωση ενημέρωσης:

Στον πίνακα που προκύπτει, μπορούμε να επαληθεύσουμε ότι οι τιμές στις στήλες της πιστωτικής_κάρτας έχουν αντικατασταθεί από το 4 στο 5.

συμπέρασμα

Μέσα από αυτό το σεμινάριο, κατανοήσατε τη λειτουργία της συνάρτησης replace() στις βάσεις δεδομένων της Oracle.