温馨提示:您的每一次转载,体现了我写此文的意义!!!烦请您在转载时注明出处http://www.blogjava.net/sxyx2008/谢谢合作!!!

雪山飞鹄

温馨提示:您的每一次转载,体现了我写此文的意义!!!烦请您在转载时注明出处http://www.blogjava.net/sxyx2008/谢谢合作!!!

BlogJava 首页 新随笔 联系 聚合 管理
  215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks

#

1)JSON简介
2)JSON/LIST转换
3)JSON/MAP转换
4)JSON/动态Bean转换
5)JSON/静态Bean转换
6)JSON/XML输出

1.JSON简介
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,基于JavaScript,但是不仅仅限于此。
详情可以参考www.json.org
例如一段XML
<?xml version="1.0" encoding="utf-8"?>
 <shop>
  <name>饭店</name>
    <city>北京</city>
 </shop>
用JSON表示如下:
{
  "name":"饭店",
  "city":"北京"
}
XML的解析得考虑子节点父节点关系,而JSON的解析难度相当低,很多控件,尤其是ajax相关的数据交换很多都用json.

2)JSON/LIST转换
本教程解析采用的json-lib,官方网站为http://json-lib.sourceforge.net/,本教程参考官方教程
环境需要配置的jar如下
commons-beanutils和ezmorph控制反射
commons-collections是apachecommons的子项目,扩展了java集合类
commons-lang扩展了java.lang包
commons-logging日志类
xom是xml解析类,可以参考www.xom.nu
junit单元测试用的jar
json-lib核心jar
项目文件夹中拥有货物参数(Shop)和货物参数列表(ShopList)两个实体
Shop包含name和property两个字段,ShopList包含Shop的列表
对应的json是
String s = "[{name:'重量',property:'p1'},{name:'尺寸',property:'p2'},{name:'显卡类型',property:'p3'},{name:'硬盘容量',property:'p4'},{name:'处理器',property:'p5'},{name:'内存',property:'p6'},{name:'型号',property:'p7'},{name:'货号',property:'p8'},{name:'品牌',property:'p9'}]";
把这样的数据结构作为用户定义个人信息存入数据库可以达到个性化参数的作用,
比如shopex的数据库中很多表就是用的json数据类型。因为用户自己添加的参数的长度是不固定的
比如上述例子就拥有9个用户自定义的参数
当用户需要填写这些参数的时候,需要转化为list,然后在struts2的view去显示
完成的代码可以参考附件的ArrayUtil文件
核心代码仅仅就一行JSONArray jsonArray = JSONArray.fromObject(s);
得到这个jsonArray后要转化为ArrayList,需要用循环遍历,如下
for (int i = 0; i < jsonArray.size(); i++) {
   Object o = jsonArray.get(i);
   JSONObject jsonObject = JSONObject.fromObject(o);
   Shop Person = (Shop) JSONObject.toBean(jsonObject, Shop.class);
   list.add(Person);
}
然后得到的list就是普通的ArrayList了

3)JSON/MAP转换
当我们初始化完一个map,放入json可以直接放入
Map<String, String> map = new HashMap<String, String>();
map.put("name", "重量");
map.put("property", "p1");
JSONObject jsonObject = JSONObject.fromObject(map);
核心代码为
JSONObject jsonObject = JSONObject.fromObject(map);
JsonLib会自动映射
完成例子见附件MapUtil.java


4)JSON/动态Bean转换
所谓动态bean即是java运行的时候根据情况创建的,而不是程序员已经好了的Bean
JsonLib会自动根据Json格式数据创建字段,然后创建一个包含这些字段的Object
本例子中采用JUNIT做单元测试验证,见DynamicBean.java
String s = "{name:'重量',property:'p1'}";
JSONObject jsonObject = JSONObject.fromObject(s);
Object bean = JSONObject.toBean(jsonObject);
assertEquals(jsonObject.get("name"), PropertyUtils.getProperty(bean,"name"));
assertEquals(jsonObject.get("property"), PropertyUtils.getProperty(bean,"property"));


5)JSON/静态Bean转换(StaticBean.java)
JSONLIB在转换的时候会自动查找关系,比如子类和父类
例如JSON数据源
String s = "{'shopList':[{name:'重量',property:'p1'},{name:'尺寸',property:'p2'},{name:'显卡类型',property:'p3'},{name:'硬盘容量',property:'p4'},{name:'处理器',property:'p5'},{name:'内存',property:'p6'},{name:'型号',property:'p7'},{name:'货号',property:'p8'},{name:'品牌',property:'p9'}]}";
存入Map
map.put("shopList", Shop.class);
ShopList shopList = (ShopList) JSONObject.toBean(JSONObject.fromObject(s), ShopList.class, map);
JSONObject.toBean()方法的三个参数分别表示数据源对应的JSON对象,转化后的对象ShopList和数据源map
然后这样也可以取得ShopList
这种方法和动态转换的区别在于,动态转换仅仅只是转为Object
而静态转换是转换为已经定义过的实体类,会自动映射(这点类似Ibatis)

6)JSON/XML输出
如果自己用String的方法转化为XML输出要写很多代码,然后条用JSONLIB,核心代码仅仅一步
String xmlObject = xmlSerializer.write(object);
比如
String s = "{name:'重量',property:'p1'}";
XMLSerializer xmlSerializer = new XMLSerializer();
JSONObject object = JSONObject.fromObject(s);
String xmlObject = xmlSerializer.write(object);
System.out.println(xmlObject);

输出结果为
<?xml version="1.0" encoding="UTF-8"?>
<o>
  <name type="string">重量</name>
  <property type="string">p1</property>
</o>

posted @ 2010-07-11 09:24 雪山飞鹄 阅读(2899) | 评论 (2)编辑 收藏

xml文件结构:books.xml
<?xml version="1.0" encoding="UTF-8"?>
<root>
    
<book id="1">
        
<name>深入浅出extjs</name>
        
<author>张三</author>
        
<price>88</price>
    
</book>
    
<book id="2">
        
<name>锋利的jQuery</name>
        
<author>李四</author>
        
<price>99</price>
    
</book>
    
<book id="3">
        
<name>深入浅出flex</name>
        
<author>王五</author>
        
<price>108</price>
    
</book>
    
<book id="4">
        
<name>java编程思想</name>
        
<author>钱七</author>
        
<price>128</price>
    
</book>
</root>
页面代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>jquery解析xml</title>
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
    $(
function(){
        $.post('books.xml',
function(data){
            
//查找所有的book节点
            var s="";
            $(data).find('book').each(
function(i){
                
var id=$(this).attr('id');
                
var name=$(this).children('name').text();
                
var author=$(this).children('author').text();
                
var price=$(this).children('price').text();
                s
+=id+"&nbsp;&nbsp;&nbsp;&nbsp;"+name+"&nbsp;&nbsp;&nbsp;&nbsp;"+author+"&nbsp;&nbsp;&nbsp;&nbsp;"+price+"<br>";
            }
);
            $('#mydiv').html(s);
        }
);
    }
);
</script>
</head>
<body>
    
<div id='mydiv'></div>
</body>
</html>
效果图:
 
完整示例下载
posted @ 2010-07-10 12:28 雪山飞鹄 阅读(11866) | 评论 (6)编辑 收藏

        Flex 4 For Eclipse可以很方便的开发Flex应用,而且与Eclipse整合的好处是,Java开发人员可以很容易的使用它并调试,但这几天试用时间过期了,不能用了,着实郁闷,暂时找到以下方法可以很方便的破解注册提醒,只需要两步:
        1.下载附件中的包,生成Adboe Flex 4 For Eclipse注册码
        2.打开系统的hosts文件,加入127.0.0.1 activate.adobe.com(以免Eclipse重新启动的时候去官方检验注册码)
        好了,注册提醒框没有了,你可以正常进行Flex 4开发了!
        破解文件下载flashbuiler4keygen.rar
posted @ 2010-07-08 21:33 雪山飞鹄 阅读(3618) | 评论 (1)编辑 收藏

     摘要: 页面代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%@ page contentType="text/html;&nb...  阅读全文
posted @ 2010-07-01 18:07 雪山飞鹄 阅读(2382) | 评论 (0)编辑 收藏

     摘要: 环境需求:                 iText-2.1.7.jar              &n...  阅读全文
posted @ 2010-07-01 11:06 雪山飞鹄 阅读(4012) | 评论 (2)编辑 收藏

删除用户

drop user user_name cascade;

建立表空间

CREATE TABLESPACE data01
DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M
UNIFORM. SIZE 128k; #指定区尺寸为128k,如不指定,区尺寸默认为64k

删除表空间

DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;

一、建立表空间

CREATE TABLESPACE data01
DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M
UNIFORM. SIZE 128k; #指定区尺寸为128k,如不指定,区尺寸默认为64k

二、建立UNDO表空间

CREATE UNDO TABLESPACE UNDOTBS02
DATAFILE '/oracle/oradata/db/UNDOTBS02.dbf' SIZE 50M

#注意:在OPEN状态下某些时刻只能用一个UNDO表空间,如果要用新建的表空间,必须切换到

该表空间:

ALTER SYSTEM SET undo_tablespace=UNDOTBS02;

三、建立临时表空间

CREATE TEMPORARY TABLESPACE temp_data
TEMPFILE '/oracle/oradata/db/TEMP_DATA.dbf' SIZE 50M

四、改变表空间状态

1.使表空间脱机

ALTER TABLESPACE game OFFLINE;

如果是意外删除了数据文件,则必须带有RECOVER选项

ALTER TABLESPACE game OFFLINE FOR RECOVER;

2.使表空间联机

ALTER TABLESPACE game ONLINE;


3.使数据文件脱机

ALTER DATABASE DATAFILE 3 OFFLINE;

4.使数据文件联机

ALTER DATABASE DATAFILE 3 ONLINE;

5.使表空间只读

ALTER TABLESPACE game READ ONLY;

6.使表空间可读写

ALTER TABLESPACE game READ WRITE;

五、删除表空间

DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;

六、扩展表空间

首先查看表空间的名字和所属文件

select tablespace_name, file_id, file_name,
round(bytes/(1024*1024),0) total_space
from dba_data_files
order by tablespace_name;

1.增加数据文件
ALTER TABLESPACE game
ADD DATAFILE '/oracle/oradata/db/GAME02.dbf' SIZE 1000M;

2.手动增加数据文件尺寸
ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf'
RESIZE 4000M;

3.设定数据文件自动扩展
ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf
AUTOEXTEND ON NEXT 100M
MAXSIZE 10000M;

设定后查看表空间信息

SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,
(B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"
FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C
WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE

 

//创建临时表空间

create temporary tablespace zfmi_temp
tempfile 'D:\oracle\oradata\zfmi\zfmi_temp.dbf'
size 32m
autoextend on
next 32m maxsize 2048m
extent management local;

//tempfile参数必须有


//创建数据表空间

create tablespace zfmi
logging
datafile 'D:\oracle\oradata\zfmi\zfmi.dbf'
size 100m
autoextend on
next 32m maxsize 2048m
extent management local;

//datafile参数必须有


//删除用户以及用户所有的对象

drop user zfmi cascade;

//cascade参数是级联删除该用户所有对象,经常遇到如用户有对象而未加此参数则用户删不了的问题,所以习惯性的加此参数


//删除表空间
前提:删除表空间之前要确认该表空间没有被其他用户使用之后再做删除

drop tablespace zfmi including contents and datafiles cascade onstraints;

//including contents 删除表空间中的内容,如果删除表空间之前表空间中有内容,而未加此参数,表空间删不掉,所以习惯性的加此参数
//including datafiles 删除表空间中的数据文件
//cascade constraints 同时删除tablespace中表的外键参照

 

如果删除表空间之前删除了表空间文件,解决办法:

如果在清除表空间之前,先删除了表空间对应的数据文件,会造成数据库无法正常启动和关闭。
可使用如下方法恢复(此方法已经在oracle9i中验证通过):
下面的过程中,filename是已经被删除的数据文件,如果有多个,则需要多次执行;tablespace_name是相应的表空间的名称。
$ sqlplus /nolog
SQL> conn / as sysdba;
如果数据库已经启动,则需要先执行下面这行:
SQL> shutdown abort
SQL> startup mount
SQL> alter database datafile 'filename' offline drop;
SQL> alter database open;
SQL> drop tablespace tablespace_name including contents;


//创建用户并指定表空间

create user zfmi identified by zfmi
default tablespace zfmi temporary tablespace zfmi_temp;

//identified by 参数必须有


//授予message用户DBA角色的所有权限

GRANT DBA TO zfmi;


//给用户授予权限

grant connect,resource to zfmi; (db2:指定所有权限)

 

导入导出命令:

Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件, imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。

执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,
DOS中可以执行时由于 在oracle 8i 中 安装目录ora81BIN被设置为全局路径,
该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。
oracle用java编写,SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件有可能是被包装后的类文件。
SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类,完成导入导出功能。

下面介绍的是导入导出的实例。
数据导出:
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中
   exp system/manager@TEST file=d:daochu.dmp full=y
2 将数据库中system用户与sys用户的表导出
   exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)
3 将数据库中的表inner_notify、notify_staff_relat导出
    exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)

4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
   exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'"

上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。
也可以在上面命令后面 加上 compress=y 来实现。

数据的导入
1 将D:daochu.dmp 中的数据导入 TEST数据库中。
   imp system/manager@TEST file=d:daochu.dmp
   imp aichannel/aichannel@HUST full=y file=d:datanewsmgnt.dmp ignore=y
   上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
   在后面加上 ignore=y 就可以了。
2 将d:daochu.dmp中的表table1 导入
imp system/manager@TEST file=d:daochu.dmp tables=(table1)

基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。

注意:
操作者要有足够的权限,权限不够它会提示。
数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。

附录一:
给用户增加导入数据权限的操作
第一,启动sql*puls
第二,以system/manager登陆
第三,create user 用户名 IDENTIFIED BY 密码 (如果已经创建过用户,这步可以省略)
第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
   DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
      DBA,CONNECT,RESOURCE,CREATE SESSION TO 用户名字
第五, 运行-cmd-进入dmp文件所在的目录,
      imp userid=system/manager full=y file=*.dmp
      或者 imp userid=system/manager full=y file=filename.dmp

执行示例:
F:WorkOracle_Databackup>imp userid=test/test full=y file=inner_notify.dmp

屏幕显示
Import: Release 8.1.7.0.0 - Production on 星期四 2月 16 16:50:05 2006
(c) Copyright 2000 Oracle Corporation. All rights reserved.

连接到: Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production

经由常规路径导出由EXPORT:V08.01.07创建的文件
已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入
导出服务器使用UTF8 NCHAR 字符集 (可能的ncharset转换)
. 正在将AICHANNEL的对象导入到 AICHANNEL
. . 正在导入表                  "INNER_NOTIFY"          4行被导入
准备启用约束条件...
成功终止导入,但出现警告。


附录二:
Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的.
先建立import9.par,
然后,使用时命令如下:imp parfile=/filepath/import9.par
例 import9.par 内容如下:
        FROMUSER=TGPMS      
        TOUSER=TGPMS2     (注:把表的拥有者由FROMUSER改为TOUSER,FROMUSER和TOUSER的用户可以不同)         
        ROWS=Y
        INDEXES=Y
        GRANTS=Y
        CONSTRAINTS=Y
        BUFFER=409600
        file==/backup/ctgpc_20030623.dmp
        log==/backup/import_20030623.log

posted @ 2010-06-27 01:56 雪山飞鹄 阅读(964) | 评论 (0)编辑 收藏

数据字典dict总是属于Oracle用户sys的。
1、用户:
 select username from dba_users;
改口令
 alter user spgroup identified by spgtest;
2、表空间:
 select * from dba_data_files;
 select * from dba_tablespaces;//表空间
 select tablespace_name,sum(bytes), sum(blocks)
from dba_free_space group by tablespace_name;//空闲表空间
 select * from dba_data_files
where tablespace_name='RBS';//表空间对应的数据文件
 select * from dba_segments
where tablespace_name='INDEXS';
3、数据库对象:
 select * from dba_objects;
 CLUSTER、DATABASE LINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PACKAGE BODY、
 PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED、VIEW。
4、表:
 select * from dba_tables;
 analyze my_table compute statistics;->dba_tables后6列
 select extent_id,bytes from dba_extents
 where segment_name='CUSTOMERS' and segment_type='TABLE'
 order by extent_id;//表使用的extent的信息。segment_type='ROLLBACK'查看回滚段的空间分配信息
 列信息:
select distinct table_name
from user_tab_columns
where column_name='SO_TYPE_ID';
5、索引: 
 select * from dba_indexes;//索引,包括主键索引
 select * from dba_ind_columns;//索引列
 select i.index_name,i.uniqueness,c.column_name
from user_indexes i,user_ind_columns c
 where i.index_name=c.index_name
 and i.table_name ='ACC_NBR';//联接使用
6、序列:
 select * from dba_sequences;
7、视图:
 select * from dba_views;
 select * from all_views;
text 可用于查询视图生成的脚本
8、聚簇:
 select * from dba_clusters;
9、快照:
 select * from dba_snapshots;
快照、分区应存在相应的表空间。
10、同义词:
 select * from dba_synonyms
where table_owner='SPGROUP';
//if owner is PUBLIC,then the synonyms is a public synonym.
 if owner is one of users,then the synonyms is a private synonym.
11、数据库链:
 select * from dba_db_links;
在spbase下建数据库链
 create database link dbl_spnew
 connect to spnew identified by spnew using 'jhhx';
 insert into acc_nbr@dbl_spnew
 select * from acc_nbr where nxx_nbr='237' and line_nbr='8888';
12、触发器:
 select * from dba_trigers;
存储过程,函数从dba_objects查找。
其文本:select text from user_source where name='BOOK_SP_EXAMPLE';
建立出错:select * from user_errors;
oracle总是将存储过程,函数等软件放在SYSTEM表空间。
13、约束:
(1)约束是和表关联的,可在create table或alter table table_name add/drop/modify来建立、修改、删除约束。
可以临时禁止约束,如:
 alter table book_example
 disable constraint book_example_1;
 alter table book_example
 enable constraint book_example_1;
(2)主键和外键被称为表约束,而not null和unique之类的约束被称为列约束。通常将主键和外键作为单独的命名约束放在字段列表下面,而列约束可放在列定义的同一行,这样更具有可读性。
(3)列约束可从表定义看出,即describe;表约束即主键和外键,可从dba_constraints和dba_cons_columns 查。
 select * from user_constraints
 where table_name='BOOK_EXAMPLE';
 select owner,CONSTRAINT_NAME,TABLE_NAME
from user_constraints
where constraint_type='R'
order by table_name;
(4)定义约束可以无名(系统自动生成约束名)和自己定义约束名(特别是主键、外键)
如:create table book_example
(identifier number not null);
create table book_example
(identifier number constranit book_example_1 not null);
14、回滚段:
在所有的修改结果存入磁盘前,回滚段中保持恢复该事务所需的全部信息,必须以数据库发生的事务来相应确定其大小(DML语句才可回滚,create,drop,truncate等DDL不能回滚)。
回滚段数量=并发事务/4,但不能超过50;使每个回滚段大小足够处理一个完整的事务;
 create rollback segment r05
 tablespace rbs;
 create rollback segment rbs_cvt
 tablespace rbs
 storage(initial 1M next 500k);
使回滚段在线
 alter rollback segment r04 online;
用dba_extents,v$rollback_segs监测回滚段的大小和动态增长。
回滚段的区间信息
 select * from dba_extents
 where segment_type='ROLLBACK' and segment_name='RB1';
回滚段的段信息,其中bytes显示目前回滚段的字节数
 select * from dba_segments
where segment_type='ROLLBACK' and segment_name='RB1';
为事物指定回归段
 set transaction use rollback segment rbs_cvt
针对bytes可以使用回滚段回缩。
 alter rollback segment rbs_cvt shrink;
 select bytes,extents,max_extents from dba_segments
where segment_type='ROLLBACK' and segment_name='RBS_CVT';
回滚段的当前状态信息:
 select * from dba_rollback_segs
where segment_name='RB1';
比多回滚段状态status,回滚段所属实例instance_num
查优化值optimal
 select n.name,s.optsize
from v$rollname n,v$rollstat s
 where n.usn=s.usn;
回滚段中的数据
 set transaction use rollback segment rb1;/*回滚段名*/
 select n.name,s.writes
from v$rollname n,v$rollstat s
 where n.usn=s.usn;
当事务处理完毕,再次查询$rollstat,比较writes(回滚段条目字节数)差值,可确定事务的大小。
查询回滚段中的事务
 column rr heading 'RB Segment' format a18
 column us heading 'Username' format a15
 column os heading 'Os User' format a10
 column te heading 'Terminal' format a10
 select r.name rr,nvl(s.username,'no transaction') us,s.osuser os,s.terminal te
from v$lock l,v$session s,v$rollname r
 where l.sid=s.sid(+)
 and trunc(l.id1/65536)=R.USN
 and l.type='TX'
 and l.lmode=6
 order by r.name;
15、作业
查询作业信息
 select job,broken,next_date,interval,what from user_jobs;
 select job,broken,next_date,interval,what from dba_jobs;
查询正在运行的作业
 select * from dba_jobs_running;
使用包exec dbms_job.submit(:v_num,'a;',sysdate,'sysdate + (10/(24*60*60))')加入作业。间隔10秒钟
exec dbms_job.submit(:v_num,'a;',sysdate,'sysdate + (11/(24*60))')加入作业。间隔11分钟使用包exec dbms_job.remove(21)删除21号作业。
posted @ 2010-06-27 01:45 雪山飞鹄 阅读(286) | 评论 (0)编辑 收藏

1、创建数据库
CREATE DATABASE frk
AUTOMATIC STORAGE NO  ON
'C:\' USING CODESET UTF-8 TERRITORY CN COLLATE
USING SYSTEM PAGESIZE 32768
CATALOG TABLESPACE  MANAGED BY DATABASE
USING ( FILE 'E:\db2 data\frksysdectablespace' 51200 ) 
USER TABLESPACE  MANAGED BY DATABASE
USING ( FILE 'E:\db2 data\frksysusertablespace' 51200 )
TEMPORARY TABLESPACE  MANAGED BY DATABASE
USING ( FILE 'E:\db2 data\frksystemptablespace' 51200 ) ;
2、创建缓冲池
CONNECT TO FRK;
CREATE BUFFERPOOL BUFFER1 IMMEDIATE  SIZE 250 PAGESIZE 32 K ;
CREATE BUFFERPOOL BUFFER2 IMMEDIATE  SIZE 250 PAGESIZE 32 K ;
CREATE BUFFERPOOL BUFFER3 IMMEDIATE  SIZE 250 PAGESIZE 32 K ;
CREATE BUFFERPOOL BUFFER4 IMMEDIATE  SIZE 250 PAGESIZE 32 K ;
CONNECT RESET;
3、创建表空间
CONNECT TO FRK;
CREATE  REGULAR  TABLESPACE FRKREGTABLESPACE PAGESIZE 32 K  MANAGED BY DATABASE  USING ( FILE 'E:\db2 data\frkregtablespacedata' 16000 ) EXTENTSIZE 16 OVERHEAD 10.5 PREFETCHSIZE 16 TRANSFERRATE 0.14 BUFFERPOOL  BUFFER1  DROPPED TABLE RECOVERY ON;
CREATE  SYSTEM TEMPORARY  TABLESPACE FRKSYSTEMPTSPACE PAGESIZE 32 K  MANAGED BY DATABASE  USING ( FILE 'E:\db2 data\frmsystemtablespacedata' 6400 ) EXTENTSIZE 16 OVERHEAD 10.5 PREFETCHSIZE 16 TRANSFERRATE 0.14 BUFFERPOOL  BUFFER2 ;
CREATE  USER TEMPORARY  TABLESPACE FRKUSERTEMPTSPACE PAGESIZE 32 K  MANAGED BY DATABASE  USING ( FILE 'E:\db2 data\frkusertemptablespacedata' 6400 ) EXTENTSIZE 16 OVERHEAD 10.5 PREFETCHSIZE 16 TRANSFERRATE 0.14 BUFFERPOOL  BUFFER3 ;
CREATE  LARGE  TABLESPACE FRKLAGGERTSPACE PAGESIZE 32 K  MANAGED BY DATABASE  USING ( FILE 'E:\db2 data\frkloggertablespacedata' 16000 ) EXTENTSIZE 16 OVERHEAD 10.5 PREFETCHSIZE 16 TRANSFERRATE 0.14 BUFFERPOOL  BUFFER4 ;
CONNECT RESET;
4、创建表
CREATE TABLE abc(
  id integer NOT NULL ,
  name VARCHAR(180))
IN FRKREGTABLESPACE;
posted @ 2010-06-27 01:41 雪山飞鹄 阅读(2801) | 评论 (0)编辑 收藏

1、用户可以通过DB2的工具创建数据库
2、创建缓冲层 一般建三个32K页的缓冲池
3、创建三个表空间,系统表空间、用户表空间、常规表空间,这三个表空间分别使用刚才创建的缓冲池
4、创建数据库表
(1)无主键
create table helpDoConfg
(
   ID                   INTEGER ,
   IP                   VARCHAR(16),
   PORT                 VARCHAR(8),
   projectName        VARCHAR(16)
)  in webwfuserspace;
(2)主键自增长但不控制起点
create table helpDoConfg
(
   ID                   INTEGER                not null generated  as identity,
   IP                   VARCHAR(16),
   PORT                 VARCHAR(8),
   projectName        VARCHAR(16)
)  in webwfuserspace;
(3)主键自增长控制起点
create table helpDoConfg
(
   ID   INTEGER   NOT NULL  GENERATED BY DEFAULT AS IDENTITY (START WITH 20000, INCREMENT BY 1, CACHE 20, NO CYCLE,

NO ORDER),
   IP                   VARCHAR(16),
   PORT                 VARCHAR(8),
   projectName        VARCHAR(16)
)  in webwfuserspace;
posted @ 2010-06-27 01:40 雪山飞鹄 阅读(1772) | 评论 (0)编辑 收藏

ORACLE中,表空间是数据管理的基本方法,所有用户的对象要存放在表空间中,也就是用户有空间的使用权,才能创建用户对象.否则是不充许创建对象,因为就是想创建对象, 如表,索引等,也没有地方存放,Oracle会提示:没有存储配额.

  因此,在创建对象之前,首先要分配存储空间.
  分配存储,就要创建表空间:
  创建表空间示例如下:
create tablespace knowledgeuserspace logging datafile 'F:\OracleData\knowledge_data.dbf' size 20m autoextend on next 20m maxsize unlimited extent management

local uniform segment space management auto;

上面的语句分以下几部分:
第一: create tablespace knowledgeuserspace  创建一个名为 knowledgeuserspace  的表空间.
    对表空间的命名,遵守Oracle 的命名规范就可了.
   ORACLE可以创建的表空间有三种类型:
(1)TEMPORARY: 临时表空间,用于临时数据的存放;
创建临时表空间的语法如下:
CREATE TEMPORARY TABLESPACE "SAMPLE"......
   (2)UNDO : 还原表空间. 用于存入重做日志文件.
创建还原表空间的语法如下:
CREATE UNDO TABLESPACE "SAMPLE"......
(3)用户表空间: 最重要,也是用于存放用户数据表空间
    可以直接写成: CREATE TABLESPACE "SAMPLE"
TEMPORARY 和 UNDO 表空间是ORACLE 管理的特殊的表空间.只用于存放系统相关数据.
第二:   LOGGING 有 NOLOGGING 和 LOGGING 两个选项,
      NOLOGGING: 创建表空间时,不创建重做日志.
     LOGGING 和NOLOGGING正好相反, 就是在创建表空间时生成重做日志.
用NOLOGGING时,好处在于创建时不用生成日志,这样表空间的创建较快,但是没能日志,数据丢失后,不能恢复,但是一般我们在创建表空间时,是没有数据的,按通常的做法,是建完表

空间,并导入数据后,是要对数据做备份的,所以通常不需要表空间的创建日志,因此,在创建表空间时,选择 NOLOGGING,以加快表空间的创建速度.
第三: DATAFILE 用于指定数据文件的具体位置和大小.
如: datafile 'F:\OracleData\knowledge_data.dbf' size 20m
说明文件的存放位置是 'F:\OracleData\knowledge_data.dbf' size 20m , 文件的大小为20M.
如果有多个文件,可以用逗号隔开:
'F:\OracleData\knowledge_data.dbf' size 20m,     'F:\OracleData\knowledge_data1.dbf' size 20m
但是每个文件都需要指明大小.单位以指定的单位为准如 5M 或 500K.
对具体的文件,可以根据不同的需要,存放大不同的介质上,如磁盘阵列,以减少IO竟争.
指定文件名时,必须为绝对地址,不能使用相对地址.
第四: EXTENT MANAGEMENT LOCAL 存储区管理方法
在Oracle 8i以前,可以有两种选择,一种是在字典中管理(DICTIONARY),另一种是本地管理(LOCAL ),从9I开始,只能是本地管理方式.因为LOCAL 管理方式有很多优点.
在字典中管理(DICTIONARY): 将数据文件中的每一个存储单元做为一条记录,所以在做DM操作时,就会产生大量的对这个管理表的Delete和Update操作.做大量数据管理时,将会产生

很多的DM操作,严得的影响性能,同时,长时间对表数据的操作,会产生很多的磁盘碎片,这就是为什么要做磁盘整理的原因.
本地管理(LOCAL): 用二进制的方式管理磁盘,有很高的效率,同进能最大限度的使用磁盘. 同时能够自动跟踪记录临近空闲空间的情况,避免进行空闲区的合并操作。
第五: SEGMENT SPACE MANAGEMENT  
磁盘扩展管理方法:
SEGMENT SPACE MANAGEMENT: 使用该选项时区大小由系统自动确定。由于 Oracle 可确定各区的最佳大小,所以区大小是可变的。
UNIFORM SEGMENT SPACE MANAGEMENT:指定区大小,也可使用默认值 (1 MB)。
第六: 段空间的管理方式:
AUTO: 只能使用在本地管理的表空间中. 使用LOCAL管理表空间时,数据块中的空闲空间增加或减少后,其新状态都会在位图中反映出来。位图使 Oracle 管理空闲空间的行为更加

自动化,并为管理空闲空间提供了更好的性,但对含有LOB字段的表不能自动管理.
MANUAL: 目前已不用,主要是为向后兼容.
第七: 指定块大小. 可以具体指定表空间数据块的大小.
创建例子如下:
create tablespace knowledgeuserspace logging datafile 'F:\OracleData\knowledge_data.dbf' size 20m autoextend on next 20m maxsize unlimited extent management

local uniform segment space management auto;
SQL> /
表空间已创建。
要删除表空间进,可以
SQL> drop tablespace knowledgeuserspace;
表空间已丢弃。

创建表用、表空间、用户授权完成的过程:
--创建临时表空间
create temporary tablespace knowledge_temp  tempfile 'd:\OracleData\knowledge_temp.dbf' size 10m autoextend on next 10m maxsize unlimited extent management local;
--创建数据表空间
create tablespace knowledgeuserspace logging datafile 'd:\OracleData\knowledge_data.dbf' size 20m autoextend on next 20m maxsize unlimited extent management local uniform segment space management auto;
--创建用户并指定表空间
create user knowledge identified by knowledge default tablespace knowledgeuserspace temporary tablespace knowledge_temp;
--给用户授予权限
grant connect,resource,dba to knowledge;
--连接用户或用户登录
conn knowledge/knowledge;
posted @ 2010-06-27 01:38 雪山飞鹄 阅读(2608) | 评论 (0)编辑 收藏

仅列出标题
共22页: First 上一页 13 14 15 16 17 18 19 20 21 下一页 Last