此处不允许使用虚拟列

Ram*_*kla 4 sql oracle

我试图使用VIEWas 在表中插入一行

INSERT INTO FIELDI18N(LANGUAGE_ID) VALUES (1);
Run Code Online (Sandbox Code Playgroud)

但它给了我以下错误:

Error starting at line 5 in command:
INSERT INTO FIELDI18N(LANGUAGE_ID) VALUES (1)
Error at Command Line:5 Column:22
Error report:
SQL Error: ORA-01733: virtual column not allowed here
01733. 00000 -  "virtual column not allowed here"
*Cause:    
*Action:
Run Code Online (Sandbox Code Playgroud)

任何线索?

添加了视图定义:

CREATE OR REPLACE VIEW FIELDI18N("FIELDID", "NAME", "TYPE", "DESCRIPTION", "LANGUAGE_ID")
AS
  (SELECT field.fieldid,
    field.type,
    NVL(i18n.name, field.name) name,
    NVL(i18n.description, field.description) description,
    i18n.language_id
  FROM fields field
  JOIN i18n_fields i18n
  ON (field.fieldid    = i18n.fieldid)
  );
Run Code Online (Sandbox Code Playgroud)

Dav*_*dge 5

LANGUAGE_ID可能是一个计算字段,或者在任何情况下,数据库都无法根据您所需的更改推断要对视图下的表进行哪些更改.必须要查看视图定义代码才能知道.