sql - 如何更改 Oracle View 中的列数据类型?
问题描述
我正在尝试通过执行以下语句来更改 Oracle 视图中列的数据类型:
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:
我提到了这里的帖子。实现这一目标的正确方法是什么?我猜 Oracle 期望CONSTRAINT
关键字 after MODIFY
。我正在修改其数据类型的列是该视图所在的表中的主键之一。
解决方案
您不能更改 VIEW 的列数据类型。
相反,您可以更改基础基表列的数据类型(在这种情况下,请参阅问题中提到的链接的答案),或者您可以使用该数据类型创建视图查询。
-- Your view
CREATE OR REPLACE VIEW <YOUR VIEW> AS
SELECT ID,
...
FROM <TABLE>;
您可以更改视图的 SELECT 查询。
CREATE OR REPLACE VIEW <YOUR VIEW> AS
SELECT cast(ID as varchar2(20)) as ID,
...
FROM <TABLE>;
希望,这会有所帮助。
干杯!!
推荐阅读
- javascript - Javascript 使用 setAttribute 和下拉选择将变量从更改传递到外部函数
- xaml - 如何向 Xamarin Forms CollectionView 添加填充?
- python - 我的自动转换器将转换后的文件在 python 中相乘
- vue.js - 用于 vue 的 paypal-checkout-component 保持沙盒模式
- java - 崩溃报告中的 InternalSyntheticLambda
- python - 如何在单词的末尾添加句号,而单词和句号之间没有空格?
- python - 在填充零的熊猫数据框中添加新数据和新列
- javascript - 通过 JS 更改下拉选项值不起作用
- android - 获取 Android 应用程序包的所有已安装功能
- javascript - 通过猫鼬中间件修改后如何设置文档