1.分区
2.java中调用子程序
1.索引的创建及其使用,分区必须与表同时创建
--分别创建表空间
space1,space2,space3
1.1范围分区
--创建表及其范围分区 create table stu ( id number, name varchar2(10), birth date ) partition by range(birth) ( partition p1 values less than (to_date('2007-10-1','yyyy-mm-dd')) tablespace space1, partition p2 values less than (to_date('2008-10-1','yyyy-mm-dd')) tablespace space2, partition p3 values less than (to_date('2009-10-1','yyyy-mm-dd')) tablespace space3 ); insert into students values(1,'ss',to_date('2007-10-1','yyyy-mm-dd')); insert into students values(1,'ss',to_date('2008-10-1','yyyy-mm-dd')); insert into students values(1,'ss',to_date('2009-10-1','yyyy-mm-dd')); insert into students values(1,'ss',to_date('2007-11-1','yyyy-mm-dd')); insert into students values(1,'ss',to_date('2010-12-1','yyyy-mm-dd'));
1.2列表分区
create table ad ( id number, ad varchar2(20) ) partition by list(ad) ( partition p1 values('上海') tablespace space1, partition p2 values('北京') tablespace space2 ); insert into ad values(1,'北京'); insert into ad values(2,'北京'); insert into ad values(3,'北京'); insert into ad values(4,'上海'); insert into ad values(5,'上海'); insert into ad values(6,'上海');
1.3散列分区
--创建表及其散列分区 create table num ( id number ) partition by hash(id) ( partition p1 tablespace space1, partition p2 tablespace space2 ) ; insert into num values(1); insert into num values(2); insert into num values(3); insert into num values(4); insert into num values(5); insert into num values(6);
1.4索引分区
--索引分区 --本地分区只能一个所以对应一个表空间 --全局索引分区可以1个索引对应多个表空间 create index index_id1 on num(id) local ( partition p1 tablespace space1, partition p2 tablespace space2 ); create index index_id on num(id) global partition by range(id) ( partition p1 values less than(4), partition p2 values less than(maxvalue) );
1.5使用分区
--增加分区 alter table student add partition p4 values less than(maxvalue) tablespace space4 ; --删除一个分区 alter table student drop partition p2; --查询分区信息 select * from user_tab_partitions;
2.java中调用函数与存储过程
package test; import hib.HibernateSessionFactory; import java.sql.CallableStatement; import java.sql.SQLException; import java.sql.Types; import java.util.List; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.Transaction; import org.junit.Test; import entity.Student; public class HibTest { /** * @param args */ public static void main(String[] args) { HibTest h=new HibTest(); h.procTest(); //h.funTest(); //h.search(); } @Test public void search(){ Session session =HibernateSessionFactory.getSession(); List<Student> list=session.createQuery("from Student as st").list(); System.out.println(list.size()); for(Student st:list){ System.out.print(st.getStuname()+" "); } session.close(); } public void addStu(){ // Session session =HibernateSessionFactory.getSession(); // Transaction tr=session.beginTransaction(); // Student stu=new Student(); // stu.setStuname("zhangdan"); // stu.setBirthday(new Date()); // session.save(stu); // tr.commit(); // // session.close(); } /** * oracle中的过程 * create or replace procedure mypro(num1 in out number,num2 in out number) as n number; begin n:=num1; num1:=num2; num2:=n; end; * */ public void procTest(){ Session session =HibernateSessionFactory.getSession(); CallableStatement cs=null; try { cs=session.connection().prepareCall("begin proc(?,?); end;"); //输入参数 cs.setInt(1, 10); cs.setInt(2, 20); //输出参数 cs.registerOutParameter(1, Types.NUMERIC); cs.registerOutParameter(2, Types.NUMERIC); Transaction tr=session.beginTransaction(); cs.execute(); tr.commit(); int x=cs.getInt(1); int y=cs.getInt(2); System.out.println(x); System.out.println(y); session.close(); } catch (HibernateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * oracle中的函数 * create or replace function myfun(n1 number,n2 varchar2) return varchar2 is n varchar2(10); begin select stuname into n from student where num=n1 and stuname=n2; return n; end; * */ public void funTest(){ Session session =HibernateSessionFactory.getSession(); CallableStatement cs=null; try { cs=session.connection().prepareCall("{? = call myfun(?,?)}"); cs.registerOutParameter(1, Types.VARCHAR); cs.setInt(2,2); cs.setString(3, "刘德华"); Transaction tr=session.beginTransaction(); cs.execute(); tr.commit(); String result=cs.getString(1); System.out.println("========="+result); session.close(); } catch (HibernateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }