Documente Academic
Documente Profesional
Documente Cultură
ENAME
JOB
MGR HIREDATE
SAL
COMM
CLERK
7902 17-DEC-80
800
ALLEN
SALESMAN
7698 20-FEB-81
1600
300
WARD
SALESMAN
7698 22-FEB-81
1250
500
JONES
MANAGER
7839 02-APR-81
2975
MARTIN
SALESMAN
7698 28-SEP-81
1250
BLAKE
MANAGER
7839 01-MAY-81
2850
CLARK
MANAGER
7839 09-JUN-81
2450
SCOTT
ANALYST
7566 09-DEC-82
3000
KING
PRESIDENT
17-NOV-81
5000
TURNER
SALESMAN
7698 08-SEP-81
1500
ADAMS
CLERK
7788 12-JAN-83
1100
JAMES
CLERK
7698 03-DEC-81
950
1400
30
7902 FORD
ANALYST
7566 03-DEC-81
3000
7934 MILLER
CLERK
7782 23-JAN-82
1300
20
10
14 rows selected.
SQL> select ename, empno,nvl2(comm,'sal+comm','sal')income from emp;
ENAME
EMPNO INCOME
---------- ---------- -------SMITH
7369 sal
ALLEN
7499 sal+comm
WARD
7521 sal+comm
JONES
7566 sal
MARTIN
7654 sal+comm
BLAKE
7698 sal
CLARK
7782 sal
SCOTT
7788 sal
KING
7839 sal
TURNER
7844 sal+comm
ADAMS
7876 sal
JAMES
7900 sal
FORD
7902 sal
MILLER
7934 sal
14 rows selected.
SQL> ed
Wrote file afiedt.buf
1* select ename, empno,nvl2(comm,sal+comm,sal)income from emp
SQL> /
ENAME
EMPNO
INCOME
---------- ---------- ---------SMITH
7369
800
ALLEN
7499
1900
WARD
7521
1750
JONES
7566
2975
MARTIN
7654
2650
BLAKE
7698
2850
CLARK
7782
2450
SCOTT
7788
3000
KING
7839
5000
TURNER
7844
1500
ADAMS
7876
1100
JAMES
7900
950
FORD
7902
3000
MILLER
7934
1300
14 rows selected.
SQL> ed
Wrote file afiedt.buf
1* select ename,sal,comm,empno,nvl2(comm,sal+comm,sal)income from emp
SQL> /
ENAME
SAL
COMM
EMPNO
INCOME
---------- ---------- ---------- ---------- ---------SMITH
800
7369
800
ALLEN
1600
300
7499
1900
WARD
1250
500
7521
1750
JONES
2975
7566
2975
MARTIN
1250
1400
7654
2650
BLAKE
2850
7698
2850
CLARK
2450
7782
2450
SCOTT
3000
7788
3000
KING
5000
7839
5000
TURNER
1500
0
7844
1500
ADAMS
1100
7876
1100
JAMES
950
7900
950
FORD
3000
7902
3000
MILLER
1300
7934
1300
14 rows selected.
SQL> ed
Wrote file afiedt.buf
1* select ename,sal,comm,empno from emp where nullif(length(sal),length(comm))
is null
SQL> /
ENAME
SAL
COMM
EMPNO
---------- ---------- ---------- ---------MARTIN
1250
1400
7654
SQL> select decode (&num,1,'one',2,'two','unknown') from dual;
Enter value for num: 2
old 1: select decode (&num,1,'one',2,'two','unknown') from dual
new 1: select decode (2,1,'one',2,'two','unknown') from dual
DEC
--two
SQL> /
Enter value for num: 3
old 1: select decode (&num,1,'one',2,'two','unknown') from dual
new 1: select decode (3,1,'one',2,'two','unknown') from dual
DECODE(
------unknown
SQL> /
Enter value for num: 1
old 1: select decode (&num,1,'one',2,'two','unknown') from dual
new 1: select decode (1,1,'one',2,'two','unknown') from dual
DEC
--one
1* select ename,job,sal,decode(job,'clerk',0.10*sal,'analyst',0.20*sal,'manage
r',0.30*sal,0.01*sal
SQL> /
ENAME
---------SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS
JAMES
FORD
MILLER
JOB
SAL
BONUS
--------- ---------- ---------CLERK
800
8
SALESMAN
1600
16
SALESMAN
1250
12.5
MANAGER
2975
29.75
SALESMAN
1250
12.5
MANAGER
2850
28.5
MANAGER
2450
24.5
ANALYST
3000
30
PRESIDENT
5000
50
SALESMAN
1500
15
CLERK
1100
11
CLERK
950
9.5
ANALYST
3000
30
CLERK
1300
13
14 rows selected.
SQL> ed
Wrote file afiedt.buf
1* select ename,job,sal,decode(job,'CLERK',0.10*sal,'ANALYST',0.20*sal,'MANAGE
R',0.30*sal,0.01*sal
SQL> /
ENAME
---------SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS
JAMES
FORD
MILLER
JOB
SAL
BONUS
--------- ---------- ---------CLERK
800
80
SALESMAN
1600
16
SALESMAN
1250
12.5
MANAGER
2975
892.5
SALESMAN
1250
12.5
MANAGER
2850
855
MANAGER
2450
735
ANALYST
3000
600
PRESIDENT
5000
50
SALESMAN
1500
15
CLERK
1100
110
CLERK
950
95
ANALYST
3000
600
CLERK
1300
130
14 rows selected.
SQL> ed
Wrote file afiedt.buf
1
2
3
4
5*
SQL>
ENAME
SAL
BONUS
---------SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS
JAMES
FORD
MILLER
14 rows selected.
JOB
SUM(SAL) MIN(SAL) MAX(SAL) AVG(SAL) COUNT(SAL)
--------- ---------- ---------- ---------- ---------- ---------CLERK
1900
800
1100
950
2
SALESMAN
5600
1250
1600
1400
4
MANAGER
2975
2975
2975
2975
1
CLERK
950
950
950
950
1
PRESIDENT
5000
5000
5000
5000
1
MANAGER
2850
2850
2850
2850
1
CLERK
1300
1300
1300
1300
1
MANAGER
2450
2450
2450
2450
1
ANALYST
6000
3000
3000
3000
2
9 rows selected.
SQL> ed
Wrote file afiedt.buf
1* select job,deptno,sum(sal),min(sal),max(sal),avg(sal),count(sal) from emp g
roup by job, deptno
SQL> /
JOB
DEPTNO SUM(SAL) MIN(SAL) MAX(SAL) AVG(SAL) COUNT(SAL)
--------- ---------- ---------- ---------- ---------- ---------- ---------MANAGER
20
2975
2975
2975
2975
1
PRESIDENT
10
5000
5000
5000
5000
1
CLERK
10
1300
1300
1300
1300
1
SALESMAN
30
5600
1250
1600
1400
4
ANALYST
20
6000
3000
3000
3000
2
MANAGER
30
2850
2850
2850
2850
1
MANAGER
10
2450
2450
2450
2450
1
CLERK
30
950
950
950
950
1
CLERK
20
1900
800
1100
950
2
9 rows selected.
SQL> ed
Wrote file afiedt.buf
1* select job,deptno,sum(sal),min(sal),max(sal),avg(sal),count(sal) from emp w
here count(sal)>1 gr
SQL> /
select job,deptno,sum(sal),min(sal),max(sal),avg(sal),count(sal) from emp where
count(sal)>1 group b
*
ERROR at line 1:
ORA-00934: group function is not allowed here
SQL> ed
Wrote file afiedt.buf
1* select job,deptno,sum(sal),min(sal),max(sal),avg(sal),count(sal) from emp h
aving count(sal)>1 g
SQL> /
JOB
DEPTNO SUM(SAL) MIN(SAL) MAX(SAL) AVG(SAL) COUNT(SAL)
--------- ---------- ---------- ---------- ---------- ---------- ---------SALESMAN
30
5600
1250
1600
1400
4
ANALYST
20
6000
3000
3000
3000
2
CLERK
20
1900
800
1100
950
2
SQL> ed
Wrote file afiedt.buf
1* select deptno,sum(sal),count(sal) from emp group by deptno
SQL> /
DEPTNO SUM(SAL) COUNT(SAL)
---------- ---------- ---------30
9400
6
20
10875
5
10
8750
3
SQL> ed
Wrote file afiedt.buf
1* select deptno,sum(sal),count(sal) from emp group by rollup(deptno)
SQL> /
DEPTNO SUM(SAL) COUNT(SAL)
---------- ---------- ---------10
8750
3
20
10875
5
30
9400
6
29025
14
SQL> ed
Wrote file afiedt.buf
1* select deptno,job,sum(sal),count(sal) from emp group by rollup(deptno,job)
SQL> /
DEPTNO JOB
SUM(SAL) COUNT(SAL)
---------10
10
10
10
20
20
20
20
30
30
30
30
13 rows selected.
SQL> ed
Wrote file afiedt.buf
1* select deptno,job,sum(sal),count(sal) from emp group by cube(deptno,job)
SQL> /
DEPTNO JOB
SUM(SAL) COUNT(SAL)
---------- --------- ---------- ---------29025
14
CLERK
4150
4
ANALYST
6000
2
MANAGER
8275
3
SALESMAN
5600
4
PRESIDENT
5000
1
10
8750
3
10 CLERK
1300
1
10 MANAGER
2450
1
10 PRESIDENT
5000
1
20
10875
5
20 CLERK
1900
2
20 ANALYST
6000
2
20 MANAGER
2975
1
30
9400
6
30 CLERK
950
1
30 MANAGER
2850
1
30 SALESMAN
5600
4
18 rows selected.
SQL> ed
Wrote file afiedt.buf
1 select deptno,job,sum(sal),count(sal),grouping(deptno)gd, grouping(job)gj
2* from emp group by rollup(deptno,job)
SQL> /
DEPTNO
---------10
10
10
JOB
SUM(SAL) COUNT(SAL)
GD
GJ
--------- ---------- ---------- ---------- ---------CLERK
1300
1
0
0
MANAGER
2450
1
0
0
PRESIDENT
5000
1
0
0
10
20
20
20
20
30
30
30
30
CLERK
ANALYST
MANAGER
CLERK
MANAGER
SALESMAN
8750
1900
6000
2975
10875
950
2850
5600
9400
29025
3
2
2
1
5
1
1
4
6
14
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
13 rows selected.
SQL> ed
Wrote file afiedt.buf
1 select deptno,job,sum(sal),count(sal),grouping(deptno)gd, grouping(job)gj
2* from emp having grouping(deptno)=1 or grouping(job)=1 group by rollup(dept
no,job)
SQL> /
DEPTNO JOB
SUM(SAL) COUNT(SAL)
GD
GJ
---------- --------- ---------- ---------- ---------- ---------10
8750
3
0
1
20
10875
5
0
1
30
9400
6
0
1
29025
14
1
1
SQL> ed
Wrote file afiedt.buf
1 select deptno,job,sum(sal),count(sal),grouping(deptno)gd, grouping(job)gj
2* from emp having grouping(deptno)=1 or grouping(job)=1 group by cube(deptno
,job)
SQL> /
DEPTNO JOB
SUM(SAL) COUNT(SAL)
GD
GJ
---------- --------- ---------- ---------- ---------- ---------CLERK
4150
4
1
0
SALESMAN
5600
4
1
0
PRESIDENT
5000
1
1
0
MANAGER
8275
3
1
0
ANALYST
6000
2
1
0
10
8750
3
0
1
20
10875
5
0
1
30
9400
6
0
1
29025
14
1
1
9 rows selected.
SQL> ed
Wrote file afiedt.buf
1 select deptno,job,sum(sal),count(sal),grouping(deptno)gd, grouping(job)gj
2* from emp having grouping(deptno)=1 or grouping(job)=1 group by deptno,job
SQL> /
no rows selected
SQL> ed
ANALYST
10
20
30
6000
8750
10875
9400
29025
2
3
5
6
14
1
0
0
0
1
0
1
1
1
1
9 rows selected.
SQL> ed
Wrote file afiedt.buf
1 select deptno,job,sum(sal),count(sal),grouping(deptno)gd, grouping(job)gj
2* from emp group by grouping sets((deptno),(job),())
SQL> /
DEPTNO JOB
SUM(SAL) COUNT(SAL)
GD
GJ
---------- --------- ---------- ---------- ---------- ---------CLERK
4150
4
1
0
SALESMAN
5600
4
1
0
PRESIDENT
5000
1
1
0
MANAGER
8275
3
1
0
ANALYST
6000
2
1
0
10
8750
3
0
1
20
10875
5
0
1
30
9400
6
0
1
29025
14
1
1
9 rows selected.
SQL> ed
Wrote file afiedt.buf
1* select deptno from dept union all select deptno from emp
SQL> /
DEPTNO
---------10
20
30
40
20
30
30
20
30
30
10
20
10
30
20
30
20
10
18 rows selected.
SQL> ed
Wrote file afiedt.buf
1* select deptno from dept union select deptno from emp
SQL> /
DEPTNO
---------10
20
30
40
SQL> ed
Wrote file afiedt.buf
1* select deptno from dept intersect select deptno from emp
SQL> /
DEPTNO
---------10
20
30
SQL> ed
Wrote file afiedt.buf
1* select deptno from dept minus select deptno from emp
SQL> /
DEPTNO
---------40
SQL> ed
Wrote file afiedt.buf
1* select deptno from emp minus select deptno from dept
SQL> //
no rows selected
SQL> ED
Wrote file afiedt.buf
1* SELECT JOB,SUM(SAL) FROM EMP GROUP BY JOB UNION SELECT TO_CHAR(DEPTNO),SUM(
SAL)FROM EMP GROUP B
SQL> /
JOB
SUM(SAL)
---------------------------------------- ---------10
8750
20
10875
30
9400
ANALYST
6000
CLERK
4150
MANAGER
PRESIDENT
SALESMAN
8275
5000
5600
8 rows selected.
SQL> ED
Wrote file afiedt.buf
1* SELECT JOB,NULL,SUM(SAL) FROM EMP GROUP BY JOB UNION SELECT TO_CHAR(DEPTNO)
,SUM(SAL)FROM EMP GR
SQL> /
SELECT JOB,NULL,SUM(SAL) FROM EMP GROUP BY JOB UNION SELECT TO_CHAR(DEPTNO),SUM(
SAL)FROM EMP GROUP B
*
ERROR at line 1:
ORA-01789: query block has incorrect number of result columns
SQL> ED
Wrote file afiedt.buf
1* SELECT JOB,NULL,SUM(SAL) FROM EMP GROUP BY JOB UNION SELECT NULL,TO_CHAR(DE
PTNO),SUM(SAL)FROM E
SQL> /
JOB
NULL
SUM(SAL)
--------- ---------------------------------------- ---------ANALYST
6000
CLERK
4150
MANAGER
8275
PRESIDENT
5000
SALESMAN
5600
10
8750
20
10875
30
9400
8 rows selected.
SQL> ED
Wrote file afiedt.buf
1* SELECT DEPTNO,NULL,SUM(SAL)FROM EMP GROUP BY DEPTNO UNION SELECT NULL,JOB,S
UM(SAL) FROM EMP GRO
SQL> /
DEPTNO NULL
SUM(SAL)
---------- --------- ---------10
8750
20
10875
30
9400
ANALYST
6000
CLERK
4150
MANAGER
8275
PRESIDENT
5000
SALESMAN
5600
8 rows selected.
SQL> ED
Wrote file afiedt.buf
1* SELECT DEPTNO,SUM(SAL)FROM EMP GROUP BY DEPTNO UNION SELECT JOB,SUM(SAL) FR
OM EMP GROUP BY JOB
SQL> /
SELECT DEPTNO,SUM(SAL)FROM EMP GROUP BY DEPTNO UNION SELECT JOB,SUM(SAL) FROM EM
P GROUP BY JOB
*
ERROR at line 1:
ORA-01790: expression must have same datatype as corresponding expression
SQL> ED
Wrote file afiedt.buf
1* SELECT JOB,SUM(SAL) FROM EMP GROUP BY JOB UNION SELECT DEPTNO,SUM(SAL)FROM
EMP GROUP BY DEPTNO
SQL> /
SELECT JOB,SUM(SAL) FROM EMP GROUP BY JOB UNION SELECT DEPTNO,SUM(SAL)FROM EMP G
ROUP BY DEPTNO
*
ERROR at line 1:
ORA-01790: expression must have same datatype as corresponding expression
SQL> ED
Wrote file afiedt.buf
1* SELECT DEPTNO,NULL AS JOB,SUM(SAL)FROM EMP GROUP BY DEPTNO UNION SELECT NUL
L,JOB,SUM(SAL) FROM
SQL> /
DEPTNO JOB
SUM(SAL)
---------- --------- ---------10
8750
20
10875
30
9400
ANALYST
6000
CLERK
4150
MANAGER
8275
PRESIDENT
5000
SALESMAN
5600
8 rows selected.
SQL> SELECT * FROM DEPT;
DEPTNO
---------10
20
30
40
DNAME
-------------ACCOUNTING
RESEARCH
SALES
OPERATIONS
LOC
------------NEW YORK
DALLAS
CHICAGO
BOSTON
SQL> ED
Wrote file afiedt.buf
1* SELECT * FROM EMP WHERE DEPTNO IN(SELECT DEPTNO FROM DEPT WHERE LOC IN('NEW
YORK','DALLAS'))
SQL> /
EMPNO
EPTNO
-------------7902
20
7876
20
7788
20
7566
20
7369
20
ENAME
JOB
MGR HIREDATE
SAL
COMM
ANALYST
7566 03-DEC-81
3000
ADAMS
CLERK
7788 12-JAN-83
1100
SCOTT
ANALYST
7566 09-DEC-82
3000
JONES
MANAGER
7839 02-APR-81
2975
SMITH
CLERK
7902 17-DEC-80
800
MGR HIREDATE
SAL
ENAME
JOB
COMM
CLERK
7902 17-DEC-80
800
ALLEN
SALESMAN
7698 20-FEB-81
1600
300
WARD
SALESMAN
7698 22-FEB-81
1250
500
JONES
MANAGER
7839 02-APR-81
2975
MARTIN
SALESMAN
7698 28-SEP-81
1250
BLAKE
MANAGER
7839 01-MAY-81
2850
CLARK
MANAGER
7839 09-JUN-81
2450
SCOTT
ANALYST
7566 09-DEC-82
3000
KING
PRESIDENT
17-NOV-81
5000
TURNER
SALESMAN
7698 08-SEP-81
1500
ADAMS
CLERK
7788 12-JAN-83
1100
JAMES
CLERK
7698 03-DEC-81
950
FORD
ANALYST
7566 03-DEC-81
3000
MILLER
CLERK
7782 23-JAN-82
1300
1400
14 rows selected.
SQL> SELECT * FROM EMP WHERE JOB IN(SELECT JOB FROM EMP WHERE ENAME='BLAKE');
EMPNO ENAME
JOB
MGR HIREDATE
SAL
COMM
EPTNO
-------------7782
10
7698
30
7566
20
MANAGER
7839 09-JUN-81
2450
BLAKE
MANAGER
7839 01-MAY-81
2850
JONES
MANAGER
7839 02-APR-81
2975
SQL> ED
Wrote file afiedt.buf
1* SELECT * FROM EMP WHERE JOB =(SELECT JOB FROM EMP WHERE ENAME='BLAKE')AND S
AL>=(SELECT SAL
SQL> /
EMPNO
EPTNO
-------------7566
20
7698
30
ENAME
JOB
MGR HIREDATE
SAL
COMM
MANAGER
7839 02-APR-81
2975
BLAKE
MANAGER
7839 01-MAY-81
2850
MGR HIREDATE
SAL
ENAME
JOB
COMM
CLERK
7902 17-DEC-80
800
ALLEN
SALESMAN
7698 20-FEB-81
1600
300
WARD
SALESMAN
7698 22-FEB-81
1250
500
JONES
MANAGER
7839 02-APR-81
2975
MARTIN
SALESMAN
7698 28-SEP-81
1250
BLAKE
MANAGER
7839 01-MAY-81
2850
CLARK
MANAGER
7839 09-JUN-81
2450
SCOTT
ANALYST
7566 09-DEC-82
3000
KING
PRESIDENT
17-NOV-81
5000
TURNER
SALESMAN
7698 08-SEP-81
1500
ADAMS
CLERK
7788 12-JAN-83
1100
JAMES
CLERK
7698 03-DEC-81
950
FORD
ANALYST
7566 03-DEC-81
3000
1400
7934 MILLER
CLERK
7782 23-JAN-82
1300
10
14 rows selected.
SQL> ED
Wrote file afiedt.buf
1* SELECT * FROM EMP WHERE SAL=(SELECT MIN(SAL)FROM EMP)
SQL> /
EMPNO ENAME
JOB
MGR HIREDATE
SAL
COMM
D
EPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- --------7369 SMITH
CLERK
7902 17-DEC-80
800
20
SQL> ED
Wrote file afiedt.buf
1* SELECT * FROM EMP WHERE SAL IN(SELECT MIN(SAL)FROM EMP GROUP BY DEPTNO,MIN(
SAL))
SQL> /
SELECT * FROM EMP WHERE SAL IN(SELECT MIN(SAL)FROM EMP GROUP BY DEPTNO,MIN(SAL))
*
ERROR at line 1:
ORA-00934: group function is not allowed here
SQL> ED
Wrote file afiedt.buf
1* SELECT * FROM EMP WHERE (DEPTNO,SAL) IN(SELECT MIN(SAL)FROM EMP GROUP BY DE
PTNO,MIN(SAL))
SQL> /
SELECT * FROM EMP WHERE (DEPTNO,SAL) IN(SELECT MIN(SAL)FROM EMP GROUP BY DEPTNO,
MIN(SAL))
*
ERROR at line 1:
ORA-00920: invalid relational operator
SQL> ED
Wrote file afiedt.buf
1* SELECT * FROM EMP WHERE (DEPTNO,SAL) IN(SELECT MIN(SAL)FROM EMP GROUP BY DE
PTNO)
SQL> /
SELECT * FROM EMP WHERE (DEPTNO,SAL) IN(SELECT MIN(SAL)FROM EMP GROUP BY DEPTNO)
*
ERROR at line 1:
ORA-00947: not enough values
SQL> ED
ENAME
JOB
MGR HIREDATE
SAL
COMM
CLERK
7698 03-DEC-81
950
SMITH
CLERK
7902 17-DEC-80
800
MILLER
CLERK
7782 23-JAN-82
1300
SQL> ED
Wrote file afiedt.buf
1* SELECT * FROM EMP E1 WHERE E1.SAL >(SELECT AVG(SAL)FROM EMP E2 WHERE E2.DEP
TNO=E1.DEPTNO)
SQL> /
EMPNO
EPTNO
-------------7499
30
7566
20
7698
30
7788
20
7839
10
7902
20
ENAME
JOB
MGR HIREDATE
SAL
COMM
SALESMAN
7698 20-FEB-81
1600
JONES
MANAGER
7839 02-APR-81
2975
BLAKE
MANAGER
7839 01-MAY-81
2850
SCOTT
ANALYST
7566 09-DEC-82
3000
KING
PRESIDENT
17-NOV-81
5000
FORD
ANALYST
7566 03-DEC-81
3000
300
6 rows selected.
SQL> ED
Wrote file afiedt.buf
1* SELECT * FROM EMP E1 WHERE E1.SAL <(SELECT AVG(SAL)FROM EMP E2 WHERE E2.DEP
TNO=E1.DEPTNO)
SQL> /
EMPNO
EPTNO
-------------7369
20
7521
30
ENAME
JOB
MGR HIREDATE
SAL
COMM
CLERK
7902 17-DEC-80
800
WARD
SALESMAN
7698 22-FEB-81
1250
500
7654 MARTIN
SALESMAN
7698 28-SEP-81
1250
7782 CLARK
MANAGER
7839 09-JUN-81
2450
7844 TURNER
SALESMAN
7698 08-SEP-81
1500
7876 ADAMS
CLERK
7788 12-JAN-83
1100
7900 JAMES
CLERK
7698 03-DEC-81
950
7934 MILLER
CLERK
7782 23-JAN-82
1300
1400
30
10
0
30
20
30
10
8 rows selected.
SQL> SELECT * FROM DEPT;
DEPTNO
---------10
20
30
40
DNAME
-------------ACCOUNTING
RESEARCH
SALES
OPERATIONS
LOC
------------NEW YORK
DALLAS
CHICAGO
BOSTON
SQL> ED
Wrote file afiedt.buf
1* ALTER TABLE DEPT ADD DEPT_TOTAL(NUMBER (10,2))
SQL> /
ALTER TABLE DEPT ADD DEPT_TOTAL(NUMBER (10,2))
*
ERROR at line 1:
ORA-00902: invalid datatype
SQL> ED
Wrote file afiedt.buf
1* ALTER TABLE DEPT ADD DEPT_TOTAL NUMBER (10,2)
SQL> /
Table altered.
SQL> DESC DEPT
Name
Null?
----------------------------------------------------- --------------------------DEPTNO
DNAME
LOC
DEPT_TOTAL
Type
---------------NUMBER(2)
VARCHAR2(14)
VARCHAR2(13)
NUMBER(10,2)
SQL> ED
Wrote file afiedt.buf
1* UPDATE DEPT D SET DEPT_TOTAL=(SELECT SUM(SAL)FROM EMP E WHERE E.DEPTNO=D.DE
PTNO)
SQL> /
4 rows updated.
DNAME
-------------ACCOUNTING
RESEARCH
SALES
OPERATIONS
LOC
DEPT_TOTAL
------------- ---------NEW YORK
8750
DALLAS
10875
CHICAGO
9400
BOSTON
SQL>
SQL> ED
Wrote file afiedt.buf
1* UPDATE DEPT D SET DEPT_TOTAL=(SELECT NVL (SUM(SAL),0)FROM EMP E WHERE E.DE
PTNO=D.DEPTNO)
SQL> /
4 rows updated.
SQL> SELECT * FROM DEPT;
DEPTNO
---------10
20
30
40
DNAME
-------------ACCOUNTING
RESEARCH
SALES
OPERATIONS
LOC
DEPT_TOTAL
------------- ---------NEW YORK
8750
DALLAS
10875
CHICAGO
9400
BOSTON
0