oracle开发学习
文章平均质量分 94
长烟慢慢
oracle ebs dba
展开
-
oracle中的行转列函数
转自:https://blog.csdn.net/qq_33157666/article/details/72854801一、简单介绍最近项目需要进行行转列,经过上网查资料发现了wmsys.wm_concat和LISTAGG函数,在这分享给大家wmsys.wm_concat是oracle 10g推出的,用来连接字符串,LISTAGG是oracle 11g推出的,它的作用和wmsys.w...转载 2018-07-24 14:44:44 · 20842 阅读 · 0 评论 -
SQL基础13—— 约束(CONSTRAINT)
原文转自 一沙弥的世界 的博客一、几类数据完整性 实体完整性:表中记录不重复(任何两条记录不全等)并且每条记录都有一个非空主键 域完整性:表中字段值必须与字段数据类型、格式、有效范围相吻合 参照完整性:不能引用不存在的值 自定义完整性:根据特定业务领域定义的需求完整性 保证数据完整性的几种常用方法 约束(最常用)原创 2011-12-25 14:09:05 · 2023 阅读 · 0 评论 -
PL/SQL专家指南3——调用者权限和定义者权限 上篇
1、介绍定义者(definer)权限和调用者(invoker)权限的概念定义者权限:定义者权限PL/SQL程序单元是以这个程序单元拥有者的特权来执行它的,也就是说,任何具有这个PL/SQL程序单元执行权的用户都可以访问程序中的对象。所有具有执行权的用户都有相同的访问权限,在定义者权限下,执行的用户操作的schema为定义者,所操作的对象是定义者在编译时指定的对象。调用者权限:调用者权限是指原创 2012-09-23 19:37:32 · 2494 阅读 · 0 评论 -
PL/SQL专家指南4——调用者权限和定义者权限 下篇
-------------------------------------------------------------调用者权限和定义者权限学习---------------------------------------------------转自群友shehasgone:--调用者权限的存储过程 print_tablecreate or replace procedure p原创 2012-09-24 19:24:05 · 1823 阅读 · 0 评论 -
数据库设计基础——三范式
书上讲了好多, 归结起来3句话: 1NF:字段不可分; 2NF:有主键,非主键字段依赖主键; 3NF:非主键字段不能相互依赖; 解释: 1NF:原子性 字段不可再分,否则就不是关系数据库; 2NF:唯一性 一个表只说明一个事物; 3NF:每列都与主键有直接关系,不存在传递依赖; 不符合第一范式的例子(关系数据库中create不出这样的表):原创 2011-10-13 08:57:49 · 1855 阅读 · 1 评论 -
PL/SQL专家指南2——PL/SQL精髓
1、入门级概述用PL/SQL很久了,很多其他搞IT的人问我PL/SQL是什么,一般我的回答是:1,Oracle的开发语言。2,比SQL复杂了些,多了很多东西(至于什么东西,现在还搞不清楚,还幼稚的以为:PL/SQL=PLus SQL),今天仔细潜心读了些书终于完善了这个定义(不是偷懒复制的,是手抄的):Procedure Language/SQL(PL/SQL) is Oracle C原创 2012-09-22 21:34:45 · 1981 阅读 · 0 评论 -
PL/SQL4—— 函数
原文转自 一沙弥的世界 的博客·函数通常用于返回特定的数据。其实质是一个有名字的PL/SQL块,作为一个schema对象存储于数据库,可以被反复执行。函数通常被作为一个表达式来调用或存储过程的一个参数,具有返回值。 一、建立函数的语法 CREATE [ OR REPLACE ] FUNCTION function_name (argument1 [m原创 2012-04-14 19:58:19 · 1750 阅读 · 0 评论 -
PL/SQL1——语言基础
原文转自 一沙弥的世界 的博客PL/SQL是过程化的SQL语言,是ORACLE对SQL语言的扩展,在普通SQL语句的基础上增加了编程语言的特点。使得该语言不仅具有过程编程语言的特征,如循环、条件分支等。同时也具有对象编程语言的特征,如重载、继承等。 一、PL/SQL程序语言的组成 主要由块组成 一个块由三个基本部分组成:声明、执行体、异常处理原创 2012-04-14 16:03:27 · 1235 阅读 · 0 评论 -
PL/SQL2—— 流程控制
原文转自 一沙弥的世界 的博客 类似于高级语言,流程控制语句是PL/SQL语言的重要组成部分。这些流程控制语句使得PL/SQL加大了代码的灵活性和多样性,大大简化了程序的编写。下面将列出流程控制语句并给出具体事例。 一、顺序结构 按代码的书写顺序依次执行 --在下面的示例中将逐步执行代码 scott@ORCL> declare原创 2012-04-14 19:48:36 · 1178 阅读 · 0 评论 -
PL/SQL专家指南1——高级概念
1、WRAP函数 与 CREATE_WRAPPED过程详细的介绍先参照博客:http://blog.csdn.net/changyanmanman/article/details/80077572、条件编译http://blog.csdn.net/icbm/article/details/6794610http://www.dbconf.net/?p=708原创 2012-09-22 19:40:27 · 1449 阅读 · 0 评论 -
PL/SQL3—— 存储过程
原文转自 一沙弥的世界 的博客·存储过程子程序的一种类型,能够完成一些任务,作为schema对象存储于数据库。是一个有名字的PL/SQL代码块,支持接收或不接受参数,同时也支持参数输出。一个存储过程通常包含定于部分,执行部分,Exception部分,可以被其他子程序调用,也可以被重用。 一、过程定义 CREATE [OR REPLACE]PROCEDURE pr原创 2012-04-14 19:56:49 · 1388 阅读 · 0 评论 -
SQL基础1——select查询
原文转自 一沙弥的世界 的博客一、SQL 结构化查询语言 包括DDL(数据定义语言)、DCL(数据控制语言)、 DQL(数据查询语言)、DML(数据操纵语言) 二、SQL的特点 SQL 语句不区分大小写 SQL 语句能输入一行或多行 关键字不能整行缩写或分离 子句通常被放置在分开的行上 缩进可提高可读性原创 2011-11-13 15:49:01 · 1481 阅读 · 0 评论 -
动态sql 和静态sql 上篇
本文讲解基于Oracle高性能动态SQL程序开发。1.静态SQL与动态SQL:Oracle编译PL/SQL程序块分为两个种:其一为前期联编(early binding),即SQL语句在程序编译期间就已经确定,大多数的编译情况属于这种类型;另外一种是后期联编(late binding),即SQL语句只有在运行阶段才能建立,例如当查询条件为用户输入时,那么Oracl原创 2012-04-11 14:18:32 · 1504 阅读 · 0 评论 -
Application developer's guide
声明游标:1、每一个游标都需要虚拟内存空间,所以每个会话的游标数量上限是根据内存可用量来决定的(虽然在这里没有绝对的强调说你必须声明几个以内)2、对每一个会话,全系统的限制由初始化参数(名字叫 open_cursors)设定。这个参数存在于参数文件中。如:init.ora。。。 明确的创建一个游标对于预编译一个程序提供了很多的好处,提高游标的数量也会常常降低解析频率,提高性能。如果原创 2011-11-07 21:20:31 · 1426 阅读 · 0 评论 -
SQL基础2——过滤和排序
原文转自一沙弥的世界的博客:一、使用WHERE字句实现对数据的过滤 用法:SELECT *|{[DISTINCT] column|expression [alias],...} FROM table [WHERE condition(s)];二、多条件连接 AND 同时满足 OR 满足其中一个原创 2011-11-16 13:10:28 · 1695 阅读 · 0 评论 -
oracle中的sequence
在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方。 1、Create Sequence 你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限, CREATE SEQUENCE emp_seq INCREMENT BY 1 -- 每次加几个原创 2012-04-11 19:50:58 · 8427 阅读 · 0 评论 -
PL/SQL dev使用指南
1、通过pl/sql dev查看当前会话情况:2、查看数据库的语言参数原创 2013-08-03 17:26:19 · 3817 阅读 · 0 评论 -
解决plsql dev无法在win7-64bit中运行问题
介绍一下情况,我自本地电脑装了一个win7-64位操作系统,然后安装了64位的oracle client,准本远程连接到服务器端的数据库,因为现在需要用到plsql dev做开发,所以打算安装此软件,安装完成之后报错,说是需要安装32位的oracle client,考虑到我已安装了64位的客户端了,而且操作系统本来就是64位,所以不打算再安装32位的oracle client,怎么办呢?最后,原创 2013-07-23 16:47:13 · 4238 阅读 · 1 评论 -
oracle中的游标 包 集合 的学习总结
游标: 1、cursor_name%ROWCOUNT 表示游标影响了多少行,如:sql%rowcount中的sql是oracle的内部游标,rowcount的意思是之前的dml sql语句影响的多少行数据。如果是delete操作rowcount就是delete的数据,如果是insert,就是插入的数量...... 2、游标的目标变量(v_empno, v_sal)必须与游标selec原创 2012-04-11 20:18:52 · 2681 阅读 · 0 评论 -
标准SQL查询 总结练习
1、按照部门的编号,分组,求出每个部门的平均薪水?最高薪水?实现:SQL>select deptno,avg(sal) from emp group by deptno; DEPTNO AVG(SAL)---------- ---------- 10 2916.66667 20 2012.5 30 1562.85714原创 2012-02-16 11:29:53 · 3878 阅读 · 3 评论 -
oracle中的进制转换
转自:http://www.eygle.com/archives/2004/06/oracle_howto_convert.html1.16进制转换为10进制可以通过to_number函数实现 SQL> select to_number('19f','xxx') from dual;TO_NUMBER('19F','XXX')----------原创 2013-08-09 16:36:14 · 1614 阅读 · 0 评论 -
PL/SQL7——变量与SQL*Plus环境设置
http://blog.csdn.net/robinson_0612/article/details/60843761.SQL与PL/SQL代码终止符 SQL代码以";"来表示代码的终止 PL/SQL代码以"."来表示代码的终止,以"/"表示代码的执行 scott@ORCL> select * from emp where empno=7788;原创 2012-04-19 19:07:56 · 3242 阅读 · 0 评论 -
oracle 中常见的set命令
当管理的数据库比较多的时候,在sqlplus里切换就是一件麻烦的事。要非常小心,以防出错。可以修改sqlplus的提示符:SQL>,把这个改成我们用户和实例名,这样就不容易出错。先看一下Oracle自定义的参数:SQL>defineDEFINE _DATE = "11-MAY-11" (CHAR)DEFINE _CONNECT_IDENTIFIER = "dave1" (CHA原创 2012-09-23 21:26:33 · 2340 阅读 · 0 评论 -
plsql子程序参数传递
1、位置的,名字的,混合的参数传递:DECLAREemp_num NUMBER(6) := 120;bonus NUMBER(6) := 50;PROCEDURE raise_salary (emp_id NUMBER, amount原创 2012-04-11 19:53:42 · 2669 阅读 · 0 评论 -
PL/SQL0.1——块嵌套与变量范围
1、先对in , out ,in out(有个NOCOPY可以加速out 和in out 类型的模式的处理速度) 类型的参数有一个理解:declare in_string varchar2(100) :='this is my test string'; out_string varchar2(200); proced原创 2012-04-11 19:52:15 · 1835 阅读 · 0 评论 -
count 统计函数说明
本文整理自网络: 对于数据的汇总,是数据库经常用到的任务之一,除了我们通常使用的GROUP BY分组配合聚合函数对数据汇总,以及使用UNION ALL 对数据汇总之外,SQL还提供了 GROUP BY Col1,Col2.. WITH CUBE | ROLLUP,以及COMPUTE BY 等汇总方式,本文主要介绍了使用CUBE 与ROLLUP运算符来实现数据的分级汇总。IF O原创 2011-12-31 19:15:12 · 1727 阅读 · 0 评论 -
oracle中 查询时间管理
1、关于时间显示参数SQL> alter session set nls_timestamp_format = 'yyyy-mm-dd hh24:mi:ss';会话已更改。SQL> select systimestamp from dual;SYSTIMESTAMP-------------------------------------------------------原创 2012-02-17 20:52:29 · 1753 阅读 · 0 评论 -
oracle 中的递归查询
一、树型表结构: 节点ID 上级ID 节点名称 二、公式: select 节点ID,节点名称,level from 表 connect by prior 节点ID=上级节点ID start with 上级节点ID=节点值 说明: 1、常见的树形结构为公司组织机构、地区……原创 2013-08-03 19:11:27 · 2014 阅读 · 0 评论 -
动态sql 和静态sql 下篇
1、批量绑定让oracle 在对一组值进行sql操作时绑定一个变量,这一组数据可以是任何的plsql的聚合类型(联合数组,内嵌表,可变数组),集合元素必须是sql的数据类型,比如char date mumber。有三个句法支持动态批量绑定,EXECUTE IMMEDIATE , FETCH , FORALL; EXECUTE IMMEDIATE: 你可以用BULK COLLECT原创 2012-04-11 14:22:27 · 1633 阅读 · 0 评论 -
oracle 中的伪列和表
1、oracle的伪列oracle系统为了实现完整的关系数据库功能,系统专门提供了一组称为伪列(Pseudocolumn)的数据库列,这些列不是在建立对象时由我们完成的,而是在我们建立时由Oracle完成的。Oracle目前常见的伪列: currval 和 nextval 使用序列号的保留字 CURRVAL:返回当前sequence值原创 2012-04-11 12:45:08 · 4184 阅读 · 0 评论 -
oracle中的分析函数
原文转自:http://blog.csdn.net/tianlesoftware/article/details/4795632一. Analytic Functions 说明分析函数是oracle 8中引入的一个概念,为我们分析数据提供了一种简单高效的处理方式. 官方对分析函数的说明如下:Analytic functions compute an原创 2012-07-20 10:41:36 · 1926 阅读 · 0 评论 -
SQL 基础7—— 集合运算(UNION 与UNION ALL)
集合运算操作符可以将两个或多个查询返回的行组合起来,即集合属于纵向连接运算 一、常用的集合运算符 UNION ALL 返回各个查询检索出的所有的行,不过滤掉重复记录 UNION 返回各个查询检索出的过滤掉重复记录的所有行,即并集 INTERSECT 返回两个查询检索出的共有行,即交集 MINUS 返回将第二个查询检索出的行从第一个查询转载 2011-11-30 21:45:32 · 1578 阅读 · 0 评论 -
oracle 中的集合(联合数组 内嵌表 可变数组)
1、定义一个集合,让它作为一个函数或过程的形式参数,这样就可以传递这个集合类型的参数。 看下面的例子:定义一个过程参数--内嵌表 create or replace package personnel --定义一个包 as type staff_l原创 2012-04-11 20:20:04 · 2713 阅读 · 0 评论 -
SQL基础5——多表查询
/*一、多表查询 简言之,根据特定的连接条件从不同的表中获取所需的数据 笛卡尔集的产生条件: 省略连接条件 连接条件无效 第一个表中的所有行与第二个表中的所有行相连接 二、多表查询语法:*/ SELECT table1.column, table2.column FROM转载 2011-11-24 17:20:43 · 1723 阅读 · 0 评论 -
oracle开发之触发器
触发器吧。。。比较耗费资源的东东。。。如果能用自带的完整性约束或者检查约束之类的东西,那就不要用触发器了。。。如果一个触发器超过了60行,额。。那就用个存储过程,或者从一个触发器中调用一个触发器吧。。只有集中地,全局的时候,才用触发器,还有最后一点要注意,千万不要定义recursive触发器。。。哈哈,比如你在一个更新操作上加一个触发器,而这个触发器内包含一个更新操作,那就等着内存耗光吧。。。原创 2012-04-11 19:55:36 · 1389 阅读 · 0 评论 -
SQL 基础8.1——层次化查询(START BY ... CONNECT BY PRIOR)
层次化查询,即树型结构查询,是SQL中经常用到的功能之一,通常由根节点,父节点,子节点,叶节点组成,其语法如下: SELECT [LEVEL] ,column,expression,... FROM table_name [WHERE where_clause] [[START WITH start_condition] [CONNE转载 2011-12-02 11:02:41 · 1881 阅读 · 0 评论 -
SQL基础8.2——层次化查询(START BY ... CONNECT BY PRIOR)
今天在ITPUB看到的题目2、有如下信息:起始地 目的地 距离(公里)A B 1000A C 1100A D 900A E 400B D 300D F 600E A 400F G 1000C B 600请用SQL语句或一段代码写出从A出发,可达到的目的地(包括间接方式)。转载 2011-12-04 17:20:37 · 1538 阅读 · 0 评论 -
SQL 基础6—— 子查询
/*一、子查询 子查询就是位于SELECT、UPDATE、或DELETE语句中内部的查询 二、子查询的分类 单行子查询 返回零行或一行 多行子查询 返回一行或多行 多列子查询 返回多列 相关子查询 引用外部SQL语句中的一列或多列 嵌套子查询转载 2011-11-29 20:03:20 · 1538 阅读 · 0 评论 -
SQL基础3——常用函数
/*一、函数的分类 SQL函数一般分为两种 单行函数 基于单行的处理,一行产生一个结果 多行函数 基于多行的处理,对多行进行汇总,多行产生结果 二、函数形式 function_name [(arg1, arg2,...)] 三、常用的单行函数: 1. 字符函数: lower(x) 转小写 upper(转载 2011-11-19 20:26:38 · 1931 阅读 · 0 评论 -
SQL基础4——分组与分组函数
/*一、分组: 分组函数可以对行集进行操作,并且为每组给出一个结果。 使用group by column1,column2,..按columm1,column2进行分组,即column1,column2组合相同的值为一个组 二、常用分组函数: */ AVG([DISTINCT|ALL]n) -- 求平均值,忽略空值 COUNT({*|转载 2011-11-21 20:50:18 · 2009 阅读 · 0 评论