在Oracle中向视图中插入数据的方法

插入视图的条件:

1.如果视图是基于一个基础表产生的,那么这就称为非连接视图,所有的非连接视图都是可以更新的,也就是说可以在该视图上进行,INSERT,UPDATE,DELETE的操作.

2.如果是连接视图,那就要遵守基本更新准则了.现在我只对INSERT准则做一下说明:在INSERT语句中不能显式或隐式的引用到任何非码保留基础表中的字段,如果在定义视图中使用了WITH CHECK OPTION子句,那就不能对视图执行INSERT操作.

注:码保留表,非码保留表的解释:

在DEPT中,DEPT_NO是主码,EMP中,EMP_NO是主码

然后建立连接视图:

create view emp_dept as

select emp.emp_no,emp.emp_name,emp.dept_no,dept.name

from emp,dept

where emp.dept_no=dept.dept_no

这个视图中,EMP_NO仍然充当主码,所以EMP为码保留表,而DEPT中的DEPT_NO就不是主码了,所以为非码保留表.

多张表关联后需要向视图插入数据,建议使用替代触发器

create trigger [触发器名]

on [视图名]

instead of insert

as

begin

--声明变量;

--从inserted表中查出所有列的数据,分别赋给声明好的变量;

--用上面的数据向第一张表插入数据

--用上面的数据向第二张表插入数据

end

此外通过user_updatable_columns表能够查询到该表或者视图是否可更新。

时间: 2007-04-01

在Oracle里,视图不像存储过程和函数一样,可以定义输入参数,但我们可以变个方式,使用程序包来实现 首先定义程序包: /* 按个人需要定义,我定义三个参数 ,因我项目程序需要,所以三个参数都是number ,当然可定义其它类型 但切记,第二个create 的参数类型等需以第一个create一致,否则程序包创建失败 */ create or replace package p_view_param is --参数一 function set_param(num number) return nu

在PL/SQL Developer数据库管理工具中,使用SCOTT用户帐号进行登录,新建SQL查询窗口,输入一条创建视图的SQL语句,随后弹出一个错误的提示信息:ORA-01031:权限不足. 上图所示的错误提示信息已经说的很明白了,这是权限不足导致的!所以,只要我们设置一个scott用户的权限就可以解决了! 在网上查了一下,设置用户权限是使用 grant,而创建视图权限是 create view,那么,要给scott用户赋予创建视图权限的语句就是下面整条语句了: grant create vi

1.视图的概述 视图其实就是一条查询sql语句,用于显示一个或多个表或其他视图中的相关数据.视图将一个查询的结果作为一个表来使用,因此视图可以被看作是存储的查询或一个虚拟表.视图来源于表,所有对视图数据的修改最终都会被反映到视图的基表中,这些修改必须服从基表的完整性约束,并同样会触发定义在基表上的触发器.(Oracle支持在视图上显式的定义触发器和定义一些逻辑约束) 2.视图的存储 与表不同,视图不会要求分配存储空间,视图中也不会包含实际的数据.视图只是定义了一个查询,视图中的数据是从基表中获取

问题描述:在scott用户下创建视图的时候,报错:权限不足. (其他用户以此类推) 解决方法: 以dba用户登录 [sql] 复制代码 代码如下: sqlplus / as sysdba 赋予scott用户创建VIEW的权限 [sql] 复制代码 代码如下: grant create view to scott 以scott用户登录oracle [sql] 复制代码 代码如下: conn scott/tiger 创建视图成功 [sql] 复制代码 代码如下: CREATE OR REPLACE

基本语法 可以使用 CREATE VIEW 语句来创建视图. 语法格式如下: CREATE VIEW AS 语法说明如下. :指定视图的名称.该名称在数据库中必须是唯一的,不能与其他表或视图同名. :指定创建视图的 SELECT 语句,可用于查询多个基础表或源视图. 对于创建视图中的 SELECT 语句的指定存在以下限制: 用户除了拥有 CREATE VIEW 权限外,还具有操作中涉及的基础表和

视图是 MVC 模式中的一部分. 它是展示数据到终端用户的代码,在网页应用中,根据视图模板来创建视图,视图模板为PHP脚本文件, 主要包含HTML代码和展示类PHP代码,通过yii\web\View应用组件来管理, 该组件主要提供通用方法帮助视图构造和渲染,简单起见,我们称视图模板或视图模板文件为视图. 创建视图 如前所述,视图为包含HTML和PHP代码的PHP脚本,如下代码为一个登录表单的视图, 可看到PHP代码用来生成动态内容如页面标题和表单,HTML代码把它组织成一个漂亮的HTML页面.

1.创建用户 create user KD identified by 123456; 2.授予连接数据库的权限 grant connect to KD; 3.将Scott用户的emp表授权给KD可以查询 grant select on scott.emp to KD; grant create table to KD; 4.回收权限 revoke select on scott.emp from KD; 5.表的增删改权限授权 grant select,inset,delete,update

Oracle创建.删除DATABASE LINK 创建dblink: create database link [name] connect to [username] IDENTIFIED BY [password] using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = [ip])(PORT = [port])) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVI

oracle 创建,删除存储过程,参数传递,创建,删除存储函数,存储过程和函数的查看,包,系统包 认识存储过程和函数 存储过程和函数也是一种PL/SQL块,是存入数据库的PL/SQL块.但存储过程和函数不同于已经介绍过的PL/SQL程序,我们通常把PL/SQL程序称为无名块,而存储过程和函数是以命名的方式存储于数据库中的.和PL/SQL程序相比,存储过程有很多优点,具体归纳如下: * 存储过程和函数以命名的数据库对象形式存储于数据库当中.存储在数据库中的优点是很明显的,因为代码不保存在本地,用户

--用oracle系统权限的账号 登陆 -- 1.创建用户 create user u_name identified by "u_password"; --2.赋予权限 grant dba, resource, connect to u_name; grant create session to u_name; grant create table to u_name; grant create view to u_name; grant create tablespace to u

本文实例讲述了mysql视图之创建视图(CREATE VIEW)和使用限制.分享给大家供大家参考,具体如下: mysql5.x 版本之后支持数据库视图,在mysql中,视图的几乎特征符合SQL:2003标准. mysql以两种方式处理对视图的查询: 第一种方式,MySQL会根据视图定义语句创建一个临时表,并在此临时表上执行传入查询. 第二种方式,MySQL将传入查询与查询定义为一个查询并执行组合查询. mysql支持版本系统的视图,当每次视图被更改或替换时,视图的副本将在驻留在特定数据库文件夹的

详解ftp创建文件权限问题 一.问题 有一个这样的需求,admin为一个Linux为其FTP应用创建的一个有权限限制的用户,通过admin用户可以进行登录FTP服务,登录FTP服务后,创建文件夹,该文件夹的用户和用户组都是admin,属性为755,即只有admin用户才有写的权限,但是,FTP后台是通过b用户登录linux系统执行程序上传文件到FTP服务器,由于FTP服务器的文件夹都是由admin用户创建的,且属性为755,b用户根本没有写的权限,导致程序上传文件失败. 二.分析 那么解决问题的

oracle怎么把数据跑进视图里,在Oracle中向视图中插入数据的方法相关推荐

  1. swift之Mac中NSView视图里的截图【ScrollView中的内容截图】

    import Foundation import Cocoa 在视图中的方法 extension NSView { /****1. 在drawRect方法中绘制 使用Quartz2D绘图函数在视图上绘 ...

  2. mysql中关于批量插入数据(1万、10万、100万、1000万、1亿级别的数据)二

    硬件:windows7+8G内存+i3-4170处理器+4核CPU 关于前天写的批量插入数据,还有一种方式,就是通过预先写入文本文件,然后通过mysql的load in file命令导入到数据库,今天 ...

  3. SAP如何直接往系统中数据库表插入数据

    在项目中有可能会直接修改数据库表,那么,具体该如何做呢?给大家讲一个往ADD-ON表里面插入数据的例子吧,希望能起到抛砖引玉的作用. 首先,SE16查询:表名ZMARA 随便选择一条数据,选中查看明细 ...

  4. 经验:在mysql中避免重复插入数据的4种方式

    最常见的方式就是为字段设置主键或唯一索引,当插入重复数据时,抛出错误,程序终止,但这会给后续处理带来麻烦,因此需要对插入语句做特殊处理,尽量避开或忽略异常,下面我简单介绍一下,感兴趣的朋友可以尝试一下 ...

  5. pdo插入mysql数据出错_php中通过pdo插入数据时,sql语句错误?

    再次先谢谢各位大佬!! 接下来直接看代码: include 'mysql_ini.php'; $sql_select = "select * from word where word = ? ...

  6. Mysql中Innodb大量插入数据时SQL语句的优化

    innodb优化后,29小时入库1300万条数据 参考:http://blog.51yip.com/mysql/1369.html 对于Myisam类型的表,可以通过以下方式快速的导入大量的数据: A ...

  7. ThinPHP3.2中 addAll()批量插入数据

    thinkphp中model类的addAll()方法可以将数据同时添加到数据库中. 1 2 3 4 5 6 // 批量添加数据 (only MySQL) $user = M('user'); //ar ...

  8. 如何给数据库中的表插入数据?

    @R星校长 为表的所有字段插入数据 向表中插入数据最简单的方法就是使用INSERT语句.INSERT语句需要你声明要插入内容的表(table)名和内容(values). 语法规则为: `INSERT ...

  9. mysql中关于批量插入数据(1万、10万、100万、1000万、1亿级别的数据)

    硬件:windows7+8G内存+i3-4170处理器+4核CPU 首先贴上数据库的操作类BaseDao: import java.sql.Connection; import java.sql.Dr ...

最新文章

  1. TensorFlow(2)图(默认图与自定义图) TensorBoard可视化
  2. 【基本常识1】图像处理opencv
  3. 守护进程和inetd(转)
  4. NTU课程笔记 CE7454 (3):MLPCNN
  5. Python数据可视化——matplotlib使用
  6. 考研计算机组成原理难点,2010计算机考研:计算机组成原理冲刺重难点梳理
  7. Android开发面试题之求一个数的N次幂手写算法
  8. unable to execute dex: multiple dex files Cocos2dxAccelerometer
  9. 6月10款超赞的jQuery插件新鲜出炉
  10. json解析数组 nlohmann_json解析数组 nlohmann_Nlohmann json学习
  11. 将文件标记为 side-effect-free(无副作用)
  12. windows 下eclipse 连HBASE
  13. IE无法打开新链接的问题
  14. POWERBUILDER -- PB通过URL下载局域网或者互联网上的图片或者文件
  15. Vue+axio实现在线音乐播放器
  16. 秒懂Https之CA证书与自签名证书漫谈
  17. Xenu检测网站死链
  18. 保龄球计分程序java_保龄球计分——java代码实现
  19. 重力传感器、加速度传感器以及陀螺仪的区别
  20. 5G NR MCG,SCG,PCell,PSCell,SCell,sPCell 概念

热门文章

  1. kali linux 简单介绍
  2. SpringMVC框架学习(一)——框架部署和使用
  3. 10个最好的信息图创建工具(流程图、交互图、简历图等)
  4. python种颜色循环_python图像主色调(主颜色)提取,在hsv空间k均值迭代实现
  5. docker启动配置Mongo
  6. 渡课学习第18天:jQuery 的遍历-不困了
  7. 小程序上拉加载更多数据
  8. Ss5+proxychains
  9. Type assertions and type switches in GO
  10. 近场通信到2027年将达到467.81亿美元