oracle 11g-基于rowid的物化视图没有数据?????

问题描述

基于rowid的物化视图没有数据?????

本人刚刚接触物化视图,有些地方不太清楚,刚创建好的物化视图没有数据是几个意思啊?
select 后面是多个表左连接,用的是(+)而不是left join ,哪位大神搭救一下??谢谢
create materialized view V_SHIPOWNER_ALL_TEST
refresh complete on demand
start with to_date('07-09-2015 12:00:00', 'dd-mm-yyyy hh24:mi:ss') next SYSDATE+1
as
select a.owner_id shipowner_id,count(a1.id) ship_count,nvl(sum(a1.dwt),0) ship_count_s,nvl(sum(a1.cgt),0) ship_count_s_cgt,count(a2.ship_id) new_ship_ty,nvl(sum(a2.dwt),0) new_ship_ty_s,
count(a2.ship_id) new_ship_ly,nvl(sum(a2.dwt),0) new_ship_ly_s,count(a4.ship_id) ship_now,nvl(sum(a4.dwt),0) ship_now_s,nvl(sum(a4.cgt),0) ship_now_s_cgt,count(a5.ship_id) ship_now_b,
nvl(sum(a5.dwt),0) ship_now_s_b ,count(a6.ship_id) ship_fin_ty,nvl(sum(a6.dwt),0) ship_fin_ty_s,count(a6.ship_id) ship_fin_ly,nvl(sum(a6.dwt),0) ship_fin_ly_s,
count(a8.ship_id) ship_sec_ty,nvl(sum(a8.dwt),0) ship_sec_ty_s,count(a8.ship_id) SHIP_SEC_B_TY,nvl(sum(a8.dwt),0) SHIP_SEC_B_TY_s,count(a8.ship_id) SHIP_SEC_all_TY,
nvl(sum(a8.dwt),0) SHIP_SEC_all_TY_s,count(a8.ship_id) SHIP_SEC_all_lY,nvl(sum(a8.dwt),0) SHIP_SEC_all_lY_s

          from so_shipowner_info a ,ship_base_info a1,order_info_onorder a4,order_info_new a2,order_info_begingyear a5,order_info_deliveries a6,order_info_secondhand_formal a8,
(select ship_yard_id,ship_owner_id from order_info_new order by contract_date desc) b3,order_info_split b4

where a1.ship_owner_id(+)=a.owner_id
 and a2.contract_date>to_char(sysdate,'yyyy') and a2.ship_owner_id(+)=a.owner_id

and a2.contract_date>to_char(add_months(sysdate,-12),'yyyy') and a2.contract_date<to_char(add_months(sysdate,-12),'yyyy-mm-dd') and a2.ship_owner_id(+)=a.owner_id

 and a4.ship_owner_id(+)=a.owner_id

 and a5.ship_owner_id(+)=a.owner_id

 and a6.ship_built>to_char(sysdate,'yyyy') and a6.ship_owner_id(+)=a.owner_id
  and a6.ship_built>to_char(add_months(sysdate,-12),'yyyy') and  a6.ship_built<to_char(add_months(sysdate,-12),'yyyy-mm-dd') and a6.ship_owner_id(+)=a.owner_id

 and a8.ship_business_date>to_char(sysdate,'yyyy') and a8.sellers_id(+)=a.owner_id
 and a8.ship_business_date>to_char(sysdate,'yyyy') and a8.buyer_id(+)=a.owner_id
 and a8.ship_business_date>to_char(sysdate,'yyyy') and (a8.buyer_id=a.owner_id or a8.sellers_id=a.owner_id)
 and a8.ship_business_date>to_char(add_months(sysdate,-12),'yyyy') and a8.ship_business_date<to_char(add_months(sysdate,-12),'yyyy-mm-dd') and (a8.buyer_id=a.owner_id or a8.sellers_id=a.owner_id)
 and b3.ship_owner_id(+)=a.owner_id and rownum=1
     and to_char(add_months(sysdate,-60),'yyyy') <=a1.built_date and a1.built_date<to_char(sysdate,'yyyy') and a1.ship_owner_id(+)=a.owner_id
 and to_char(add_months(sysdate,-120),'yyyy') <= a1.built_date and a1.built_date<to_char(add_months(sysdate,-60),'yyyy') and a1.ship_owner_id(+)=a.owner_id
 and to_char(add_months(sysdate,-180),'yyyy') <=a1.built_date and a1.built_date<to_char(add_months(sysdate,-120),'yyyy') and a1.ship_owner_id(+)=a.owner_id
 and to_char(add_months(sysdate,-240),'yyyy') <=a1.built_date and a1.built_date<to_char(add_months(sysdate,-180),'yyyy') and a1.ship_owner_id(+)=a.owner_id
 and to_char(add_months(sysdate,-300),'yyyy') <=a1.built_date and a1.built_date<to_char(add_months(sysdate,-240),'yyyy') and a1.ship_owner_id(+)=a.owner_id
 and to_char(add_months(sysdate,-360),'yyyy') <=a1.built_date and a1.built_date<to_char(add_months(sysdate,-300),'yyyy') and a1.ship_owner_id(+)=a.owner_id
 and to_char(add_months(sysdate,-360),'yyyy')>=a1.built_date and a1.ship_owner_id(+)=a.owner_id

group by a.owner_id,b3.ship_yard_id;

解决方案

物化视图rowid
----------------------

时间: 2024-10-09 03:54:09

oracle 11g-基于rowid的物化视图没有数据?????的相关文章

[20150610]使用物化视图同步数据.txt

[20150610]使用物化视图同步数据.txt --昨天听别人的一个需求要同步一个表的数据,要求使用golden gate有点小题大作.实际上物化事务就可以了,自己以前做过一些测试,也 --许没做记录,这次做一个记录. 1.建立测试环境: --源数据库10g  10.2.0.4.0  IP=192.168.100.89 --同步表T. create table t ( id number CONSTRAINTS pk_t primary key , name varchar2(20)); in

oracle 11g 恢复,覆盖ctl,dbf,log等数据文件后报错:所有历程都无法建立新的连接.

问题描述 oracle 11g 恢复,覆盖ctl,dbf,log等数据文件后报错:所有历程都无法建立新的连接. 服务器上oracle挂了连接无监听,文件都在.想恢复数据,自己电脑上装了个同样的oralce11g64位,把数据文件拷贝下来测试.覆盖数据文件后出现历程都无法连接的问题.有没解决过这问题的人帮忙解决下. 解决方案 http://blog.csdn.net/dirful/article/details/48206435

oracle如何利用触发器对物化视图刷新进行定制

物化视图的刷新其实和普通的SQL执行没有什么本质的区别,因此也可以通过在物化视图上创建触发器的方式,对刷新操作进行定制. 正好前两天有人在BLOG上问我,如果在物化视图添加一个时间戳列,并在物化视图更新的时候,自动维护这个列.其实很简单,通过触发器就可以达到这个目的: SQL> CREATE TABLE T (ID NUMBER PRIMARY KEY, NAME VARCHAR2(30)); 表已创建. SQL> INSERT INTO T SELECT ROWNUM, TNAME FROM

ORACLE中的物化视图

oracle|视图 ORACLE中的物化视图         物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表.物化视图存储基于远程表的数据,也可以称为快照.        物化视图可以查询表,视图和其它的物化视图.        通常情况下,物化视图被称为主表(在复制期间)或明细表(在数据仓库中).        对于复制,物化视图允许你在本地维护远程数据的副本,这些副本是只读的.如果你想修改本地副本,必须用高级复制的功能.当你想从一个表或视

Oracle物化视图详解

一. 理论部分 Oracle的物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表.物化视图存储基于远程表的数据,也可以称为快照. Oracle的物化视图提供了强大的功能,可以用于预先计算并保存表连接或聚集等耗时较多的操作的结果,这样,在执行查询时,就可以避免进行这些耗时的操作,而从快速的得到结果.物化视图有很多方面和索引很相似:使用物化视图的目的是为了提高查询性能:物化视图对应用透明,增加和删除物化视图不会影响应用程序中SQL语句的正确性和有效性

oracle物化视图同步两个数据库间的数据

两个oracle 10g 数据库,通过物化视图同步数据的具体实施流程 源库是 192.168.1.81 目标库是192.168.1.96 统计库用的服务器是 81 在统计库81上创建只读用户snap_query,用于查询 conn /as sysdba create user snap_query identified by snap_query default tablespace users temporary tablespace temp; grant connect to snap_q

Oracle 11g r2物化视图日志新增的COMMIT SCN语句概述

在11.2中,物化视图日志也新增了一些功能,对于本地物化视图而言,现在可以利用COMMIT SCN来替代以前版本中的TIMESTAMP方式来进行刷新. 看一个简单的例子: SQL> SELECT * FROM V$VERSION; BANNER -------------------------------------------------------------------------------- Oracle Database11gEnterprise Edition Release11

oracle物化视图

转自: http://www.cnblogs.com/BradMiller/archive/2011/04/24/2026321.html oracle物化视图 一.oracle物化视图基本概念 物化视图首先需要创建物化视图日志, oracle依据用户创建的物化视图日志来创建物化视图日志表, 物化视图日志表的名称为mlog$_后面跟基表的名称, 如果表名的长度超过20位,则只取前20位,当截短后出现名称重复时,oracle会自动在物化视图日志名称后面加上数字作为序号. 创建物化视图日志在建立时有

mysql触发器实现oracle物化视图示例代码_Mysql

oracle数据库支持物化视图--不是基于基表的虚表,而是根据表实际存在的实表,即物化视图的数据存储在非易失的存储设备上. 下面实验创建ON COMMIT 的FAST刷新模式,在mysql中用触发器实现insert , update , delete 刷新操作 1.基础表创建,Orders 表为基表,Order_mv为物化视图表 复制代码 代码如下: mysql> create table Orders( -> order_id int not null auto_increment, -&g