`
luogen33
  • 浏览: 80647 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

DB2 数组

阅读更多
CREATE TYPE IDList AS INTEGER ARRAY[1000];
CREATE TYPE Projects AS VARCHAR(100) ARRAY[50];
CREATE TYPE Resumes AS XML ARRAY[];


分享到:
评论
7 楼 luogen33 2012-05-05  
data_studio.zip
6 楼 luogen33 2012-05-03  
http://lindows.iteye.com/blog/216559
5 楼 luogen33 2012-05-03  
#!/bin/sh
# published time : 2004/07/23 18:00

# Define the username and password used for logging in to the Oracle.
ACCOUNT=mmsc
PASSWORD=mmsc
SID=oracle9

# System path
APPHOME=`dirname $0`
if [ $APPHOME = "." ]; then
   APPHOME=`pwd`
fi
cd $APPHOME

# Execute the import operation
cat createdb.sql|sqlplus $ACCOUNT/$PASSWORD@$SID
4 楼 luogen33 2012-05-02  
#2楼 得分:0回复于:2008-10-28 13:36:33--这是sql server的字符串分解函数
SQL code/*
功能:实现split功能的函数
*/

create function dbo.fn_split
(
@inputstr varchar(8000),
@seprator varchar(10)
)
returns @temp table (a varchar(200))
as

begin
declare @i int

set @inputstr = rtrim(ltrim(@inputstr))
set @i = charindex(@seprator, @inputstr)

while @i >= 1
begin
insert @temp values(left(@inputstr, @i - 1))

set @inputstr = substring(@inputstr, @i + 1, len(@inputstr) - @i)
set @i = charindex(@seprator, @inputstr)
end

if @inputstr <> '\'
insert @temp values(@inputstr)

return
end
go

--调用

declare @s varchar(1000)

set @s='1,2,3,4,5,6,7,8,55'

select * from dbo.fn_split(@s,',')

drop function dbo.fn_split

3 楼 luogen33 2012-05-02  
Example 2

这个例子,我们使用2个数组类型(intArray 和 stringArray),使用一个包含列(id 和 name)的 persons 表。 存储过程 processPersons 添加3个人到 persons表, 并返回person名字的数组,按id排序,名字中包含字母 'o'。 3个persons 的 id 和 name 作为数组元素(ids 和 names)添加到数组中。这些数组使用UNNEST 函数,将数组数据以包含2列数据的表的表达形式表达,并插入到persons 表中。最后使用ARRAY_AGG函数将数据汇集返回给输出参数。

create type intArray as integer array[100] @

create type stringArray as varchar(10) array[100] @


create table persons (id integer, name varchar(10)) @

insert into persons values(2, 'Tom') @

insert into persons values(4, 'Jill') @

insert into persons values(1, 'Joe') @

insert into persons values(3, 'Mary') @


create procedure processPersons(out witho stringArray)

begin

declare ids intArray;

declare names stringArray;

set ids = ARRAY[5,6,7];

set names = ARRAY['Bob', 'Ann', 'Sue'];

insert into persons(id, name) (select T.i, T.n from UNNEST(ids, names) as T(i, n));

set witho = (select array_agg(name order by id)

from persons

where name like '%o%');

end @

1
2 楼 luogen33 2012-05-02  
Example 1

这个例子包含2个存储过程, sum 和 main. 存储过程 main 建立一个含有6个元素(integer)的数组。传递这个数组给存储过程sum, 计算出所有元素值的和并返回给调用存储过程 main. 存储过程 sum 说明了array subindexing 和CARDINALITY 函数的用法.

create type intArray as integer array[100] @


create procedure sum(in numList intArray, out total integer)

begin

declare i, n integer;

set n = CARDINALITY(numList);

set i = 1;

set total = 0;

while (i < n) do

set total = total + numList[i];

set i = i + 1;

end while;

end @


create procedure main(out total integer)

begin

declare numList intArray;

set numList = ARRAY[1,2,3,4,5,6];

call sum(numList, total);

end @

1 楼 luogen33 2012-05-02  
清单 9. 数组应用典范




//Create a table "bonus_temp" to store employee ID and corresponding bonus.
CREATE TABLE bonus_temp (empno varchar(6), bonus double)
//Create ARRAY types to store the values for employee ID, bonus and projects.
CREATE TYPE projects AS VARCHAR(20) ARRAY[10]
//Create the ARRAY type "employee"
CREATE TYPE employees AS VARCHAR(6) ARRAY[20]
//Create the ARRAY type "bonus"
CREATE TYPE bonus AS DOUBLE ARRAY[20]

//Create a stored procedure to calculate the bonus
CREATE PROCEDURE bonus_calculate (IN projs projects, IN percentage integer)
BEGIN
DECLARE emp_array employees;
DECLARE bonus_array bonus;

-- Select the IDs and corresponding bonus in corresponding ARRAY type
-- "employees" and "bonus" using aggregate function
-- ARRAY_AGG.
SELECT cast(array_agg(employee.empno) AS employees),
       cast(array_agg(.10*salary) AS bonus) INTO emp_array,bonus_array 
  FROM vempprojact, unnest(projs) AS P(id), employee
  WHERE P.id=vempprojact.projno AND employee.empno=vempprojact.empno;

-- Use UNNEST function to  the ARRAY elements  ARRAY
-- variables and  the same in "bonus_temp" table.
INSERT INTO bonus_temp
   SELECT T.empno, T.bonus
     FROM unnest(emp_array, bonus_array)
     WITH ORDINALITY AS T(empno,bonus, idx);
END

--Call the stored procedure to calculate the bonus.Input to this stored procedure is the
--ARRAY of all projects which are applicable for bonus

Call bonus_calculate(ARRAY[""AD3111"", ""IF1000"", ""MA2111""], 10)

--Select the data  the table "bonus_temp"

相关推荐

    Oracle 11g Pro*C/C++ 编程艺术中文版

    本书不仅介绍了各种类型Pro*C/C++应用的开发方法,而且还介绍了Oracle 11g在Pro*C/C++方面所提供的各种新特征,包括使用大纲固定执行计划、DB2数组插入和数组提取、隐含缓冲区插入、动态SQL语句缓存等。通过学习本书...

    C++编程艺术清晰版, 开发数据库应用

    本书不仅介绍了各种类型Pro*C/C++应用的开发方法,而且还介绍了Oracle 11g在Pro*C/C++方面所提供的各种新特征,包括使用大纲固定执行计划、DB2数组插入和数组提取、隐含缓冲区插入、动态SQL语句缓存等。 通过学习...

    laravel-db2doc:Laravel Db2Doc使您可以将数据库架构生成为markdown或JSON格式

    Laravel Db2Doc使您能够将数据库架构生成为markdown或JSON格式。 安装 为了在您的Laravel项目中安装cleaniquecoders/laravel-db2doc ,只需从终端运行composer require命令: $ composer require cleaniquecoders/...

    catdim:取消连接数组并沿其他维度连接。-matlab开发

    db1,db2;...] 大小为 [n,2] 的数组。 沿维度 da1 取消连接数组 A 并沿 da2 连接, 然后 db1 等等。 最后挤压结果以去除单一尺寸。 用于重塑多维数组以显示它,例如使用imagesc。 例子: a=[1,2,3;4,5,6]; a=猫(3,a...

    IBMi:IBMi的DB2查询和程序

    IBMi DB2查询和其他用于IBMi的工具DTASRCSP.sql-按顺序获取存储过程引用的表/程序的列表,该列表/程序出现在作业的库列表中使用DSPPGMREF的输出确定程序对象引用的对象,然后使用存储过程以与库列表中出现的顺序相同...

    day019-io笔记和代码.rar

    * mysql、oracle、DB2 :UTF-8 * * 开发工具:UTF-8 * 2. 文本文件用统一的字符集 且用字符流读取和写出文本相关文件(最常用) * 3. 用一个大的字节数组(一般不用) 6. 转换...

    chromatic:色标

    色度的 彩色音乐音阶,以任意长度递增或递减。 这是一个低级库,几乎是一个实验。 也许您会更喜欢 用法 要求模块: npm i --save chromatic并使用它: ... 从给定的根开始返回一个色阶数组(音符数组)。 如

    matlab小动物图形代码-Remote_sensing-GIS:遥感GIS

    matlab小动物图形代码很棒的地理空间 一长串的地理空间分析工具。 地理空间分析,或仅仅是空间分析,是一种将统计分析和其他分析...-数组数据库,允许存储和查询大规模多维数组,例如出现在地球,太空和生命科学等领

    matlab小动物图形代码--Awesome-Geospatial:一长串的地理空间工具和资源

    matlab小动物图形代码很棒的地理空间 一长串的地理空间分析工具。 地理空间分析,或仅仅是空间分析,是一种将统计分析和其他分析...-数组数据库,允许存储和查询大规模多维数组,例如出现在地球,太空和生命科学等领

    matlab离散傅里叶变换平滑代码-awesome-geospatial:真骨-

    -数组数据库,允许存储和查询大规模多维数组,例如出现在地球,太空和生命科学等领域的传感器,图像,模拟和统计数据。 -阵列数据库设计用于科学,地理空间,金融和工业应用中常见的多维数据管理和分析。 -一个免费...

    php网络开发完全手册

    13.3.4 DB2 207 13.3.5 SQL Server 207 13.4 SQL语言简介 207 13.5 常见的数据库设计问题 208 13.6 关系型数据库的设计原则 209 13.6.1 第一范式(1NF) 209 13.6.2 第二范式(2NF) 209 13.6.3 第三范式(3NF) 210...

    MySQL学习笔记 | 01-为什么要使用数据库|data-455890.pdf

    数组 链表 结构体 …… 数据存储在内存中,程序运行结束数据丢失,断电数据丢失。 文件 数据存储在硬盘中,掉电不丢失,但是数据管理起来困难 数据库存储数据的优势 数据掉电不丢失 有完整的管理系统,管理方便 2. ...

    MySQL学习基础

    MySQL数据库学习 ...常见数据库管理系统:mysql,Oracle,DB2,sqlServer等; 1.保存数据的容器:数组,集合,文件….. 2.数据库的好处:实现数据持久化,使用完整的管理系统统一管理,易于查询; SQL的优点:  

    cloud-db-retrieve-backend:后端服务以检索CloudDBLocalDB支持的数据库

    CloudDB检索后端这是一个NodeJS后端服务,可从CloudDB上的远程端点检索活动的数据库代理,以及将用于LiferayUP!上本地安装的受支持数据库的列表LiferayUP!...例如: [ 'DB2-11.5', 'mariadb-10', 'mssql-2017', '

    js操作二级联动实现代码

    主要用二维数组来存储数据。结构如下: a[父编号]=[[子编号1,子名称1],[子编号2,子名称2],[子编号3,子名称3],……]; 首先用父编号获取所有的子数据,在把子数据的编号及名称绑定在dropdown中 第一步 二级联动...

    Mysql数据库设计三范式实例解析

    即表的列的具有原子性,不可再分解,即列的信息,不能分解, 只要数据库是关系型数据库(mysql/oracle/db2/informix/sysbase/sql server),就自动的满足1NF。数据库表的每一列都是不可分割的原子数据项,而不能是集合,...

    MySQL三范式

    即表的列的具有原子性,不可再分解,即列的信息,不能分解, 只要数据库是关系型数据库(mysql/oracle/db2/informix/sysbase/sql server),就自动的满足1NF。数据库表的每一列都是不可分割的原子数据项,而不能是集合,...

    PHP5 完整官方 中文教程

    Arrays — Array 数组函数 Aspell — Aspell 函数(已废弃) BBCode — BBCode Functions BC math — BC math 高精度数学函数 bcompiler — BCompiler PHP 字节码编译器 Bzip2 — Bzip2 压缩函数 Calendar — ...

    PHP5中文参考手册

    Arrays — Array 数组函数 Aspell — Aspell 函数(已废弃) BBCode — BBCode Functions BC math — BC math 高精度数学函数 bcompiler — BCompiler PHP 字节码编译器 Bzip2 — Bzip2 压缩函数 Calendar — ...

    xmljava系统源码-rexdb:数据库

    xml java系统源码 网站: 下载: | maven &lt;groupId&gt;org.rex-soft ...ORM映射:支持数组、Map和任意Java对象; 数据源:内置连接池,支持第三方数据源和JNDI; 方言:自动分页,支持Oracle、DB2、SQL Ser

Global site tag (gtag.js) - Google Analytics