Oracle String/Char Function - Oracle/PLSQL LPAD Function






This Oracle tutorial explains how to use the Oracle/PLSQL LPAD function.

LPAD adds a specified set of characters to the left of the original string. LPAD stands for "left pad". The general format for this function is:

LPAD(string, length_to_make_string[, what_to_add_to_left_of_string])

By default the LPAD adds space to the value:

Syntax

The syntax for the Oracle/PLSQL LPAD function is:

LPAD( string1, padded_length, [ pad_string ] )

string1 is the string to pad characters to the left-hand side.

padded_length is the number of characters to return. If the padded_length is smaller than the original string, the LPAD function will truncate the string to the size of padded_length.

pad_string is optional. Default to spaces.





Example


SQL> SELECT LPAD('Column', 15) FROM dual;

LPAD('COLUMN',1
---------------
         Column

SQL>

Adding dot to the value:


SQL> SELECT LPAD('Column', 15, '.') FROM dual;

LPAD('COLUMN',1
---------------
.........Column

SQL>




LPAD string value

The following sql adds dots to the employee's name:


CREATE TABLE EMP (EMPNO NUMBER(4) NOT NULL,
                  ENAME VARCHAR2(10),
                  JOB VARCHAR2(9),
                  SAL NUMBER(7, 2),
                  DEPTNO NUMBER(2));
-- from  w ww . ja v  a2  s . co  m
INSERT INTO EMP VALUES (1, 'SMITH', 'CLERK',     800,    20);
INSERT INTO EMP VALUES (2, 'ALLEN', 'SALESMAN', 1600,    30);
INSERT INTO EMP VALUES (3, 'WARD',  'SALESMAN', 1250,    30);
INSERT INTO EMP VALUES (4, 'JONES', 'MANAGER',  2975,    20);
INSERT INTO EMP VALUES (5, 'MARTIN','SALESMAN', 1250,    30);
INSERT INTO EMP VALUES (6, 'BLAKE', 'MANAGER',  2850,    30);
INSERT INTO EMP VALUES (7, 'CLARK', 'MANAGER',  2850,    10);
INSERT INTO EMP VALUES (8, 'SCOTT', 'ANALYST',  3000,    20);
INSERT INTO EMP VALUES (9, 'KING',  'PRESIDENT',3000,    10);
INSERT INTO EMP VALUES (10,'TURNER','SALESMAN', 1500,    30);
INSERT INTO EMP VALUES (11,'ADAMS', 'CLERK',    1500,    20);

SQL> select ename, lpad(ename,10),lpad(ename,10,'.') from emp;

ENAME      LPAD(ENAME LPAD(ENAME
---------- ---------- ----------
SMITH           SMITH .....SMITH
ALLEN           ALLEN .....ALLEN
WARD             WARD ......WARD
JONES           JONES .....JONES
MARTIN         MARTIN ....MARTIN
BLAKE           BLAKE .....BLAKE
CLARK           CLARK .....CLARK
SCOTT           SCOTT .....SCOTT
KING             KING ......KING
TURNER         TURNER ....TURNER
ADAMS           ADAMS .....ADAMS

11 rows selected.

SQL>

LPAD number value

The number value is lpadable:


CREATE TABLE EMP (EMPNO NUMBER(4) NOT NULL,
                  ENAME VARCHAR2(10),
                  JOB VARCHAR2(9),
                  SAL NUMBER(7, 2),
                  DEPTNO NUMBER(2));
--   ww w  .  j a v a2 s  .  c o m
INSERT INTO EMP VALUES (1, 'SMITH', 'CLERK',     800,    20);
INSERT INTO EMP VALUES (2, 'ALLEN', 'SALESMAN', 1600,    30);
INSERT INTO EMP VALUES (3, 'WARD',  'SALESMAN', 1250,    30);
INSERT INTO EMP VALUES (4, 'JONES', 'MANAGER',  2975,    20);
INSERT INTO EMP VALUES (5, 'MARTIN','SALESMAN', 1250,    30);
INSERT INTO EMP VALUES (6, 'BLAKE', 'MANAGER',  2850,    30);
INSERT INTO EMP VALUES (7, 'CLARK', 'MANAGER',  2850,    10);
INSERT INTO EMP VALUES (8, 'SCOTT', 'ANALYST',  3000,    20);
INSERT INTO EMP VALUES (9, 'KING',  'PRESIDENT',3000,    10);
INSERT INTO EMP VALUES (10,'TURNER','SALESMAN', 1500,    30);
INSERT INTO EMP VALUES (11,'ADAMS', 'CLERK',    1500,    20);

SQL> select ename, lpad(SAL,10),lpad(SAL,10,'.') from emp;

ENAME      LPAD(SAL,1 LPAD(SAL,1
---------- ---------- ----------
SMITH             800 .......800
ALLEN            1600 ......1600
WARD             1250 ......1250
JONES            2975 ......2975
MARTIN           1250 ......1250
BLAKE            2850 ......2850
CLARK            2850 ......2850
SCOTT            3000 ......3000
KING             3000 ......3000
TURNER           1500 ......1500
ADAMS         1500.12 ...1500.12

11 rows selected.

SQL>