SUBSTR : CHAR VARCHAR2 Functions « PL SQL Data Types « Oracle PL/SQL Tutorial






SUBSTR retrieves part of existing string:

v_tx:= substr(string, start position[,number of chars]);
  1. The start position could be either a positive or negative integer.
  2. Positive value would let SUBSTR start counting the position from the beginning.
  3. Negative value would let SUBSTR start counting the position from the end of the string.
  4. If your starting point is more than the total number of characters in the string, Oracle returns NULL.
SQL> declare
  2      v1_tx VARCHAR2(5):='ABCDE';
  3      v2_tx VARCHAR2(5);
  4  begin
  5      v2_tx:=substr(v1_tx,2);
  6      DBMS_OUTPUT.put_line(v2_tx);
  7      v2_tx:=substr(v1_tx,-2);
  8      DBMS_OUTPUT.put_line(v2_tx);
  9  end;
 10  /
BCDE
DE

PL/SQL procedure successfully completed.

The number of characters requested from the string might not always be the length of the resulting string.

You might request more characters than the string has.

Oracle just returns everything up to the end of the string.

SQL>
SQL> declare
  2      v1_tx VARCHAR2(5):='ABCDE';
  3      v2_tx VARCHAR2(5);
  4  begin
  5      v2_tx:=substr(v1_tx,2,2);
  6      DBMS_OUTPUT.put_line(v2_tx);
  7      v2_tx:=substr(v1_tx,2,7);
  8      DBMS_OUTPUT.put_line(v2_tx);
  9  end;
 10  /
BC
BCDE

PL/SQL procedure successfully completed.








21.5.CHAR VARCHAR2 Functions
21.5.1.Useful character built-in functions
21.5.2.Compare char type value with blank space
21.5.3.Compare char type value with 'trim'
21.5.4.The most useful character specifications are
21.5.5.ASCII
21.5.6.SUBSTR
21.5.7.INSTR
21.5.8.Use the SUBSTR and INSTR at the same time.
21.5.9.REPLACE
21.5.10.TRANSLATE
21.5.11.PAD, RPAD, LPAD
21.5.12.TRIM
21.5.13.Extending your options with regular expressions
21.5.14.A Better Routine to Check Social Security Numbers