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