Oracle视图中字段的空与非空由什么决定??

牧原 2017-05-27 09:42:30
给创建的视图添加了两个字段的关键字约束,但是在查看视图列时发现有一个字段可以为空。可为空的字段是经过聚合函数得到的,非空字段是直接从基表获取的(在基表中该字段设置非空)。如下图:
创建视图语句:

视图列信息:

有两个疑问如下:
1、视图中字段的非空与空跟基表字段相关,直接获取基表的字段非空属性与及表一致,可以这样理解吗??
2、视图中字段的非空属性可以设置没吗??
...全文
964 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
牧原 2017-06-25
  • 打赏
  • 举报
回复
视图中字段的非空约束是继承基表的,在创建视图时无法添加此约束。我结贴了。
jdsnhan 2017-06-01
  • 打赏
  • 举报
回复
1、没看懂什么意思 2、为什么非要设置没呢,视图又不做数据更新。不想看到空的时候,用nvl转换一下就可以了
yan_jg 2017-06-01
  • 打赏
  • 举报
回复
视图的约束应该是根据表来的 。。表字段是什么 约束 视图的就是什么约束 。。更新操作一般不会直接对视图进行 。。约不约束的没有什么意义 。。如果你想让你的视图某个字段非空 直接 在视图后面加where 条件就行了 。。就相当于约束了 。。
  • 打赏
  • 举报
回复
试图 可以加约束吗? 没用过 见识了
qq_38884602 2017-05-27
  • 打赏
  • 举报
回复
视图没法定义字段的类型和长度等,你应该修改表的列类型 你不想为空的话,可以使用NVL函数
牧原 2017-05-27
  • 打赏
  • 举报
回复
如果视图中字段直接从基表中获得,不做任何处理则非空约束会从基表中传递下来;若用基表字段计算得到的字段,其非空约束只能是“Yes”。但是对其添加了关键字约束,怎么非空约束还能为“Yes”呢???那个视图添加关键字约束的作用何在?? 那么视图中字段的非空约束如何设置呢???

3,499

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧