Oracle String/Char Function - Oracle/PLSQL RPAD Function






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

RPAD(string, length_to_make_string[, what_to_add_to_right_of_string])

Syntax

The syntax for the Oracle/PLSQL RPAD function is:

RPAD( string1, padded_length, [ pad_string ] )

string1 is the string to pad to.

padded_length is the number of characters to return.

pad_string is optional. Default to spaces.

Example

By default the RPAD appends space to the string:


SQL> SELECT RPAD('Letters', 20) FROM dual;

RPAD('LETTERS',20)
--------------------
Letters

SQL>

Append dot the string:


SQL> SELECT RPAD('Letters', 20, '.') FROM dual;

RPAD('LETTERS',20,'.
--------------------
Letters.............

SQL>

CREATE TABLE EMP (EMPNO NUMBER(4) NOT NULL,
                  ENAME VARCHAR2(10),
                  JOB VARCHAR2(9),
                  SAL NUMBER(7, 2),
                  DEPTNO NUMBER(2));
-- www  .j  a va  2  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, rpad(ename,10),rpad(ename,10,'.') from emp;

ENAME      RPAD(ENAME RPAD(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>




RPAD number value

The number value is rpadable:


CREATE TABLE EMP (EMPNO NUMBER(4) NOT NULL,
                  ENAME VARCHAR2(10),
                  JOB VARCHAR2(9),
                  SAL NUMBER(7, 2),
                  DEPTNO NUMBER(2));
-- from ww w .  j  a  va2  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, rpad(SAL,10),rpad(SAL,10,'.') from emp;

ENAME      RPAD(SAL,1 RPAD(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       1500......

11 rows selected.

SQL>