這裡簡單記錄一下了:
記錄一:N久前裝過Oracle 10,前兩天重新登陸一下,發現登陸不了,老是報host不存在之類的錯誤,導致資料庫重裝了又刪,刪除了又建,如此迴圈。
解決:
最後發現是不久N前修改了計算名稱引起的,在C:\oracle\product\10.1.0\Db_1\NETWORK\ADMIN 目錄有有幾個檔案,
用記錄事開啟,看到host=xxx的,把xxx改成新的電腦名稱解決。
記錄二:用Sys使用者登陸,並建立表如Users,表使用者歸屬Sys時,無法對錶Users建立觸發器。
解決:
建立另一個帳號建立表
記錄三:用sa[建立的帳號]登陸時,Connect as 選項不要選擇SysDBA,應該為預設Normal,不然出現的問題就是建立的表看不到,而且訪問比需為:使用者名稱.表名
記錄四:Oracle的時間為date類型,系統目前時間預設值函數為:sysdate
記錄五:oracle的表沒有自增加ID,需要用序列,建立序列代碼為:
-- Create sequence
create sequence AutoID
minvalue 1
maxvalue 9999999
start with 1
increment by 1
nocache
order;
在PL/SQL工具下可以直接可視化建立序列。
序列取當前值為:AutoID.Currval
序列取下一值為:AutoID.Nextval
記錄六:建立自增加ID,網上都說有觸發器,觸發器代碼為:
create or replace trigger 名稱
before insert on 表名
for each row
begin
select 序列名稱.nextval into :new.ID from dual;
end ;
說明:用觸發器雖然可以實現,不過觸發器只能對單表,難道每個表都要建立一個觸發器?
記錄七:所以自增加ID不用觸發器了,通過代碼調用[序列名稱.Nextval]來插入,比如SQL語句為:
insert into Message(id,UserID,Body,Url) values(AutoID.nextval,3,'路過秋天','http://cyq1162.cnblogs.com')
記錄八:給一個使用者賦許可權語句為:
grant dba,resource,connect to 使用者名稱稱;
當然用可視化選擇設定更簡單直觀。