随笔分类 - SQL
摘要:原因:SQL语句空格有全角字符。 解决方案:删除全角字符的空格,改为半角字符的空格。
阅读全文
摘要:对于DML触发器而言,只能作用在表上。而 instead of 替代触发器则是作用在视图上。 对于一些简单的视图,可以直接对其进行 增、删、改操作,而对于复杂的视图,则不能直接执行 insert、Update、delete操作。 当有以下任一情况时,都不能直接进行增、删、改操作: (1)在定义视图的
阅读全文
摘要:DML触发器:是一种用在 表 上的触发器,通常在 insert,Update, delete语句上应用。 如果触发器仅影响一行,则触发器执行顺序: (1)before 语句触发器 (2)before 行级触发器 (3)执行 DML语句 (4)after 行级触发器 (5)after 语句触发器 如果
阅读全文
摘要:DBMS_JOB包用于调度作业,可以提交作业到作业队列中,并指明作业运行的周期。 (1)提交作业 submit 语法: 其中,作业任务what,要以 分号 ; 结尾。作业通常是一个过程或者一段 ‘insert、Update、 delete 等DML的 SQL语句’。 (2)移除作业 remove 语
阅读全文
摘要:DBMS_ALERT包用于发布报警信息。它是单向的,以事务提交为基础的,对数据库报警事件的异步报警通知。 报警是基于事务的,也就是说除非发出报警信号的事务被提交commit,才会触发报警,否则等待过程中的事务,即报警接收方,不会获得报警。 首先要授权用户拥有执行DBMS_ALERT包的权限。 --向
阅读全文
摘要:DBMS_PIPE包用于同一个实例,不同会话(用户)之间进行通信。管道的信息被缓存在系统全局区SGA中,当关闭Oracle实例(Instance)时,就会丢失管道信息。 管道分为两类: (1)公有管道:所有数据库用户都可以访问的管道,因此要想在同一个实例的不同用户之间建立管道,要使用公有管道。 (2
阅读全文
摘要:Oracle数据库服务器由两部分组成: (1)数据库,即保存数据的各种物理文件,包括数据文件,日志文件,控制文件,其他文件。 (2)实例(Instance),是连接用户与数据库的一个中间层,包括内存区和进程区。 内存区,即系统全局区(SGA,System Global Area),包括 数据高速缓存
阅读全文
摘要:DBMS_OUTPUT包用来输出调试信息。 (1)启用或禁用 DBMS_OUTPUT包 默认情况下,Oracle不启用DBMS_OUTPUT包。要启用DBMS_OUTPUT包,需要调用存储过程 DBMS_OUTPUT.ENABLE。 语法: 1 DBMS_OUTPUT.enable(buffer_s
阅读全文
摘要:包(Package)的主要作用是用于逻辑组合相关的PL/SQL类型,一旦创建了包,包就会被存储在Oracle数据库中。 包由以下两部分组成: (1)包规范(Specification):主要是包的一些定义信息,不包含具体的实现,包含类型(type),记录(record),变量(variable),常
阅读全文
摘要:(1)自定义异常:必须首先在声明部分声明异常,然后在执行部分抛出异常,最后由异常处理区域捕获异常。 (2)有些Oracle内部错误只有错误编号,而没有异常名称。使用 EXCEPTION_INIT,可以将自定义的异常名称与错误编号关联起来。 EXCEPTION_INIT只能定义在声明部分,语法如下:
阅读全文
摘要:在Oracle中,锁定又分为表锁定和行锁定。 (1)表锁定:对整个表实行数据锁定,以确保当前事务可以访问数据,防止其他的会话或事务同时对该表进行访问而造成冲突,用于保护整张表的数据。 (2)行锁定:又称记录锁定,对当前操作的一行进行锁定,锁定总是以独占的方式进行,在一个事务结束之前,其他事务将要等待
阅读全文
摘要:事务的ACID特性,即原子性、一致性、隔离性、持久性。 1原子性:事务必须是原子工作单元,对其进行的数据修改,要么全部执行,要么全不执行。 2一致性:事务在完成时,必须使所有的数据都保持一致状态,即所有的数据都要发生更改,以保证数据的完整性。 3隔离性:两个事务的执行是互不干扰的,一个事务不可能看到
阅读全文
摘要:游标:只是一个指向查询语句返回的结果的指针,因此定义游标时,将包含一个查询定义。 当游标打开后,数据被接收到一块内存区域存储,直到游标关闭。 游标定义时并不会获取游标数据,只有在游标被打开后,游标相关的查询语句被执行,然后将检索到的结果保存到内存中。 游标实际上指向的是一块内存区域,改区域位于进程全
阅读全文
摘要:分析函数:将集合进行分区(使用partition by),再计算这些分区的值,与分组函数最大的不同在于能够为每一个分区返回多行的值。 语法: function_name(<argument1>,<argument2>,...) OVER (<Partition-Clause><Order by -
阅读全文
摘要:(一)nvl 函数 语法: NVL( exp1, exp2) 功能:判断列值或者表达式1的值是否为NULL,若为NULL,则转换为表达式2。 (二)NVL2 函数 语法:NVL2(exp1, exp2, exp3) 功能:检查表达式1,若不为NULL,则返回表达式2;若为NULL,则返回表达式3。
阅读全文
摘要:嵌套表(nested table) :嵌套表是对索引表的扩展,嵌套表可以存储到Oracle数据库表中,而索引表仅仅只是内存表。 使用嵌套表是,必须首先使用构造语法初始化嵌套表。 嵌套表没有 index by 子句,下表必须为有序类型,不可以为负数,只能从1开始。 语法: TYPE type_name
阅读全文
摘要:记录是一种单行多列的数据结构,集合是一种单列多行的数据结构。集合类似于高级语言中的列表或一维数组,主要用来存储具有相同数据类型的元素的有序集合, 每一个元素都有唯一的下标来标识当前元素在集合中的位置。 索引表:由键值对组成,类似于其他语言的哈希表,键是唯一用来识别索引表中元素的识别符,类似于数组中的
阅读全文
摘要:记录是一种复合类型,复合类型是指包含其他类型的类型。标量类型是一种不包含其他类型的变量,比如字符串、数字类型。 记录类型类似于C语言中的结构,将多个变量进行封装,可以把记录类型想象成表的一行记录。 语法:定义: TYPE type_name is RECORD ( field_name1 field
阅读全文
摘要:Oracle的序列是一种数据库对象,其主要工作是用来为表产生唯一值。一旦序列被创建,序列的创建代码就被文本化在数据字典中,可以在 user_objects 数据字典中看到。 在 user_sequences 数据字典表中保存了序列明细信息。 语法: CREATE SEQUENCE sequence_
阅读全文
摘要:DML(Data Manipulate Language)数据操纵语言,包含 insert update delete merge 对于多条DML语句,Oracle将其看作是一个整体事务进行处理,因此必须手动处理 提交 commit 与 回滚 rollback 操作。 (1) Merge : 插入所
阅读全文

浙公网安备 33010602011771号