在视图中添加虚拟列
add virtual column in a view
我想在视图中添加一个虚拟列age
。
table定义为:
CREATE TABLE PERSON (
, FIRST_NAME VARCHAR2(25 BYTE)
, LAST_NAME VARCHAR2(25 BYTE) NOT NULL
, BIRTH_DATE DATE NOT NULL
)
我正在创建一个视图:
CREATE OR REPLACE VIEW v_person as SELECT
first_name,
last_name,
birth_date,
age (NUMBER(8,0)) generated always as(sysdate - birth_date) virtual
FROM
person;
我收到这个错误:
ORA-00923: FROM keyword not found where expected
00923. 00000 - "FROM keyword not found where expected"
*Cause:
*Action:
视图已经是一个虚拟数据结构。创建它的查询定义了它的列。只需将表达式添加到 select
:
CREATE OR REPLACE VIEW v_person as
SELECT
first_name,
last_name,
birth_date,
sysdate - birth_date as age
FROM person;
视图是存储在数据库中的SQL,当我们select从视图中实际执行为视图定义的查询时。
视图中不能有虚拟列,您可以在 table 中创建虚拟列或在视图中定义列。
SELECT column1, column2 , (sysdate - birth_date)as age
FROM person;
我想在视图中添加一个虚拟列age
。
table定义为:
CREATE TABLE PERSON (
, FIRST_NAME VARCHAR2(25 BYTE)
, LAST_NAME VARCHAR2(25 BYTE) NOT NULL
, BIRTH_DATE DATE NOT NULL
)
我正在创建一个视图:
CREATE OR REPLACE VIEW v_person as SELECT
first_name,
last_name,
birth_date,
age (NUMBER(8,0)) generated always as(sysdate - birth_date) virtual
FROM
person;
我收到这个错误:
ORA-00923: FROM keyword not found where expected
00923. 00000 - "FROM keyword not found where expected"
*Cause:
*Action:
视图已经是一个虚拟数据结构。创建它的查询定义了它的列。只需将表达式添加到 select
:
CREATE OR REPLACE VIEW v_person as
SELECT
first_name,
last_name,
birth_date,
sysdate - birth_date as age
FROM person;
视图是存储在数据库中的SQL,当我们select从视图中实际执行为视图定义的查询时。 视图中不能有虚拟列,您可以在 table 中创建虚拟列或在视图中定义列。
SELECT column1, column2 , (sysdate - birth_date)as age
FROM person;