基本上在Oracle上,不像SQL Server或DB 2有Identity的功能
沒有支援Auto Increment的功能,不過,這個功能真的還蠻常用的
不過其實還有有其它的技巧可以達成這件事的,比如使用下面參考資料的Trigger,不過,我個人比較喜歡單純一點的做法,在建立Table後,再建立Sequence,而在Insert的時候再使用Sequence.NEXTVAL取值的方式
CREATE TABLE TableName
(
Column1 NUMBER NOT NULL,
Column2 VARCHAR2(11) NOT NULL,
CONSTRAINT TableName_PKEY PRIMARY KEY(Column1)
);
CREATE SEQUENCE TableName_SEQ;
INSERT INTO TableName (Column1, Column2)
VALUES(TableName_SEQ.NEXTVAL, 'Column2Value');
參考資料:
https://oracle-base.com/articles/misc/autonumber-and-identity
2015年10月30日 星期五
2014年3月13日 星期四
如何在Linux下開啟oracle
每次重開機的時候oracle資料庫都不會重新啟動,所以查了一下如何開啟資料庫
系統的版本主要是Red Hat,Cent OS應該也是可以通用的。
當資料庫不能連線時,記得先檢查網路和主機狀態。
開啟資料庫:
su - oracle
sqlplus "/sysdba"
進入slqplus
sql> startup
sql> exit
開啟監聽器:
檢查監聽器
lsnrctl status
開啟
lsnrctl start
參考資料:
http://mrmo.cc/1594/%E5%9C%A8centos%E4%B8%8B%E5%95%9F%E5%8B%95%E5%AE%89%E8%A3%9D%E5%A5%BD%E7%9A%84oracle%EF%BC%8C%E4%B8%A6%E8%A8%AD%E5%AE%9A%E9%96%8B%E6%A9%9F%E8%87%AA%E5%8B%95%E5%95%9F%E5%8B%95/
系統的版本主要是Red Hat,Cent OS應該也是可以通用的。
當資料庫不能連線時,記得先檢查網路和主機狀態。
開啟資料庫:
su - oracle
sqlplus "/sysdba"
進入slqplus
sql> startup
sql> exit
開啟監聽器:
檢查監聽器
lsnrctl status
開啟
lsnrctl start
參考資料:
http://mrmo.cc/1594/%E5%9C%A8centos%E4%B8%8B%E5%95%9F%E5%8B%95%E5%AE%89%E8%A3%9D%E5%A5%BD%E7%9A%84oracle%EF%BC%8C%E4%B8%A6%E8%A8%AD%E5%AE%9A%E9%96%8B%E6%A9%9F%E8%87%AA%E5%8B%95%E5%95%9F%E5%8B%95/
2014年3月5日 星期三
Oracle SYNONYM 的建立和刪除
當使用者B想用使用者A上的資料表時,除了使用Grant賦予權限外,可以使用synonym來建立table的同義字供別的使用者使用。
我主要建立public共用的synonym,建立指令如下:
CREATE PUBLIC SYNONYM synonym_name
FOR user_name.table_name
刪除synonym指令如下:
DROP PUBLIC SYNONYM synonym_name
參考資料:
http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_7001.htm
http://blog.itpub.net/12778571/viewspace-674453/
我主要建立public共用的synonym,建立指令如下:
CREATE PUBLIC SYNONYM synonym_name
FOR user_name.table_name
刪除synonym指令如下:
DROP PUBLIC SYNONYM synonym_name
參考資料:
http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_7001.htm
http://blog.itpub.net/12778571/viewspace-674453/
訂閱:
文章 (Atom)