[20140529]建立视图问题.txt

[20140529]建立视图问题.txt

--昨天想将在10g下建立的视图移植到11g,遇到一个奇怪的问题,自己做一个记录。

orcl> @ver

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi

orcl> create table t  ( id number,c1 varchar2(20),c2 varchar2(20));
Table created.

orcl> create or replace  force view v_t (id ,c1) as select id ,c1,c2 from t ;
Warning: View created with compilation errors.

orcl> show error
No errors.

--可以发现编译有错,少了1个字段。

orcl> select * from v_t;
select * from v_t
                *
ERROR at line 1:
ORA-01730: invalid number of column names specified

orcl> select id,c1 from v_t;
no rows selected

--可以发现如果查询这个视图有问题,只要不设计c2字段,问题消失。很奇怪的是在toad看没有报错。

--在11G下重复测试:

SCOTT@test> @ver

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

SCOTT@test> create table t ( id number,c1 varchar2(20),c2 varchar2(20));
Table created.

SCOTT@test> create or replace  force view v_t (id ,c1) as select id ,c1,c2 from t ;
Warning: View created with compilation errors.

SCOTT@test> show error
No errors.

SCOTT@test> select id,c1 from v_t;
select id,c1 from v_t
                  *
ERROR at line 1:
ORA-04063: view "SCOTT.V_T" has errors

--可以发现在11g下无法使用。因为在10g下"工作正常",所以浪费了大量时间查找问题,我业务上的视图更长,字段更多,导致当时定位
--浪费了大量时间。

时间: 2024-09-14 12:16:51

[20140529]建立视图问题.txt的相关文章

[20151105]视图DBA_HIST_SEG_STAT_OBJ.txt

[20151105]视图DBA_HIST_SEG_STAT_OBJ.txt --前一阵子看别人的awr报表.链接http://www.itpub.net/thread-1940496-1-1.html Segments by Physical Reads Owner          Tablespace Name  Object Name                     Subobject Name  Obj. Type  Physical Reads %Total ** MISSIN

[20160412]访问all_directorys视图问题.txt

[20160412]访问all_directorys视图问题.txt --调试PL SQL脚本,遇到一个问题: 1.环境: SCOTT@book> @ &r/ver1 PORT_STRING         VERSION    BANNER ------------------- ---------- -------------------------------------------------------------------------------- x86_64/Linux 2

跨服务器同步-如何实现跨服务器建立视图?

问题描述 如何实现跨服务器建立视图? 我现在有两个数据库服务器,一个Sql Server的,还有一个Oracle的然后,我想从Oracle的服务器下检索数据,并在Sql Server的数据库下建立一个视图,呈现这些数据,实现数据的同步.求可行的方法,可以帮我实现这个想法~ 解决方案 我是用Navicat Premium在操作这两个数据库的

[20170925]建立文件分配大小.txt

[20170925]建立文件分配大小.txt --//有时候工作需要建立一个文件.一般在linux下使用dd.总结一下其他方法: 1.方法1: $ cat a.c #include <fcntl.h> #include <sys/types.h> #include <sys/stat.h> #include <sys/io.h> #include <stdio.h> int main() {     FILE* file = fopen (&qu

[20151024]关于ctas与建立主键.txt

[20151024]关于ctas与建立主键.txt --前一阵子别人问的问题,就是ctas是否可以建立主键,对于这种情况平时不这么建立,我给看看文档. --平时我建立测试表 create table t as select rownum id ,'test' name from dual connect by level<=10; --要实现ctas同时建立主键,看看如下是否可行: SCOTT@test01p> @ver1 PORT_STRING                    VERS

[20160911]windows下建立硬链接.txt

[20160911]windows下建立硬链接.txt --大家知道linux ln命令可以建立硬连接或者软连接.参考: http://blog.itpub.net/267265/viewspace-1812272/ --实际上windows下也有类似ln命令,只不过许多人很少在命令行使用windows,对于里面的命令行命令知道的更少. --通过例子说明,使用fsutil就可以建立硬连接.补充一点建立这种硬连接仅仅支持NTFS文件系统,不要指望支持FAT32. --实际上这个测试,主要有用户需求

[20160921]linux下建立samba服务器.txt

[20160921]linux下建立samba服务器.txt --工作需要,需要在linux下配置samba服务.好久不做这些事情,做一个安装笔记: 1.安装samba软件包 # rpm -qa | grep samba samba-client-3.0.33-3.39.el5_8 samba-common-3.0.33-3.39.el5_8 samba-3.0.33-3.39.el5_8 --注意安装samba-3.0.33-3.39.el5_8需要 perl-Convert-ASN1-0.2

[20150930]linux ln建立硬连接.txt

[20150930]linux ln建立硬连接.txt --前几天同事在建立测试环境时磁盘空间不足,而另外一个空间磁盘空间充足,我说可以通过ln建立软连接来解决这个问题. --这让我想起我以前管理数据库通过ln建立硬连接来避免oracle数据文件的删除,虽然现在我现在不用这种方式,不过还是做一些简单介 --绍. 1.关于linux的ln命令我不做介绍,自己看看手册. --仅仅说明一点,做硬链接不能跨文件系统. 2.实际上很简单,我拿测试环境做一次. RMAN> report schema; us

[20151124]快速建立测试数据库.txt

[20151124]快速建立测试数据库.txt -- 以建立11.2.0.4的数据库为例子说明,以前写过使用内存来运行测试数据库,以这个为基础并且做一个记录. -- 重新删除在建立数据库. startup nomount; alter system enable restricted session; RMAN> drop database including backups; 1.建立内存盘: # mkdir -p /mnt/ramdisk # mount -t tmpfs -o size=8