这个问题在这里已经有了答案:
How to alter column size of a view in Oracle
(2 个回答)
2年前关闭。
我正在尝试通过执行以下语句来更改 Oracle View 中列的数据类型:
ALTER VIEW <view_name>
MODIFY (ID VARCHAR2(100));
我收到以下错误:
Error starting at line : 1 in command -
ALTER VIEW <view_name>
MODIFY (ID VARCHAR2(100))
Error report -
ORA-00922: missing or invalid option
00922. 00000 - "missing or invalid option"
*Cause:
*Action:
我引用了帖子here .实现这一目标的正确方法是什么?我猜 Oracle 期望
CONSTRAINT
MODIFY
之后的关键字.我正在修改其数据类型的列是该 View 所在的表中的主键之一。
最佳答案
您不能更改 VIEW 的列数据类型。
相反,您可以更改基础基表列的数据类型(在这种情况下,请参阅问题中提到的链接的答案),或者您可以使用该数据类型创建 View 查询。
-- Your view
CREATE OR REPLACE VIEW <YOUR VIEW> AS
SELECT ID,
...
FROM <TABLE>;
您可以更改 View 的 SELECT 查询。
CREATE OR REPLACE VIEW <YOUR VIEW> AS
SELECT cast(ID as varchar2(20)) as ID,
...
FROM <TABLE>;
希望,这会有所帮助。
干杯!!
关于sql - 如何更改 Oracle View 中的列数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57575615/