Use vsize for varchar2 value and nvarchar value : VSIZE « Char Functions « Oracle PL / SQL






Use vsize for varchar2 value and nvarchar value

  
SQL>
SQL>
SQL> CREATE TABLE EMP
  2  (EMPNO NUMBER(4) NOT NULL,
  3   ENAME VARCHAR2(10),
  4   JOB VARCHAR2(9),
  5   MGR NUMBER(4),
  6   HIREDATE DATE,
  7   SAL NUMBER(7, 2),
  8   COMM NUMBER(7, 2),
  9   DEPTNO NUMBER(2)
 10  );

Table created.

SQL>
SQL> INSERT INTO EMP VALUES (7369, 'SMITH',  'CLERK',     7902,TO_DATE('17-DEC-1980', 'DD-MON-YYYY'),  800, NULL, 20);

1 row created.

SQL> INSERT INTO EMP VALUES (7499, 'ALLEN',  'SALESMAN',  7698,TO_DATE('20-FEB-1981', 'DD-MON-YYYY'), 1600,  300, 30);

1 row created.

SQL> INSERT INTO EMP VALUES (7521, 'WARD',   'SALESMAN',  7698,TO_DATE('22-FEB-1981', 'DD-MON-YYYY'), 1250,  500, 30);

1 row created.

SQL> INSERT INTO EMP VALUES (7566, 'JONES',  'MANAGER',   7839,TO_DATE('2-APR-1981', 'DD-MON-YYYY'),  2975, NULL, 20);

1 row created.

SQL> INSERT INTO EMP VALUES (7654, 'MARTIN', 'SALESMAN',  7698,TO_DATE('28-SEP-1981', 'DD-MON-YYYY'), 1250, 1400, 30);

1 row created.

SQL> INSERT INTO EMP VALUES (7698, 'BLAKE',  'MANAGER',   7839,TO_DATE('1-MAY-1981', 'DD-MON-YYYY'),  2850, NULL, 30);

1 row created.

SQL> INSERT INTO EMP VALUES (7782, 'CLARK',  'MANAGER',   7839,TO_DATE('9-JUN-1981', 'DD-MON-YYYY'),  2450, NULL, 10);

1 row created.

SQL> INSERT INTO EMP VALUES (7788, 'SCOTT',  'ANALYST',   7566,TO_DATE('09-DEC-1982', 'DD-MON-YYYY'), 3000, NULL, 20);

1 row created.

SQL> INSERT INTO EMP VALUES (7839, 'KING',   'PRESIDENT', NULL,TO_DATE('17-NOV-1981', 'DD-MON-YYYY'), 5000, NULL, 10);

1 row created.

SQL> INSERT INTO EMP VALUES (7844, 'TURNER', 'SALESMAN',  7698,TO_DATE('8-SEP-1981', 'DD-MON-YYYY'),  1500,    0, 30);

1 row created.

SQL> INSERT INTO EMP VALUES (7876, 'ADAMS',  'CLERK',     7788,TO_DATE('12-JAN-1983', 'DD-MON-YYYY'), 1100, NULL, 20);

1 row created.

SQL> INSERT INTO EMP VALUES (7900, 'JAMES',  'CLERK',     7698,TO_DATE('3-DEC-1981', 'DD-MON-YYYY'),   950, NULL, 30);

1 row created.

SQL> INSERT INTO EMP VALUES (7902, 'FORD',   'ANALYST',   7566,TO_DATE('3-DEC-1981', 'DD-MON-YYYY'),  3000, NULL, 20);

1 row created.

SQL> INSERT INTO EMP VALUES (7934, 'MILLER', 'CLERK',     7782,TO_DATE('23-JAN-1982', 'DD-MON-YYYY'), 1300, NULL, 10);

1 row created.

SQL>
SQL>  create table nchar_test (
  2      ename    varchar2(20),
  3      n_ename  nvarchar2(20)
  4    )
  5    /

Table created.

SQL>
SQL>  insert into nchar_test select ename, ename from emp;

14 rows created.

SQL>
SQL>  select ename, vsize( ename ) "Char Size", vsize( n_ename ) "NChar Size"
  2   from nchar_test
  3   /
ENAME                 Char Size NChar Size
-------------------- ---------- ----------
SMITH                         5         10
ALLEN                         5         10
WARD                          4          8
JONES                         5         10
MARTIN                        6         12
BLAKE                         5         10
CLARK                         5         10
SCOTT                         5         10
KING                          4          8
TURNER                        6         12
ADAMS                         5         10
JAMES                         5         10
FORD                          4          8
MILLER                        6         12

14 rows selected.

SQL>
SQL>  drop table nchar_test;

Table dropped.

SQL>  drop table emp;

Table dropped.

SQL>
SQL> --

   
  








Related examples in the same category

1.Vsize: returns the storage size of a string in Oracle
2.Check the data size for number type column