How to Use Substr In Oracle?

11 minutes read

In Oracle, the SUBSTR function is used to extract a substring from a string. The syntax of the SUBSTR function is:


SUBSTR(string, start_position, length)


Where:

  • string is the input string from which the substring will be extracted
  • start_position is the position in the input string from where the extraction will begin (starting from 1)
  • length is the number of characters to be extracted from the input string


For example, to extract the first 3 characters from the string 'Hello World', you can use the following query:


SELECT SUBSTR('Hello World', 1, 3) FROM dual;


This will return 'Hel' as the output. You can also use negative values for start_position to start the extraction from the end of the string. And if you omit the length parameter, Oracle will extract all characters from the start_position to the end of the string.

Top Rated Oracle Database Books of November 2024

1
OCA Oracle Database SQL Exam Guide (Exam 1Z0-071) (Oracle Press)

Rating is 5 out of 5

OCA Oracle Database SQL Exam Guide (Exam 1Z0-071) (Oracle Press)

2
Oracle PL/SQL Programming: Covers Versions Through Oracle Database 12c

Rating is 4.9 out of 5

Oracle PL/SQL Programming: Covers Versions Through Oracle Database 12c

  • O Reilly Media
3
Oracle Database 12c PL/SQL Programming

Rating is 4.8 out of 5

Oracle Database 12c PL/SQL Programming

4
Beginning Oracle Database 12c Administration: From Novice to Professional

Rating is 4.7 out of 5

Beginning Oracle Database 12c Administration: From Novice to Professional

5
Expert Oracle Database Architecture: Techniques and Solutions for High Performance and Productivity

Rating is 4.6 out of 5

Expert Oracle Database Architecture: Techniques and Solutions for High Performance and Productivity

6
Expert Oracle Database Architecture

Rating is 4.5 out of 5

Expert Oracle Database Architecture

  • Apress
7
Oracle Database Application Security: With Oracle Internet Directory, Oracle Access Manager, and Oracle Identity Manager

Rating is 4.4 out of 5

Oracle Database Application Security: With Oracle Internet Directory, Oracle Access Manager, and Oracle Identity Manager

8
Oracle Database 12c PL/SQL Advanced Programming Techniques

Rating is 4.3 out of 5

Oracle Database 12c PL/SQL Advanced Programming Techniques

9
Oracle Database 11g SQL (Oracle Press)

Rating is 4.2 out of 5

Oracle Database 11g SQL (Oracle Press)

10
Oracle 12c For Dummies

Rating is 4.1 out of 5

Oracle 12c For Dummies


What is the behavior of substr function in Oracle when the starting position is negative?

In Oracle, if the starting position provided to the substr function is negative, it is considered to be counted from the end of the string.


For example, if we have a string 'Hello World', and we use the substr function with starting position -5, it will start counting from the 5th character from the end of the string, which in this case would be the character 'W'.


So, the behavior of the substr function in Oracle when the starting position is negative is to count from the end of the string.


How to use substr in Oracle to extract a substring based on a specific length?

To extract a substring of a specific length from a string in Oracle, you can use the SUBSTR function. The syntax for the SUBSTR function is as follows:

1
SUBSTR(string, start_position, length)


Where:

  • string is the original string from which the substring will be extracted
  • start_position is the starting position from where the substring extraction will begin (1-based index)
  • length is the number of characters to extract for the substring


Here is an example of how to use the SUBSTR function to extract a substring of specific length from a string in Oracle:

1
2
SELECT SUBSTR('Hello World', 7, 5) AS extracted_string
FROM dual;


In this example, the function will extract a substring starting from the 7th position in the string 'Hello World' and will include 5 characters, resulting in the output 'World'.


What is the significance of using substr in Oracle for data cleansing processes?

Using substr in Oracle for data cleansing processes allows you to extract a portion of a string value from a specific position within the string. This can be very useful for cleaning and standardizing data, as it allows you to isolate and manipulate specific parts of a string.


For example, you can use substr to extract the first three characters of a postal code, remove leading or trailing spaces from a text field, or standardize date formats. This can help improve data quality and consistency, making it easier to analyze and work with the data.


Overall, substr in Oracle is a powerful tool for data cleansing processes as it allows you to easily manipulate and clean up string data in your database.


How to use substr in Oracle to extract a substring excluding certain characters?

In Oracle, you can use the SUBSTR function along with the TRANSLATE function to extract a substring excluding certain characters. Here is an example of how to use these functions together:

  1. Suppose you have a string 'ABC123DEF456GHI' and you want to extract a substring excluding the numbers.
  2. You can use the TRANSLATE function to replace all the numbers with an empty string and then use the SUBSTR function to extract the desired substring.
1
2
3
4
5
6
SELECT SUBSTR(
     TRANSLATE('ABC123DEF456GHI', '0123456789', '##########'), -- Replace numbers with '#'
     INSTR(TRANSLATE('ABC123DEF456GHI', '0123456789', '##########'), '#', 1), -- Start position
     LENGTH('ABC123DEF456GHI') - LENGTH(REGEXP_REPLACE('ABC123DEF456GHI', '[0-9]', '')) -- Length of substring
) AS extracted_string
FROM dual;


In this example:

  • The TRANSLATE function replaces all the numbers in the original string with '#'.
  • The INSTR function finds the position of the first '#' character in the translated string.
  • The LENGTH function calculates the length of the original string excluding the numbers.
  • Finally, the SUBSTR function extracts the substring starting from the position of the first '#' character and with the calculated length.


This will give you the result 'ABCDEFGHI' as the extracted substring excluding the numbers.


How to use substr in Oracle to extract a substring based on a regular expression?

You can use the regexp_substr function in Oracle to extract a substring based on a regular expression. Here's the syntax for using regexp_substr:

1
2
SELECT REGEXP_SUBSTR(column_name, 'regex_pattern', start_position, occurrence, match_parameter)
FROM table_name;


  • column_name: the name of the column from which you want to extract the substring
  • regex_pattern: the regular expression pattern that the substring should match
  • start_position: the position in the string where the search should start (optional, default is 1)
  • occurrence: the occurrence of the substring that you want to extract (optional, default is 1)
  • match_parameter: additional options for the regular expression (optional)


For example, if you have a column called full_name in a table called employees, and you want to extract the last name from the full name, you can use the following query:

1
2
SELECT REGEXP_SUBSTR(full_name, '\w+$') AS last_name
FROM employees;


This will extract the last word in the full_name column, which is assumed to be the last name.


What is the result of using substr on a null string in Oracle?

If you use the SUBSTR function on a null string in Oracle, the result will also be a null string.

Facebook Twitter LinkedIn Telegram Whatsapp Pocket

Related Posts:

To extract a substring from a column in Oracle, you can use the SUBSTR function. The syntax for the SUBSTR function is as follows:SUBSTR(column_name, starting_position, length)column_name: The name of the column from which you want to extract the substring.sta...
To replace only certain parts of text in Oracle, you can use the REPLACE function along with the SUBSTR function.First, use the REPLACE function to replace the part of the text that you want to modify with a placeholder string. Then, use the SUBSTR function to...
To get the number between special characters in Oracle, you can use the SUBSTR function along with INSTR function.Here is an example query: SELECT SUBSTR(column_name, INSTR(column_name, '[', 1, 1) + 1, INSTR(column_name, ']', 1, 1) - INSTR(colu...