众所周知,静态SQL的输出结构必须也是静态的.对于经典的行转列问题,如果行数不定导致输出的列数不定,标准的答案就是使用动态SQL, 到11G里面则有XML结果的PIVOT. 但是 oracle 10G 没有 PIVOT 函数怎么办,自己写一个不久有了.上代码 直接点. CREATE OR REPLACEtype PivotImpl_shx as object( ret_type anytype, -- The return type of the table function stmt varc…
一.函数 1. 函数的 helloworld: 返回一个 "helloworld--!" 的字符串 create or replace function helloworld return varchar2 is begin return 'helloworld--!'; end; 执行函数 begin dbms_output.put_line(helloworld()); end; 2. 定义带参数的函数: 两个数相加 create or replace function add_f…
这两天在学习函数,练习写一个判断是否为小数的函数,看起来蛮简单的,飞速写完很是得意,然后测了一下,发现差得好多呀,这个并不像想象那样简单,我得到的教训是,想要把一个需求哪怕再小的需求考虑周全,都不是件简单的事. 我的路还很长,但千里之行始于足下,努力学习,不断总结,持续提高,做自己喜欢做的事,享受快乐 …… # 写一个判断是小数的函数def is_float(s): s = str(s) if s.count('.') == 1: s_left = s.split('.')[0] s_right…
  JS高级群的日常!写一个从10到0的倒计时,用console.log打印,不可以用 setInterval!本来说好的研究avalonJS最后演变成了看着大神在那边互相比拼实力..   小森执行一个函数  没有全局变量 写一个从10到0的倒计时   用console.log打印  不可以用 setInterval   小白..额,可以多次调用setTimeout()吗     某个被打败的神Function fn(a){console.log(a--);if(a>=0)   Settimeo…
PHP写一个双向队列,其实是在考察PHP几个内置数组的函数 用PHP写一个双向队列 <?php class Deque{ public $queue = array(); /** * 尾部入对 * @param [type] $value [description] */ public function addLast($value){ return array_push($this->queue,$value); } /** * 尾部出队 * @return [type] [descript…
在日常使用中,经常遇到这样的情况,需要将数据库中行转化成列显示,如 转化为 这个时候,我们就需要使用pivot函数 百度后,参考网址http://www.2cto.com/database/201501/367164.html ,完成了以下操作 with temp as( select '四川省' nation ,'成都市' city,'第一' ranking from dual union all select '四川省' nation ,'绵阳市' city,'第二' ranking fro…
转: Oracle中使用Table()函数解决For循环中不写成 in (l_idlist)形式的问题 在实际PL/SQL编程中,我们要对动态取出来的一组数据,进行For循环处理,其基本程序逻辑为: 1 2 3 4 5 6 7 8 9 10 11 12 create or replace procedure getidlist is   l_idlist varchar2(200); begin   l_idlist:='1,2,3,4';   for brrs in (select * fro…
pivot函数:行转列函数: 语法:pivot(任一聚合函数 for 需专列的值所在列名 in (需转为列名的值)):unpivot函数:列转行函数: 语法:unpivot(新增值所在列的列名 for 新增列转为行后所在列的列名 in (需转为行的列名)):执行原理:将pivot函数或unpivot函数接在查询结果集的后面.相当于对结果集进行处理. 转换示例: 1.原始表数据: sql语句:select * from T_PIVOT_TEST_1 ; 2.用pivot函数进行行转列.其中用聚合函…
ASCII(x1) [功能]:返回字符表达式最左端字符的ASCII 码值. [参数]:x1,字符表达式 [返回]:数值型 [示例] SQL> select ascii('A') A,ascii('a') a,ascii(' ') space,ascii('示') hz from dual; A A SPACE hz --------- --------- --------- --------- 65 97 32 51902 [说明]在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它…
内容提要 oracle 10g 增加的正则表达式函数有以下四种: regexp_like() --返回满足条件的字段 regexp_instr() --返回满足条件的字符或字符串的位置 regexp_replace() --返回替换后的字符串 regexp_substr() --返回满足条件的字符或字符串这四个函数的功能分别对应传统sql的 like操作符 和 instr .replace .substr函数,在一般的.不怎么复杂的模式匹配中,使用传统的sql函数就能满足,当需要实现的操作比较复…
(1)   函数:  over()的作用及用法:    -- 分区(分组)求和. sum() over( partition by column1 order by column2 )主要用来对某个字段值进行逐步累加,连续求和; 排名函数:RANK ( ) OVER ( [query_partition_clause] order_by_clause ) --DENSE_RANK ( ) OVER ( [query_partition_clause] order_by_clause )可实现按指…
原文地址:http://www.cnblogs.com/gnielee/archive/2010/09/07/access-oracle-from-sqlserver.html 之前写过一篇关于SQL Server 访问MySQL 数据库的文章,最近正好又遇到需要访问Oracle 的情况,将配置过程记录下来也供大家参考. 准备工作 事先在需要访问Oracle 数据库的主机上完成以下工作: 1. 安装SQL Server 数据库:SQL Server 2008 R2 Express 2. 安装Or…
昨天在测试的时候发现,开发人员写的一段程序放在开发库中是好的,但是放在测试库中就会有问题.开发人员一直找不到问题的原因在哪里.于是就花了点时间协助开发人员来找问题的根本原因. 通过一些技术手段,定位到问题是由一个SQL语句引起的. SQL语句如下: WITH PXQ_TASK_TEMP AS (SELECT A.DISTRIBUTE_DATE,          A.APP_NO,          A.TASK_ID,          A.TASK_NO,          A.ACTUAL…
达梦数据库(DM6)和ORACLE 10g的异同点    https://bbs.aliyun.com/detail/351337.html   花花浪子 级别: 小白 发帖 0 云币 -41 加关注 写私信   只看楼主 更多操作楼主  发表于: 2017-03-24     比较惭愧,在当上本版版主后一直没有贡献一篇有营养的帖子,由于手上正好有达梦数据 DM6的版本,加上对ORACLE 10G比较熟悉,所以就这2种数据库的异同点做一个对比,也请大家不吝赐教. 对于达梦数据库,因为目前的工作是…
在软件开发过程中程序员经常会遇到字符串的拼接和拆分工作. 以java开发为例: 前台传入字符串拼接形式的一个JSON数据,如:"1001,1002,1003",这可能代表了一组序号. 程序员需要将序号转名称后按照相同的格式输出,如:“张三.李四.王五”. Java程序员通用的做法是在service层将接收的"1001,1002,1003"拆分(使用java split函数),然后封装List,将List传递给DAO, 再传递给ORM持久层的xml调用sql执行,sq…
要了解impdp,请先了解导出,我之前作过导出的笔记:oracle 10g数据泵之expdp.这两个笔记也许只对程序员有用,通常用于把正式区的数据导入到测试区,对数据库管理员也许帮助不大,他们使用这些工具大多是用于数据备份. impdp可以将数据加载到整个数据库.特定的方案(也就是用户).特定的表空间或者特定的表,也可以将表空间传输到数据库.impdp支持网络模式操作,即从另一个数据库加载数据. 使用impdp导入数据1.指定转储文件(存放导出数据的文件)存放的目录SQL>connect sys…
1. 安装准备阶段 1.1 安装Oracle环境 本例使用X-Manager来实现与Linux系统的连接,本例使用的所有命令和操作都是在X-Manager下进行.X-Manager安装完成后的配置方法如下: 1. 打开X-Manager的X-Shell 2. 点击New,新建一个连接地址,设置完成后,点击OK 3. 使用用户名,密码进行登录,登录完成后,进入如下图所示画面即成功连接到Linux系统 4. 4 4. 将下载的Oracle数据库的安装包10201_database_linux_x86…
1.判断当前节点是否叶子节点 在 Oracle 10g 中,还有其他更多关于层次查询的新特性 .例如,有的时候用户更关心的是每个层次分支中等级最低的内容.那么你就可以利用伪列函数CONNECT_BY_ISLEAF来判断当前行是不是叶子.如果是叶子就会在伪列中显示“1”,如果不是叶子而是一个分支(例如当前内容是其他行的父亲)就显示“0”. 2.取当前节点的根节点.(CONNECT_BY_ROOT跟在列名前面使用) 在Oracle 10g 中还有一个新操作――CONNECT_BY_ROOT. 它用在…
Oracle 10g及pro*c相关问题及解决方法 2008年08月21日 星期四 上午 11:21 最近一直在进行ORACLE 10g和PRO*C的学习. 其中遇到了不少的问题: 现列于此,已备他用. [注:我的linux版本是RHEL 5,Oracle版本是10g] 1.在ORACLE 10g 安装准备的过程中:缺少libXp.so.6依赖 上网搜过不少文章,但是都不是很好的解决 我自己摸索出一个解决方法: 在RHEL5的安装盘中找到libXp-1.0.0-8.i386.rpm,进行安装后,…
一.安装系统 首先安装Linux系统,根据Oracle官方文档的建议,在机器内存小于1G的情况下,swap分区大小应该设置为内存的2倍大,若内存大于2G则swap分区设置为与内存大小一样. 为防止Oracle安装过程中出现乱码,建议使用英文作为系统语言,进行Oracle的安装工作 二.安装Oracle前的系统准备工作 1.检查需要的软件包 可以使用rpm -qa|grep 软件包关键词命令进行检测,一般情况下会需要手动安装如下的软件包: From RedHat AS5 Disk 1(32 Bit…
DataGuard为企业数据的高可用性,数据安全以及灾难恢复提供支持,一般由一个primary db与几个物理或逻辑standby db组成一个DataGuard配置. 系统环境 操作系统为windows server 2003 r2 enterprise x64 edition service pack 2,database为oracle 10g 10.2.0.4 enterprise x64 edition.服务器均为AMD64架构,主机RAID5本地硬盘加RAID1光纤盘阵. primar…
p { margin-bottom: 0.25cm; direction: ltr; color: rgb(0, 0, 0); line-height: 120%; orphans: 2; widows: 2 } p.western { font-family: "宋体", "SimSun"; font-size: 12pt } p.cjk { font-family: "宋体", "SimSun"; font-size: 1…
一.位图索引 我将使用一个例子,来描述位图索引的存储,并分析它的优点. Table :Loans 放贷信息 ID userId 行业投向 币种 证件类型 还本付息方式 状态 1 1 农业 人民币 身份证 等额本息还款法 已上报 2 2 农业 人民币 身份证 等本还款法 未上报 3 1 工业 人民币 护照 按季计息到期还本法 已上报 4 2 个体 人民币 身份证 等本还款法 已上报 5 5 其他 人民币 身份证 按月计息到期还本法 未上报 我对行业投向,和还本付息方式添加了位图索引 create…
文章转载至:http://blog.csdn.net/wzy0623/article/details/1644049 如果,有侵犯您权益的地方,烦请及时的告知我,我会即刻停止侵权行为 Oracle 10g提供了几个函数:CONNECT_BY_ISLEAF.CONNECT_BY_ROOT.CONNECT_BY_PATH,对树有了更加强大的支持,但是在10g之前,我们没有这些函数, 该如何实现CONNECT_BY_ISLEAF.CONNECT_BY_ROOT这个函数的功能,下面我们介绍下使用分析函数…
安装64位Oracle 10g超详细教程 1. 安装准备阶段 1.1 安装Oracle环境 经过上一篇博文的过程,已经完成了对Linux系统的安装,本例使用X-Manager来实现与Linux系统的连接,本例使用的所有命令和操作都是在X-Manager下进行.X-Manager安装完成后的配置方法如下: 1.  打开X-Manager的X-Shell 2. 点击New,新建一个连接地址,设置完成后,点击OK3.  使用用户名,密码进行登录,登录完成后,进入如下图所示画面即成功连接到Linux系统…
一.时间处理函数 trunc(sysdate) 返回日期 to_date() to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') to_number() 转为数字 二.字符串处理函数 substr(bag.serialid, 0, 13) 截取字符串 regexp_substr(i_sBloodSubType, '[^,]+', 1, level) 正则 regexp_replace(i_sBloodSubType, '[^,]+', '') regexp_like…
新博客文章链接,欢迎大家评论探讨 概述 存储过程和存储函数是指存储在数据库中供所有用户程序调用的子程序叫存储过程.存储函数. 异同点: 存储过程和存储函数的相同点:完成特定功能的程序. 存储过程和存储函数的区别:是否用return语句返回值. 存储过程的创建和调用 第一个存储过程:打印 hello world create or replace procedure sayhelloword as -- 说明部分,as一定要写 begin dbms_output.put_line('Hello W…
最近遇到一个需求,将查询出的数据按照地区分组,随机取出每个区域的2条数据,这里用到了oracle的分析和开窗函数: 最终写出的sql如下: select * from (select region,row_number() over(partition by region order by DBMS_RANDOM.random) rnfrom T_PROCURE_REVIEW_EXPERT) where rn < 3 什么是分析函数(partition by): 分析函数是Oracle专门用于解…
 一   .列转行 创建所需的数据 CREATE TABLE [StudentScores]( [UserName] NVARCHAR(20), --学生姓名 [Subject] NVARCHAR(30), --科目 [Score] FLOAT, --成绩) INSERT INTO [StudentScores] SELECT '张三', '语文', 50INSERT INTO [StudentScores] SELECT '张三', '数学', 90INSERT INTO [StudentSc…
我们在写Sql语句的时候没经常会遇到将查询结果行转列,列转行的需求,拼接sql字符串,然后使用sp_executesql执行sql字符串是比较常规的一种做法.但是这样做实现起来非常复杂,而在SqlServer2005中我们有了PIVOT/UNPIVOT函数可以快速实现行转列和列转行的操作. PIVOT函数,行转列 PIVOT函数的格式如下 PIVOT(<聚合函数>([聚合列值]) FOR [行转列前的列名] IN([行转列后的列名1],[行转列后的列名2],[行转列后的列名3],.......…