1:服务启动问题
这个问题发生多次了,那个毛网管没事又让人改计算名称,oracle久没开了也没在意,oracle服务启动总失败,折腾后才发现,于是把计算机名称改回去,重启电脑,再启用服务,正常。
2:索引问题
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
数据导到oracle后,发现一些简单的查询变的相当的慢如:
select id,username,title from blog_content where userid=111 order by id desc
后来经网页点拔,给title加上索引就快了:“select中的放在包含索引(oracle中称覆盖索引)”
后来其它查询慢的,全给加索引,速度才上去,看来搞oracle不搞索引,是没法玩的。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiZpdmLlR2bjlHcvN2LcNXZnFWbp9CXt92YuM3ZvxmYuNmLu9Wbt92Yvw1LcpDc0RHaiojIsJye.gif)
3:子查询语句问题
正常代码:
select count(*) as usercount,
(select count(*) from blog_content where typeid=0) as articlecount
from blog_user
此语句在access、mssql、sqlite、mysql下皆正常,唯独 oracle不成,加个函数解决如下:
min((select count(*) from blog_content where typeid=0)) as articlecount
4:存储过程调用问题
问题:
存储过程的参数varchar2,如果代码中参数为空,会报异常:ora-01084: invalid argument in oci call view
如果在pl/sql中执行,而不会错。
解决方法是为空时,传递dbnull.value。
6:修改字段顺序
增加列,又不想放在最后面,拉不上去,只好写代码更改顺序号。
select object_id from all_objects where object_name='blog_comment'--查表id
select col#,name from sys.col$ where obj#=49244--看一下字段顺序序号
update sys.col$ set col#=8 where obj#=49244 and name='createtime'--把序号更新了
7:更新序列初始值
数据库共用一个序列为自增id,导完数据后序列值没变,需要调整值。
alter sequence 序列名称 increment by 新的数字;
版权声明:本文原创发表于博客园,作者为路过秋天,原文链接:
http://www.cnblogs.com/cyq1162/archive/2011/05/10/2042295.html