sql - 如何更改 Oracle View 中的列数据类型?

标签 sql oracle sql-view

这个问题在这里已经有了答案:





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/

相关文章:

oracle - Mybatis BindingException 参数 '__frch_e_0' 未找到

mysql - 删除数据库时出错(无法 rmdir '.test\',errno : 17)

mysql - 如何将两个sql结果合并到一个sql查询中?

java - Oracle SQL Merge 不会执行 over 语句

Laravel 5.2 中的 Mysql View

django - 为现有数据库/sql View 创建 django 模型?

sql - 如何在 postgresql 中创建类似于 oracle 的只读 View ?

mysql - 重叠预订查询

sql - 从单独的日期和时间字段转换为 DATETIME

oracle - Access 2007导出表到CSV十进制