1. 自動增長的資料型別處理
mysql有自動增長的資料型別,插入記錄時不用操作此欄位,會自動獲得資料值。oracle沒有自動增長的資料型別,需要建立一個自動增長的序列號,插入記錄時要把序列號的下一個值賦於此欄位。
create sequence 序列號的名稱 (最好是表名+序列號標記) increment by 1 start with 1 maxvalue 99999 cycle nocache;
其中最大的值按欄位的長度來定, 如果定義的自動增長的序列號 number(6) , 最大值為999999
insert 語句插入這個欄位值為: 序列號的名稱.nextval
2. 單引號的處理
mysql裡可以用雙引號包起字串,oracle裡只可以用單引號包起字串。在插入和修改字串前必須做單引號的替換:把所有出現的一個單引號替換成兩個單引號。
3. 翻頁的sql語句的處理
mysql處理翻頁的sql語句比較簡單,用limit 開始位置, 記錄個數;php裡還可以用seek定位到結果集的位置。oracle處理翻頁的sql語句就比較繁瑣了。每個結果集只有一個rownum欄位標明它的位 置, 並且只能用rownum<100, 不能用rownum>80。
以下是經過分析後較好的兩種oracle翻頁sql語句( id是唯一關鍵字的欄位名 ):
語句一:
select id, [field_name,...] from table_name where id in ( select id from (select rownum as numrow, id from table_name where 條件1 order by 條件2) where numrow > 80 and numrow < 100 ) order by 條件3;
語句二:
select * from (( select rownum as numrow, c.* from (select [field_name,...] from table_name where 條件1 order by 條件2) c) where numrow > 80 and numrow < 100 ) order by 條件3;
pdm中文網
www.pdmcn.com
程式從MYSQL遷移ORACLE注意事項之一
1 自動增長的資料型別處理 mysql有自動增長的資料型別,插入記錄時不用操作此欄位,會自動獲得資料值。oracle沒有自動增長的資料型別,需要建立一個自動增長的序列號,插入記錄時要把序列號的下一個值賦於此欄位。create sequence 序列號的名稱 最好是表名 序列號標記 increment...
mysql雲上遷移 MySQL遷移上雲最佳實踐
我們先來看一個針對專業開發者的資料庫受歡迎程度調查表 而且據 路邊社 報道,目前aws和阿里雲中mysql的市場份額也是最大的,當然對於華為雲來說,目前也在主推mysql引擎。那麼問題來了 我們想向網際網路轉型,我們想節省人力成本,我們想上雲,我們想上信譽度和安全性更高的華為雲,可以要怎麼上雲呢?我...
mysql 表遷移 mysql 表遷移
mysql中把一個表的資料批量匯入另一個表中 不管是在 開發還是在應用程式開發中,我們經常會碰到需要將mysql或ms sqlserver某個表的資料批量匯入到另一個表的情況,甚至有時還需要指定匯入欄位。本文就將以mysql資料庫為例,介紹如何通過sql命令列將某個表的所有資料或指定欄位的資料,匯入...