我创建了一个视图,然后我想更新成本并显示错误。但它反过来说不允许使用虚拟列。
查看:
CREATE OR REPLACE VIEW CONCERT_EVENTS1 AS
SELECT CONCERT.CONCERT_ID, EVENT.EVENT_ID, CONCERT.NAME, EVENT.DATE1 , CONCERT.DURATION,
CONCERT.TYPE, TO_CHAR(CONCERT.COST, 'L9,999.99') AS FORMATED_COST
FROM EVENT
INNER JOIN CONCERT
ON CONCERT.CONCERT_ID = EVENT.CONCERT_ID;
以下是错误: 从命令中的第1行开始出错:
UPDATE CONCERT_EVENTS1
SET formated_cost = '300.00'
WHERE formated_cost = '200.00'
Error at Command Line:2 Column:5
Error report:
SQL Error: ORA-01733: virtual column not allowed here
01733. 00000 - "virtual column not allowed here"
*Cause:
*Action:
提前致谢
答案 0 :(得分:0)
FORMATED_COST可能是一个计算字段,或者无论如何都是 数据库无法推断对表进行的更改 根据您所要求的变化来构建视图。
答案 1 :(得分:0)
在CONCERT.COST视图中包含一个没有格式的额外列。并仅更新该新列。 Vignesh Kumar给出了为什么需要这样做的解释。