Oracle
andybbc
这个作者很懒,什么都没留下…
展开
-
sqlplus执行有空行的SQL语句
1.1 SQL语句有空行,无法在PLSQL中执行拷贝有空行的SQL语句到PLSQL或者SQL*PLUS中执行报错。1.1.1 现象描述XX报表系统在安装时,需要从文本编辑工具中拷贝SQL语句到PLSQL中执行,在PLSQL的执行窗口中,会出现空行,比如下面的脚本:CREATE OR REPLACE VIEW v_userlog原创 2016-04-18 11:12:44 · 6993 阅读 · 0 评论 -
Oracle Function详解
一、概述1、函数与存储过程的不同点(1)、函数就是一个有返回值的过程,且是必须。(2)、存储过程只能作为一个plsql语句调用,而函数不但可以作为plsql语句调用,符合约束的函数还可以作为sql表达式的一部分使用。(3)、对于无参函数的定义和调用都没有圆括号,但无参存储过程需要。2、函数与存储过程的相同点(1)、都存储在数据库中,并且可在块中调用,代码都有定义部分、可原创 2016-05-30 21:58:53 · 6038 阅读 · 0 评论 -
Oracle中修改某个字段可以为空
待修改字段假定为:shuifen当该字段为空时,可直接修改:alter table reportqymx modify shuifen null;当待修改字段不为空时:新增一列把要改变的列的值转移过去并清空原列的值改变列的数据类型把值转移回来,并删除新增的列alter table reportqymx add shuifen_temp number(10);原创 2016-04-22 18:34:42 · 35968 阅读 · 0 评论 -
Oracle Procedure详解
1、创建存储过程create or replace procedure test(var_name_1 in type,var_name_2 out type) as --声明变量(变量名 变量类型) begin --存储过程的执行体 end test;打印出输入的时间信息 E.g: create or replace procedure test(work原创 2016-05-30 21:47:26 · 22085 阅读 · 1 评论 -
oracle分析函数技术详解(配上开窗函数over())
一、Oracle分析函数入门分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计值。 分析函数和聚合函数的不同之处是什么?普通的聚合函数用group by分组,每个分组返回一个统计值,而分析函数采用partition by分转载 2017-01-19 17:24:15 · 656 阅读 · 1 评论 -
SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中,经常会遇到需要表复制的情况,如将 一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO转载 2017-01-19 17:30:10 · 384 阅读 · 0 评论 -
慎用create table as select,一定要注意默认值的问题
再做一些数据迁移时候,很多人会使用create table as select * from table where id=-1的方式来年建立一摸一样的表,但是这样做有个很大的弊端,不能将原表中的default value也一同迁移过来,可以看下面的例子: 第一,新建一个表 -- Create tablecreate table table01( i转载 2017-01-19 17:32:59 · 1823 阅读 · 0 评论 -
oracle中 connect by prior 递归算法
Oracle中start with...connect by prior子句用法 connect by 是结构化查询中用到的,其基本语法是: select ... from tablename start with 条件1 connect by 条件2 where 条件3; 例: select * from table start with org_id = 'HBHqfW转载 2017-01-19 17:37:09 · 335 阅读 · 0 评论 -
Oracle中Hint深入理解
Hint概述 基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担。但有时它也聪明反被聪明误,选择了很差的执行计划,使某个语句的执行变得奇慢无比。此时就需要DBA进行人为的干预,告诉优化器使用我们指定的存取路径或连接类型生成执行计划,从 而使语句高效的运行。例如,如果我们认为对于一个特定的语句,执行全表扫描要比执行索引扫描更有效,则我们就可以指示优化器使转载 2017-01-19 17:42:58 · 647 阅读 · 0 评论