- 2
- 0
- 约3.57千字
- 约 7页
- 2018-01-03 发布于河南
- 举报
数据库的修改
数据库的修改
增加删除表字段:
alter table 表名 add column 字段名 类型,
alter table 表名 drop column 字段名,
修改表字段名称:
alter table 表名 rename column oldname to new name;
创建视图的sql语句:
create view 视图名 as select ..
修改视图的sql 语句:
修要修改某个字段数据类型有number(5),变为number(5,2)型
要是没有数据的话直接用以下语句即可
alter table tb_test modify permile number(5,2);
但是有数据的话 就不能用上面方法了,
alter table tb_test add permile_temp number(5,2)
update tb_test set permile_temp=permile;
alter table drop column permile;
alter table test rename column permile_temp to permile;
这种方法会使列名发生变化,而且字段顺序增加 有可能发生行迁移,对应用程序会产生影响
以下方法是比较好的方法
不用使列名发生变化 也不会发生表迁移,但这个有个缺点是表要更新两次
如果数据量较大的话 产生的undo和redo更多 ,前提也是要停机做
要是不停机的话 ,也可以采用在线重定义方式来做
以下是脚本:
alter table tb_test add permile_temp number;
Add/modify columns
alter table tb_test modify PERMILE null;ITPUB个人空间
update tb_test set permile_temp=permile,permile=null;ITPUB个人空间
commit;
alter table tb_test modify permile number(5,2);
update tb_test set permile=permile_temp,permile_temp=null;
commit;
alter table tb_test drop column permile_temp;
alter table tb_test modify PERMILE not null;
select * from tb_test ;
oracle中的正则表达式:
select count(*) from v_prpduser t where REGEXP_LIKE(t.USERCODE,^[0-9]*$);
alter view 视图名 as select ....
查看索引例子
select CARD_SEQUENCE.NEXTVAL from dual有两个属性1,nextVal 2,Currval 下一值,当前值
调用函数
java中为:
public void callCheckCardProcedure(String cardNo) throws Exception
{
String strReturn = ;
Map map =new HashMap();
map.put(cardNo, String.valueOf(cardNo)) ;
//调用存储过程
try {
strReturn = cardService.callCheckProcedureService(map);
} catch (Exception e) {
e.printStackTrace();
}
if(!strReturn.equals(pass))
{
throw new Exception(strReturn);
}
}
dao中为:
public String callCheckProcedureDao(Map map) throws Exception{
return (String) this.insert(yccard.cardCheckProdure, map);
};
sqlmap中调用为:
select id=cardCheckProdure parameterClass=java.lang.String resultClass=java.lang.String


文档评论(0)