Oracle Substr -funksjon

Oracle Substr -funksjon

Oracle Substr-funksjonen er en innebygd funksjon som brukes til å trekke ut en substring fra en streng. Funksjonen tar tre argumenter: kildestrengen, Substrings startposisjon og Substrings lengde. Funksjonen returnerer den spesifiserte substringen fra kildestrengen.

Substr -funksjonen er nyttig for et bredt spekter av oppgaver som innebærer å jobbe med strenger i Oracle. Den kan brukes til å trekke ut underlag fra strenger med fast bredde, for å trekke ut de første eller siste N-tegnene i en streng, eller for å trekke ut underlag basert på spesifikke mønstre eller avgrensere.

Syntaksen til substr -funksjonen er grei. Funksjonen brukes vanligvis i en SELECT -setning, der den kan kombineres med andre strengfunksjoner og SQL -klausuler for å manipulere og analysere strengdata.

Denne artikkelen vil diskutere syntaks og bruk av Oracle Substr -funksjonen, sammen med noen eksempler for å hjelpe deg i gang med å bruke denne funksjonen i dine egne spørsmål og applikasjoner.

Funksjonssyntaksdefinisjon

Følgende viser syntaks for substr () -funksjonen i Oracle:

Substr (source_string, start_position, lengde)

Funksjonsargumentene er som følger:

  1. Source_string -argumentet er strengen du vil trekke ut substringen.
  2. Start_position -argumentet er startposisjonen til substringen i kildestrengen.
  3. Lengdeargumentet er antall tegn som skal trekkes ut fra kildestrengen, fra start_posisjonen.

Eksempelfunksjonsbruk

La oss oppdage noen eksempler på hvordan vi bruker substr () -funksjonen i Oracle -databaser.

Et enkelt eksempel demonstrasjon er som vist:

Velg Substr ('Hello World', 4, 6) som res fra Dual;

I eksemplet over vil substr () -funksjonen trekke ut substring av lengde 6 fra "Hello World" -strengen. Funksjonen starter i posisjon 4, som refererer til det femte tegnet i strengen.

Whitespace -tegn regnes også som gyldige tegn.

Koden over skal returnere den resulterende strengen som:

Eksempel 2

Vi kan også spesifisere en negativ verdi for startposisjonen når vi jobber med substr () -funksjonen. I et slikt tilfelle vil funksjonen starte posisjonen fra høyre side av strengen.

Et eksempel er som vist:

Velg Substr ('Hello World', -4, 6) som res fra Dual;

Produksjon:

Som du kan se, trekker funksjonen ut de fire siste tegnene i strengen.

Eksempel 3

Vi kan også bruke substr () -funksjonen med en tabellkolonne for å trekke ut spesifikke verdier fra en gitt inngangsstreng.

Et eksempel på demonstrasjon er som vist:

Kildetabell:

Lag tabellprøve_data
(
ID-nummer,
First_name varchar2 (50),
IP_ADDRESS VARCHAR2 (20),
BTC_ADDRESS VARCHAR2 (50),
Credit_card varchar2 (50),
Identifikator varchar2 (40),
Begrensningsprøve_pk Primærnøkkel (ID)
);
Sett inn i Sample_Data (ID, First_name, IP_Address, BTC_Address, Credit_card, Identifier)
Verdier (1, 'Wallas', '169.158.70.77 ',' 1CNZ5D1D5SC8SAR6DFSVIHWZTQYX5FG77Q ',' 4017955174552 ',
'26811d77-0A3A-4397-BC33-F7835F7C7AB9');
Sett inn i Sample_Data (ID, First_name, IP_Address, BTC_Address, Credit_card, Identifier)
verdier (2, 'Ian', '148.190.10.178 ',' 1ADXBV7N9JEDDCB8PL24J9WV54MCSRHDU7 ',' 4017956704480827 ',
'A69FE590-BC1B-4001-8FF8-154BCDB5802D');
Sett inn i Sample_Data (ID, First_name, IP_Address, BTC_Address, Credit_card, Identifier)
Verdier (3, 'Pasquale', '150.86.18.140 ',' 126HVKOM2FOY9LEA6M4PUAT1H97C2RSD8B ',' 4017953296787867 ',
'34AC9385-9E1E-4D13-9537-C4EEDB9F2C35');
Sett inn i Sample_Data (ID, First_name, IP_Address, BTC_Address, Credit_card, Identifier)
Verdier (4, 'Devi', '241.230.243.196 ',' 1d9fysxn9f3akpzfxk9oijpette9ybynpx ',' 4017953082740 ',
'BA67EB8D-FABA-46CE-BA4F-67BA75E10838');
Sett inn i Sample_Data (ID, First_name, IP_Address, BTC_Address, Credit_card, Identifier)
Verdier (5, 'Sylvester', '82.51.73.188 ',' 1VBZQ6ORGTXPGMHTFPSKU12JXFO3RVSH8 ',' 4041379082464 ',
'30CCA1E2-575F-4333-90EC-25CB04B43E52');
Sett inn i Sample_Data (ID, First_name, IP_Address, BTC_Address, Credit_card, Identifier)
verdier (6, 'Germaine', '7.235.247.115 ',' 15hri9bpcefikzjruapvtfdcagyhbc6hvx ',' 4017959839721 ',
'7EC7D3FD-C140-4B33-B97B-94C06451AA73');
Sett inn i Sample_Data (ID, First_name, IP_Address, BTC_Address, Credit_card, Identifier)
Verdier (7, 'Alix', '63.31.160.54 ',' 1NYHTXE635UXWRA5UV5W8T8MN7XXFBDAJE ',' 4017953212669215 ',
'3120F1D4-3586-41D9-A3ED-1E50F335A124');
Sett inn i Sample_Data (ID, First_name, IP_Address, BTC_Address, Credit_card, Identifier)
Verdier (8, 'Babita', '208.85.91.138 ',' 1Huxjtnfctij2l8l1z1qif37kmkflyxltx ',' 4017955405862390 ',
'0739C5F8-853C-47DE-AFEE-1AEA104BD236');
Sett inn i Sample_Data (ID, First_name, IP_Address, BTC_Address, Credit_card, Identifier)
Verdier (9, 'Garnet', '31.79.138.52 ',' 1LKJKUBDNMXXI5UJ7H2BT7S732FV9QYTPQ ',' 4017956748784 ',
'034ACB80-7A69-4E94-A424-FBEAFB7C97BA');
Sett inn i Sample_Data (ID, First_name, IP_Address, BTC_Address, Credit_card, Identifier)
Verdier (10, 'Lucia', '153.191.2.219 ',' 1GA1DHCZTSSS7HAFVKMOA4C1NG6TPKNTKZ ',' 4017957698631755 ',
'E111E195-C5DA-406B-BEB3-D8791D8EA5B7');

Hvis vi ønsker å trekke ut de fire siste tallene i Credit_card -kolonnen, kan vi kjøre en spørring som vist:

Velg First_name, IP_Address, Substr (Credit_Card, -4, 5) som Masked_card fra Sample_Data SD;

Resultat:

Konklusjon

Substr -funksjonen er ofte kombinert med andre strenger, for eksempel lengde og instr, for å manipulere og analysere strenger i Oracle. Det kan være nyttig for oppgaver som å trekke ut underlag fra strenger med fast bredde, trekke ut de første eller siste N-tegnene i en streng, eller trekke ut underlag basert på spesifikke mønstre eller avgrensere.