oracle数据库3
创建一个可用的数据库: create tablespace to_orders datafile '磁盘地址' size 10m autoextend on --满后自动添加 ......
然后创建一个用户 create user a_oe identified by xxxx --密码
default tablespace xxxx ---一般需要指定已创建表空间
给创建的用户权限 grant connect,resource to a_oe grant select,update,delete,insert on 表名 to a_oe --用户名
存储过程概念:(来自百度知道) 枯燥杂乱的网文不给你转了,用我自己的词汇给你组织一下这个概念吧: 你可以把存储过程当做:把一系列语句合并到一起的这么一个整体 我觉得举例说明比较好,给你个例子: 先将【表1】中ID号为50—2000的记录删除、 delete 表1 where ID > 50 and ID < 2000 正常情况下,以上两条语句分步执行就可以了,如果要用存储过程呢? 先建立存储过程(以下的语法为Sybase数据库的,其他数据库类同): create procedure PRC_TEST (@start_ID int,@end_ID int) 好了,执行这个语句,就将存储过程PRC_TEST提交到数据库里了,它有两个参数:start_ID int 和 end_ID,代表起始和终止ID号,类型为整数型int 怎么用这个存储过程呢? 这样执行:exc PRC_TEST 50,2000 执行时,它先得到了两个参数,50、2000,分别赋值给start_ID int 和 end_ID,然后按照这两个参数分步执行封装在存储过程里的那两条语句了。 如果你这样执行:exc PRC_TEST 220,8660 就是处理两个表中ID介于220—8660之间的记录了。你也许会问了,既然可以分步执行的几句SQL,为什么要费力的写成存储过程啊? 主要是(我的经验和认识): 1、使数据处理参数化,对经常使用的一系列SQL进行封装,使其成为一个存储过程的整体,在每次执行时只要更换执行参数即可,不用去改里面每句SQL的where子句 2、★★这个很重要★★,假设你要循环处理某些数据,例如需要使用“游标”、“Do…while…语句”…………时,就要用到存储过程(或触发器) ===================================================================== 最后给你转一个短文吧,这是书面上的概念: 创建一个储存过程 create or replace procedure find_smith( v_empno number ) is v_sal number(7,2) --将结果放进该变量中 begin select sal into v_sal from emp where empno=v_empno;
dbms_output.putline('smith的工资是'||v_sal);
end;
数据库的范围分区: create table orders3( id number(2) primary key,total_sal number(7,2),ord_date date ) partition by range(ord_date) ( partition p1 values less than(to_date('2014 10 6','yyyy-mm-dd')),partition p2 values less than(to_date('2015 10 6',partition p3 values less than(maxvalue) )
注意,要先建表再分区,不能直接分区,使用 数据库的间隔分区 create table orders( id number(2) primary key,ord_date date ) partition by range(ord_date) interval(numtoyminterval(1,'YEAR')) --根据n的数值来分区,两年分一次,自动分区 ( partition p1 values less than(to_date('2014 10 6','yyyy-mm-dd')) )
注意间隔分区是根据numtoyminteval(n,’xxx’)中的n来说明分区间隔,xxx可以是YEAR,MONTH来说明是按年俩分区还是按照月来分区,分区过后的分区名是隐藏的,所以需要查看用户的分区名 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |