You are on page 1of 24

SQL> cl scr

SQL>
2
3
4

SELECT
Ename,
TO_CHAR(HireDate, 'Day, DDSPTH Month Year') HireDate
FROM Emp;

ENAME
---------HIREDATE
-----------------------------------------------------------------------------KING
Tuesday , SEVENTEENTH November Nineteen Eighty-One
BLAKE
Friday

, FIRST May

CLARK
Tuesday , NINTH June

Nineteen Eighty-One
Nineteen Eighty-One

ENAME
---------HIREDATE
-----------------------------------------------------------------------------JONES
Thursday , SECOND April
Nineteen Eighty-One
MARTIN
Monday

, TWENTY-EIGHTH September Nineteen Eighty-One

ALLEN
Friday

, TWENTIETH February Nineteen Eighty-One

ENAME
---------HIREDATE
-----------------------------------------------------------------------------TURNER
Tuesday , EIGHTH September Nineteen Eighty-One
JAMES
Thursday , THIRD December Nineteen Eighty-One
WARD
Sunday

, TWENTY-SECOND February Nineteen Eighty-One

ENAME
---------HIREDATE
-----------------------------------------------------------------------------FORD
Thursday , THIRD December Nineteen Eighty-One
SMITH
Wednesday, SEVENTEENTH December Nineteen Eighty
SCOTT

Thursday , NINTH December Nineteen Eighty-Two


ENAME
---------HIREDATE
-----------------------------------------------------------------------------ADAMS
Wednesday, TWELFTH January Nineteen Eighty-Three
MILLER
Saturday , TWENTY-THIRD January

Nineteen Eighty-Two

14 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3
4*
SQL>

SELECT
Ename,
TO_CHAR(HireDate, 'FMDay, DDSPTH Month Year') HireDate
FROM Emp
/

ENAME
---------HIREDATE
-----------------------------------------------------------------------------KING
Tuesday, SEVENTEENTH November Nineteen Eighty-One
BLAKE
Friday, FIRST May Nineteen Eighty-One
CLARK
Tuesday, NINTH June Nineteen Eighty-One
ENAME
---------HIREDATE
-----------------------------------------------------------------------------JONES
Thursday, SECOND April Nineteen Eighty-One
MARTIN
Monday, TWENTY-EIGHTH September Nineteen Eighty-One
ALLEN
Friday, TWENTIETH February Nineteen Eighty-One
ENAME
---------HIREDATE
-----------------------------------------------------------------------------TURNER
Tuesday, EIGHTH September Nineteen Eighty-One

JAMES
Thursday, THIRD December Nineteen Eighty-One
WARD
Sunday, TWENTY-SECOND February Nineteen Eighty-One
ENAME
---------HIREDATE
-----------------------------------------------------------------------------FORD
Thursday, THIRD December Nineteen Eighty-One
SMITH
Wednesday, SEVENTEENTH December Nineteen Eighty
SCOTT
Thursday, NINTH December Nineteen Eighty-Two
ENAME
---------HIREDATE
-----------------------------------------------------------------------------ADAMS
Wednesday, TWELFTH January Nineteen Eighty-Three
MILLER
Saturday, TWENTY-THIRD January Nineteen Eighty-Two
14 rows selected.
SQL> cl scr
SQL>
2
3
4

SELECT
Ename,
TO_CHAR(HireDate, 'DD-RM-YYYY') HireDate
FROM Emp;

ENAME
---------KING
BLAKE
CLARK
JONES
MARTIN
ALLEN
TURNER
JAMES
WARD
FORD
SMITH

HIREDATE
-----------17-XI -1981
01-V -1981
09-VI -1981
02-IV -1981
28-IX -1981
20-II -1981
08-IX -1981
03-XII -1981
22-II -1981
03-XII -1981
17-XII -1980

ENAME
---------SCOTT
ADAMS
MILLER

HIREDATE
-----------09-XII -1982
12-I -1983
23-I -1982

14 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3
4*
SQL>

SELECT
Ename,
TO_CHAR(HireDate, 'FMDD-RM-YYYY') HireDate
FROM Emp
/

ENAME
---------KING
BLAKE
CLARK
JONES
MARTIN
ALLEN
TURNER
JAMES
WARD
FORD
SMITH

HIREDATE
-----------17-XI-1981
1-V-1981
9-VI-1981
2-IV-1981
28-IX-1981
20-II-1981
8-IX-1981
3-XII-1981
22-II-1981
3-XII-1981
17-XII-1980

ENAME
---------SCOTT
ADAMS
MILLER

HIREDATE
-----------9-XII-1982
12-I-1983
23-I-1982

14 rows selected.
SQL> cl scr
SQL> SELECT
2 '1234', '2345', '1234' + '2345'
3 FROM DUAl;
'123 '234 '1234'+'2345'
---- ---- ------------1234 2345
3579
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT
'1234.00', '2345.00', '1234.00' + '2345.00'
FROM DUAl
/

'1234.0 '2345.0 '1234.00'+'2345.00'


------- ------- ------------------1234.00 2345.00
3579
SQL> ed
Wrote file afiedt.buf
1 SELECT

2 '1,234.00', '2,345.00', '1,234.00' + '2,345.00'


3* FROM DUAl
SQL> /
'1,234.00', '2,345.00', '1,234.00' + '2,345.00'
*
ERROR at line 2:
ORA-01722: invalid number
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6*
SQL>

SELECT
'1,234.00' Num1,
'2,345.00' Num2,
TO_NUMBER('1,234.00', '9G999D99') +
TO_NUMBER('2,345.00', '9G999D99') Result
FROM DUAl
/

NUM1
NUM2
RESULT
-------- -------- ---------1,234.00 2,345.00
3579
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6*
SQL>

SELECT
'1,234.00' Num1,
'2,345.00' Num2,
TO_CHAR((TO_NUMBER('1,234.00', '9G999D99') +
TO_NUMBER('2,345.00', '9G999D99')), '9G999D99') Result
FROM DUAl
/

NUM1
NUM2
RESULT
-------- -------- --------1,234.00 2,345.00 3,579.00
SQL> ed
Wrote file afiedt.buf
1 SELECT
2 '2345-' Num1,
3 '3445' Num2,
4 '2345-' - '3445' Result
5* FROM DUAl
SQL> /
'2345-' - '3445' Result
*
ERROR at line 4:
ORA-01722: invalid number
SQL> ed
Wrote file afiedt.buf
1 SELECT
2 '-2345' Num1,
3 '3445' Num2,

4 '-2345' - '3445' Result


5* FROM DUAl
SQL> /
NUM1 NUM2
RESULT
----- ---- ----------2345 3445
-5790
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5*
SQL>

SELECT
'2345-' Num1,
'3445' Num2,
TO_NUMBER('2345-', '9999MI') - '3445' Result
FROM DUAl
/

NUM1 NUM2
RESULT
----- ---- ---------2345- 3445
-5790
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5*
SQL>

SELECT
'2345-' Num1,
'3445' Num2,
TO_CHAR((TO_NUMBER('2345-', '9999MI') - '3445'), '9999MI') Result
FROM DUAl
/

NUM1 NUM2 RESUL


----- ---- ----2345- 3445 5790SQL> cl scr
SQL> SELECT
2 '2,345.00INR' Num1,
3 '5,645.00INR' Num2,
4 '2,345.00INR' + '5,645.00INR' Result
5 FROM DUAL;
'2,345.00INR' + '5,645.00INR' Result
*
ERROR at line 4:
ORA-01722: invalid number
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5
6*
SQL>

SELECT
'2,345.00INR' Num1,
'5,645.00INR' Num2,
TO_NUMBER('2,345.00INR', '9G999D99L', 'NLS_CURRENCY = INR') +
TO_NUMBER('5,645.00INR', '9G999D99L', 'NLS_CURRENCY = INR') Result
FROM DUAL
/

NUM1
NUM2
RESULT
----------- ----------- ---------2,345.00INR 5,645.00INR
7990
SQL> ed
Wrote file afiedt.buf
1 SELECT
2 '2,345.00INR' Num1,
3 '5,645.00INR' Num2,
4 TO_CHAR((TO_NUMBER('2,345.00INR', '9G999D99L', 'NLS_CURRENCY = INR') +
5 TO_NUMBER('5,645.00INR', '9G999D99L', 'NLS_CURRENCY = INR')), '9G999D99L',
'NLS_CURRENCY = INR') Result
6* FROM DUAL
SQL> /
NUM1
NUM2
RESULT
----------- ----------- ------------------2,345.00INR 5,645.00INR
7,990.00INR
SQL> ed
Wrote file afiedt.buf
1 SELECT
2 '2,345.00INR' Num1,
3 '5,645.00INR' Num2,
4 TO_CHAR((TO_NUMBER('2,345.00INR', '9G999D99L', 'NLS_CURRENCY = INR') +
5 TO_NUMBER('5,645.00INR', '9G999D99L', 'NLS_CURRENCY = INR')), '9G999D99L',
'NLS_CURRENCY = INR') Result
6* FROM DUAL
SQL> SELECT 2,345.00INR, 5,645.00INR, 7,990.00INR
2 FROM DUAl;
2
INR
5
INR
7
INR
---------- ---------- ---------- ---------- ---------- ---------2
345
5
645
7
990
SQL> ed
Wrote file afiedt.buf
1 SELECT '2,345.00INR', '5,645.00INR', '7,990.00INR'
2* FROM DUAl
SQL> /
'2,345.00IN '5,645.00IN '7,990.00IN
----------- ----------- ----------2,345.00INR 5,645.00INR 7,990.00INR
SQL> cl scr
SQL> SELECT
2 '16-JUN-09' + 3 Days
3 FROM DUAL;
'16-JUN-09' + 3 Days
*
ERROR at line 2:
ORA-01722: invalid number
SQL> ed

Wrote file afiedt.buf


1
2
3*
SQL>

SELECT
TO_DATE('16-JUN-09', 'DD-MON-YY') + 3 Days
FROM DUAL
/

DAYS
--------19-JUN-09
SQL> ed
Wrote file afiedt.buf
1 SELECT
2 'Tuesday, 16,
3 'Tuesday, 16,
4* FROM DUAL
SQL> /
'Tuesday, 16, June
*
ERROR at line 3:
ORA-01722: invalid

June 2009' MyDate,


June 2009' + 3 Days
2009' + 3 Days
number

SQL> ed
Wrote file afiedt.buf
1
2
3
4*
SQL>

SELECT
'Tuesday, 16, June 2009' MyDate,
TO_DATE('Tuesday, 16, June 2009', 'Day, DD, Month YYYY') + 3 Days
FROM DUAL
/

MYDATE
DAYS
---------------------- --------Tuesday, 16, June 2009 19-JUN-09
SQL> ed
Wrote file afiedt.buf
1
2
3
Day,
4*
SQL>

SELECT
'Tuesday, 16, June 2009' MyDate,
TO_CHAR((TO_DATE('Tuesday, 16, June 2009', 'Day, DD, Month YYYY') + 3), 'FM
DD, Month YYYY') Days
FROM DUAL
/

MYDATE
DAYS
---------------------- --------------------Tuesday, 16, June 2009 Friday, 19, June 2009
SQL> ed
Wrote file afiedt.buf
1
2
3
Day,
4*

SELECT
'Tuesday, 16, June 2009' MyDate,
TO_CHAR((TO_DATE('Tuesday, 16, June 2009', 'Day, DD, Month YYYY') + 3), 'FM
DD, Month YYYY') Days
FROM DUAL

SQL> cl scr
SQL>
2
3
4
5

CREATE TABLE SampleINS


(
SampID NUMBER(6),
SampDate DATE
);

Table created.
SQL> INSERT INTO SampleINS
2 VALUES(100000, SYSDATE);
1 row created.
SQL> INSERT INTO SampleINS
2 VALUES('100001', SYSDATE);
1 row created.
SQL> INSERT INTO SampleINS
2 VALUES('-100002', SYSDATE);
1 row created.
SQL> INSERT INTO SampleINS
2 VALUES('100003.45', SYSDATE);
1 row created.
SQL> INSERT INTO SampleINS
2 VALUES('-100004.45', SYSDATE);
1 row created.
SQL> INSERT INTO SampleINS
2 VALUES('1,00,005', SYSDATE);
VALUES('1,00,005', SYSDATE)
*
ERROR at line 2:
ORA-01722: invalid number
SQL> ed
Wrote file afiedt.buf
1 INSERT INTO SampleINS
2* VALUES(TO_NUMBER('1,00,005', '9G99G999'), SYSDATE)
SQL> /
1 row created.
SQL> ed
Wrote file afiedt.buf
1 INSERT INTO SampleINS
2* VALUES(TO_NUMBER('1,00,006-', '9G99G999MI'), SYSDATE)
SQL> /
1 row created.

SQL> ed
Wrote file afiedt.buf
1 INSERT INTO SampleINS
2* VALUES(TO_NUMBER('1,00,007INR', '9G99G999L', 'NLS_CURRENCY = INR'), SYSDATE
)
SQL> /
1 row created.
SQL> ed
Wrote file afiedt.buf
1 INSERT INTO SampleINS
2* VALUES(TO_NUMBER('<1,00,008>', '9G99G999PR'), SYSDATE)
SQL> /
1 row created.
SQL> SELECT
2 '100008' Num1,
3 TO_CHAR(100009, 'XXXXXXXX') Hexa
4 FROM DUAl
5
SQL> ed
Wrote file afiedt.buf
1
2
3
4*
SQL>

SELECT
'100009' Num1,
TO_CHAR(100009, 'XXXXXXXX') Hexa
FROM DUAl
/

NUM1 HEXA
------ --------100009
186A9
SQL> ed
Wrote file afiedt.buf
1 INSERT INTO SampleINS
2* VALUES(TO_NUMBER('186A9', 'XXXXXXX'), SYSDATE)
SQL> /
1 row created.
SQL> SELECT * FROM SampleINS;
SAMPID
---------100000
100001
-100002
100003
-100004
100005
-100006
100007
-100008

SAMPDATE
--------16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09

100009 16-JUN-09
10 rows selected.
SQL> cl scr
SQL> SELECT * FROM SampleINS;
SAMPID
---------100000
100001
-100002
100003
-100004
100005
-100006
100007
-100008
100009

SAMPDATE
--------16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09

10 rows selected.
SQL> INSERT INTO SampleINS
2 VALUES(100010, '16-JUN-09');
1 row created.
SQL> INSERT INTO SampleINS
2 VALUES(100011, '16-JUN-2009');
1 row created.
SQL> INSERT INTO SampleINS
2 VALUES(100012, '16-JUNE-2009');
1 row created.
SQL> INSERT INTO SampleINS
2 VALUES(100013, '16-06-2009');
VALUES(100013, '16-06-2009')
*
ERROR at line 2:
ORA-01843: not a valid month
SQL> ed
Wrote file afiedt.buf
1 INSERT INTO SampleINS
2* VALUES(100013, TO_DATE('16-06-2009', 'DD-MM-YYYY'))
SQL> /
1 row created.
SQL> cl scr
SQL> SELECT * FROM SampleINS;
SAMPID SAMPDATE

---------100000
100001
-100002
100003
-100004
100005
-100006
100007
-100008
100009
100010

--------16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09

SAMPID
---------100011
100012
100013

SAMPDATE
--------16-JUN-09
16-JUN-09
16-JUN-09

14 rows selected.
SQL> SELECT * FROM SampleINS
2 WHERE SampDate = SYSDATE;
no rows selected
SQL> ed
Wrote file afiedt.buf
1 SELECT * FROM SampleINS
2* WHERE SampDate = '16-JUN-09'
SQL> /
SAMPID
---------100010
100011
100012
100013

SAMPDATE
--------16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09

SQL> SELECT * FROM SampleINS


2 WHERE TO_CHAR(SampDate, 'DD-MON-YY') = TO_CHAR(SYSDATE, 'DD-MON-YY');
SAMPID
---------100000
100001
-100002
100003
-100004
100005
-100006
100007
-100008
100009
100010

SAMPDATE
--------16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09

SAMPID SAMPDATE
---------- --------100011 16-JUN-09

100012 16-JUN-09
100013 16-JUN-09
14 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT * FROM SampleINS


WHERE
TO_CHAR(SampDate, 'DD-MON-YY') = '16-JUN-09'
/

SAMPID
---------100000
100001
-100002
100003
-100004
100005
-100006
100007
-100008
100009
100010

SAMPDATE
--------16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09

SAMPID
---------100011
100012
100013

SAMPDATE
--------16-JUN-09
16-JUN-09
16-JUN-09

14 rows selected.
SQL> cl scr
SQL> INSERT INTO SampleINS
2
SQL> SELECT * FROm SampleINS;
SAMPID
---------100000
100001
-100002
100003
-100004
100005
-100006
100007
-100008
100009
100010

SAMPDATE
--------16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09
16-JUN-09

SAMPID
---------100011
100012
100013

SAMPDATE
--------16-JUN-09
16-JUN-09
16-JUN-09

14 rows selected.
SQL> INSERT INTO SampleINS
2 VALUES(100014, '16-JUN-09, 12:22:25 P.M.');
VALUES(100014, '16-JUN-09, 12:22:25 P.M.')
*
ERROR at line 2:
ORA-01830: date format picture ends before converting entire input string
SQL> ed
Wrote file afiedt.buf
1 INSERT INTO SampleINS
2* VALUES(100014, TO_DATE('16-JUN-2009, 12:22:25 P.M.', 'DD-MON-YYYY, HH:MI:SS
A.M.'))
SQL> /
1 row created.
SQL> SELECT SampID, TO_CHAR(SampDate, 'DD-MON-YYYY, HH:MI:SS A.M.') Sampdate
2 FROM SampleINS;
SAMPID
---------100000
100001
-100002
100003
-100004
100005
-100006
100007
-100008
100009
100010

SAMPDATE
-------------------------16-JUN-2009, 11:46:20 A.M.
16-JUN-2009, 11:46:50 A.M.
16-JUN-2009, 11:47:38 A.M.
16-JUN-2009, 11:48:12 A.M.
16-JUN-2009, 11:49:19 A.M.
16-JUN-2009, 11:50:37 A.M.
16-JUN-2009, 11:52:04 A.M.
16-JUN-2009, 11:54:01 A.M.
16-JUN-2009, 11:55:12 A.M.
16-JUN-2009, 11:58:04 A.M.
16-JUN-2009, 12:00:00 A.M.

SAMPID
---------100011
100012
100013
100014

SAMPDATE
-------------------------16-JUN-2009, 12:00:00 A.M.
16-JUN-2009, 12:00:00 A.M.
16-JUN-2009, 12:00:00 A.M.
16-JUN-2009, 12:22:25 P.M.

15 rows selected.
SQL> cl scr
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT SampID,
TO_CHAR(SampDate, 'DD-MON-YYYY B.C., HH:MI:SS A.M.') Sampdate
FROM SampleINS
/

SAMPID SAMPDATE
---------- ------------------------------100000 16-JUN-2009 A.D., 11:46:20 A.M.

100001
-100002
100003
-100004
100005
-100006
100007
-100008
100009
100010
SAMPID
---------100011
100012
100013
100014

16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009

A.D.,
A.D.,
A.D.,
A.D.,
A.D.,
A.D.,
A.D.,
A.D.,
A.D.,
A.D.,

11:46:50
11:47:38
11:48:12
11:49:19
11:50:37
11:52:04
11:54:01
11:55:12
11:58:04
12:00:00

A.M.
A.M.
A.M.
A.M.
A.M.
A.M.
A.M.
A.M.
A.M.
A.M.

SAMPDATE
------------------------------16-JUN-2009 A.D., 12:00:00 A.M.
16-JUN-2009 A.D., 12:00:00 A.M.
16-JUN-2009 A.D., 12:00:00 A.M.
16-JUN-2009 A.D., 12:22:25 P.M.

15 rows selected.
SQL> INSERT INTO SampleINS
2 VALUES(100015, TO_DATE('16-JUN-2009 B.C.', 'DD-MON-YYYY A.D.'));
1 row created.
SQL>
2
3
4

SELECT SampID,
TO_CHAR(SampDate, 'DD-MON-YYYY B.C., HH:MI:SS A.M.') Sampdate
FROM SampleINS
/

SAMPID
---------100000
100001
-100002
100003
-100004
100005
-100006
100007
-100008
100009
100010

SAMPDATE
------------------------------16-JUN-2009 A.D., 11:46:20 A.M.
16-JUN-2009 A.D., 11:46:50 A.M.
16-JUN-2009 A.D., 11:47:38 A.M.
16-JUN-2009 A.D., 11:48:12 A.M.
16-JUN-2009 A.D., 11:49:19 A.M.
16-JUN-2009 A.D., 11:50:37 A.M.
16-JUN-2009 A.D., 11:52:04 A.M.
16-JUN-2009 A.D., 11:54:01 A.M.
16-JUN-2009 A.D., 11:55:12 A.M.
16-JUN-2009 A.D., 11:58:04 A.M.
16-JUN-2009 A.D., 12:00:00 A.M.

SAMPID
---------100011
100012
100013
100014
100015

SAMPDATE
------------------------------16-JUN-2009 A.D., 12:00:00 A.M.
16-JUN-2009 A.D., 12:00:00 A.M.
16-JUN-2009 A.D., 12:00:00 A.M.
16-JUN-2009 A.D., 12:22:25 P.M.
16-JUN-2009 B.C., 12:00:00 A.M.

16 rows selected.
SQL> ed
Wrote file afiedt.buf
1 SELECT SampID,
2 TO_CHAR(SampDate, 'DD-MON-YYYY B.C.') Sampdate,
3 TO_CHAR(SampDate, 'J') Julian

4* FROM SampleINS
SQL> /
SAMPID
---------100000
100001
-100002
100003
-100004
100005
-100006
100007
-100008
100009
100010

SAMPDATE
---------------16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.

JULIAN
------2454999
2454999
2454999
2454999
2454999
2454999
2454999
2454999
2454999
2454999
2454999

SAMPID
---------100011
100012
100013
100014
100015

SAMPDATE
---------------16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 B.C.

JULIAN
------2454999
2454999
2454999
2454999
0987437

16 rows selected.
SQL> ed
Wrote file afiedt.buf
1 INSERT INTO SampleINS
2* VALUES(100016, TO_DATE('01-JAN-4712 B.C.', 'DD-MON-YYYY A.D.'))
SQL> /
1 row created.
SQL>
2
3
4

SELECT SampID,
TO_CHAR(SampDate, 'DD-MON-YYYY B.C.') Sampdate,
TO_CHAR(SampDate, 'J') Julian
FROM SampleINS;

SAMPID
---------100000
100001
-100002
100003
-100004
100005
-100006
100007
-100008
100009
100010

SAMPDATE
---------------16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.

JULIAN
------2454999
2454999
2454999
2454999
2454999
2454999
2454999
2454999
2454999
2454999
2454999

SAMPID
---------100011
100012
100013

SAMPDATE
---------------16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.

JULIAN
------2454999
2454999
2454999

100014 16-JUN-2009 A.D. 2454999


100015 16-JUN-2009 B.C. 0987437
100016 01-JAN-4712 B.C. 0000001
17 rows selected.
SQL> ed
Wrote file afiedt.buf
1 INSERT INTO SampleINS
2* VALUES(100017, TO_DATE('31-DEC-9999 A.D.', 'DD-MON-YYYY A.D.'))
SQL> /
1 row created.
SQL>
2
3
4

SELECT SampID,
TO_CHAR(SampDate, 'DD-MON-YYYY B.C.') Sampdate,
TO_CHAR(SampDate, 'J') Julian
FROM SampleINS;

SAMPID
---------100000
100001
-100002
100003
-100004
100005
-100006
100007
-100008
100009
100010

SAMPDATE
---------------16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.

JULIAN
------2454999
2454999
2454999
2454999
2454999
2454999
2454999
2454999
2454999
2454999
2454999

SAMPID
---------100011
100012
100013
100014
100015
100016
100017

SAMPDATE
---------------16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 B.C.
01-JAN-4712 B.C.
31-DEC-9999 A.D.

JULIAN
------2454999
2454999
2454999
2454999
0987437
0000001
5373484

18 rows selected.
SQL> ed
Wrote file afiedt.buf
1 INSERT INTO SampleINS
2* VALUES(100018, TO_DATE('987437', 'J'))
SQL> /
1 row created.
SQL> ed
Wrote file afiedt.buf
1 INSERT INTO SampleINS
2* VALUES(100019, TO_DATE('2454999', 'J'))

SQL> /
1 row created.
SQL> ed
Wrote file afiedt.buf
1 INSERT INTO SampleINS
2* VALUES(100020, TO_DATE('1', 'J'))
SQL> /
1 row created.
SQL> ed
Wrote file afiedt.buf
1 INSERT INTO SampleINS
2* VALUES(100021, TO_DATE('5373484', 'J'))
SQL> /
1 row created.
SQL> ed
Wrote file afiedt.buf
1 INSERT INTO SampleINS
2* VALUES(100021, TO_DATE('5373485', 'J'))
SQL> /
VALUES(100021, TO_DATE('5373485', 'J'))
*
ERROR at line 2:
ORA-01854: julian date must be between 1 and 5373484
SQL> ed
Wrote file afiedt.buf
1 INSERT INTO SampleINS
2* VALUES(100021, TO_DATE('0', 'J'))
SQL> /
VALUES(100021, TO_DATE('0', 'J'))
*
ERROR at line 2:
ORA-01854: julian date must be between 1 and 5373484
SQL> cl scr
SQL>
2
3
4

SELECT SampID,
TO_CHAR(SampDate, 'DD-MON-YYYY B.C.') Sampdate,
TO_CHAR(SampDate, 'J') Julian
FROM SampleINS;

SAMPID
---------100000
100001
-100002
100003
-100004

SAMPDATE
---------------16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.

JULIAN
------2454999
2454999
2454999
2454999
2454999

100005
-100006
100007
-100008
100009
100010
SAMPID
---------100011
100012
100013
100014
100015
100016
100017
100018
100019
100020
100021

16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009

A.D.
A.D.
A.D.
A.D.
A.D.
A.D.

2454999
2454999
2454999
2454999
2454999
2454999

SAMPDATE
---------------16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 B.C.
01-JAN-4712 B.C.
31-DEC-9999 A.D.
16-JUN-2009 B.C.
16-JUN-2009 A.D.
01-JAN-4712 B.C.
31-DEC-9999 A.D.

JULIAN
------2454999
2454999
2454999
2454999
0987437
0000001
5373484
0987437
2454999
0000001
5373484

22 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3
4*
SQL>

SELECT SampID,
TO_CHAR(SampDate, 'DD-MON-YYYY B.C.') Sampdate,
TO_CHAR(SampDate, 'SCC') Signed
FROM SampleINS
/

SAMPID
---------100000
100001
-100002
100003
-100004
100005
-100006
100007
-100008
100009
100010

SAMPDATE
---------------16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.

SIG
--21
21
21
21
21
21
21
21
21
21
21

SAMPID
---------100011
100012
100013
100014
ERROR:
ORA-01801:

SAMPDATE
---------------16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.

SIG
--21
21
21
21

date format is too long for internal buffer

15 rows selected.
SQL> ed

Wrote file afiedt.buf


1
2
3*
SQL>

SELECT SampID,
TO_CHAR(SampDate, 'DD-MON-YYYY B.C.') Sampdate
FROM SampleINS
/

SAMPID
---------100000
100001
-100002
100003
-100004
100005
-100006
100007
-100008
100009
100010

SAMPDATE
---------------16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.

SAMPID
---------100011
100012
100013
100014
100015
100016
100017
100018
100019
100020
100021

SAMPDATE
---------------16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 A.D.
16-JUN-2009 B.C.
01-JAN-4712 B.C.
31-DEC-9999 A.D.
16-JUN-2009 B.C.
16-JUN-2009 A.D.
01-JAN-4712 B.C.
31-DEC-9999 A.D.

22 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT SampID,
TO_CHAR(SampDate, 'SCC') Sampdate
FROM SampleINS
/

SAMPID
---------100000
100001
-100002
100003
-100004
100005
-100006
100007
-100008
100009
100010

SAM
--21
21
21
21
21
21
21
21
21
21
21

SAMPID SAM

---------100011
100012
100013
100014
ERROR:
ORA-01801:

--21
21
21
21
date format is too long for internal buffer

15 rows selected.
SQL> DELETE FROM SampleINS
2 WHERE SampID > 100015;
6 rows deleted.
SQL> COMMIT;
Commit complete.
SQL> SELECT SampID,
2 TO_CHAR(SampDate, 'SCC') Sampdate
3 FROM SampleINS;
SAMPID
---------100000
100001
-100002
100003
-100004
100005
-100006
100007
-100008
100009
100010

SAM
--21
21
21
21
21
21
21
21
21
21
21

SAMPID
---------100011
100012
100013
100014
100015

SAM
--21
21
21
21
-21

16 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3*
SQL>

SELECT SampID,
TO_CHAR(SampDate, 'SYYYY') Sampdate
FROM SampleINS
/

SAMPID SAMPD
---------- ----100000 2009

100001
-100002
100003
-100004
100005
-100006
100007
-100008
100009
100010

2009
2009
2009
2009
2009
2009
2009
2009
2009
2009

SAMPID
---------100011
100012
100013
100014
100015

SAMPD
----2009
2009
2009
2009
-2009

16 rows selected.
SQL> cl scr
SQL> SELECT SampID, TO_CHAR(Sampdate, 'DD-MON-YYYY') SampDate
2 FROM SampleINS;
SAMPID
---------100000
100001
-100002
100003
-100004
100005
-100006
100007
-100008
100009
100010

SAMPDATE
----------16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009

SAMPID
---------100011
100012
100013
100014
100015

SAMPDATE
----------16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009

16 rows selected.
SQL> INSERT INTO SampleINS
2 VALUES(100016, '16-JUN-09');
1 row created.
SQL> INSERT INTO SampleINS
2 VALUES(100017, '16-JUN-97');
1 row created.

SQL> INSERT INTO SampleINS


2 VALUES(100018, '16-JUN-09');
1 row created.
SQL> INSERT INTO SampleINS
2 VALUES(100019, '16-JUN-97');
1 row created.
SQL> SELECT SampID, TO_CHAR(Sampdate, 'DD-MON-YYYY') SampDate
2 FROM SampleINS;
SAMPID
---------100000
100001
-100002
100003
-100004
100005
-100006
100007
-100008
100009
100010

SAMPDATE
----------16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009

SAMPID
---------100011
100012
100013
100014
100015
100016
100017
100018
100019

SAMPDATE
----------16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-2009
16-JUN-1997
16-JUN-2109
16-JUN-2097

20 rows selected.
SQL> cl scr
SQL>
2
3
4

SELECT
'27-OCT-92' MyDate,
TRUNC(TO_DATE('27-OCT-92', 'DD-MON-YY'), 'YEAR') Corrected
FROM DUAl;

MYDATE
CORRECTED
--------- --------27-OCT-92 01-JAN-92
SQL> ed
Wrote file afiedt.buf
1
2
3
4*
SQL>

SELECT
'27-OCT-92' MyDate,
ADD_MONTHS('27-OCT-92', -9) Corrected
FROM DUAl
/

MYDATE
CORRECTED
--------- --------27-OCT-92 27-JAN-92
SQL> ed
Wrote file afiedt.buf
1
2
3
4*
SQL>

SELECT
'27-OCT-92' MyDate,
ADD_MONTHS('27-OCT-92', -9) - 26 Corrected
FROM DUAl
/

MYDATE
CORRECTED
--------- --------27-OCT-92 01-JAN-92
SQL> cl scr
SQL>
2
3
4

SELECT
Ename, Sal, NVL(TO_CHAR(Comm), 'No Commission') Comm
FROm Emp
/

ENAME
SAL COMM
---------- ---------- ---------------------------------------KING
5000 No Commission
BLAKE
2850 No Commission
CLARK
2450 No Commission
JONES
2975 No Commission
MARTIN
1250 1400
ALLEN
1600 300
TURNER
1500 0
JAMES
950 No Commission
WARD
1250 500
FORD
3000 No Commission
SMITH
800 No Commission
ENAME
SAL COMM
---------- ---------- ---------------------------------------SCOTT
3000 No Commission
ADAMS
1100 No Commission
MILLER
1300 No Commission
14 rows selected.
SQL> SPOOL OFF

You might also like