CREATE TABLE t1
(
column1 NUMBER,
column2 NUMBER,
column3 NUMBER generated always AS (column1 + column2) virtual
);
DROP TABLE t1;
CREATE TABLE t1
( column1 NUMBER, column2 NUMBER
);
ALTER TABLE t1 ADD column3 NUMBER generated always
AS
(
column1 + column2
)
virtual;
INSERT INTO t1
(column1, column2
) VALUES
(20, 10
);
SELECT * FROM t1;
--error here
INSERT INTO t1 VALUES
(20, 10, 30
);
--error here
INSERT INTO t1 VALUES
(20, 10
);
--correct insert syntax
INSERT INTO t1
(column1, column2
) VALUES
(20, 10
);
DROP TABLE t1;
CREATE
FUNCTION add_columns(
value1 NUMBER,
value2 NUMBER)
RETURN NUMBER deterministic
AS
BEGIN
RETURN value1 + value2;
END add_columns;
/
CREATE TABLE t1
(
column1 NUMBER,
column2 NUMBER,
column3 NUMBER generated always AS (add_columns(column1, column2))
);
INSERT INTO t1
(column1, column2
) VALUES
(20, 10
);
SELECT * FROM t1;
DROP FUNCTION add_columns;
--error here
SELECT * FROM t1;
CREATE TABLE employees
(
employee_id NUMBER(3),
first_name VARCHAR(20),
salary NUMBER (7,2),
department_id NUMBER(3)
);
INSERT INTO employees VALUES
(10, 'Mike', 4000, 100
);
INSERT INTO employees VALUES
(11, 'James', 3500, 101
);
INSERT INTO employees VALUES
(12, 'David', 2000, 100
);
SELECT employee_id,
first_name,
salary,
department_id,
salary*12 AS annual_salary
FROM employees;
ALTER TABLE employees ADD annual_salary NUMBER(9,2);
UPDATE employees SET annual_salary = salary*12;
SELECT * FROM employees;
UPDATE employees SET salary = 3000 WHERE first_name = 'David';
SELECT * FROM employees;
ALTER TABLE employees
DROP column annual_salary;
ALTER TABLE employees ADD annual_salary generated always
AS
(salary*12) virtual;
SELECT * FROM employees;
UPDATE employees SET salary = 2500 WHERE first_name = 'David';
SELECT * FROM employees;
DROP TABLE t1;
DROP TABLE employees;