sqlserver和oracle中sql語句一樣嗎

2021-03-06 07:29:04 字數 1554 閱讀 9311

1樓:千鋒教育

oracle與sql server都遵循sql-92標準:

區別如下:

1.oracle中表名,欄位名,儲存過程名,變數名不能超過30個字串長度。

2.oracle中不支援top 語法。使用whererownum < n 代替。但需要注意如果在top前有排序的操作,則需要先排序在利用rownum取得。

3.oracle中游標的使用與sqlserver中有挺大差別,主要是在迴圈控制方面不一致。

在oracle中如果某列是date型別,那麼它預設的格式是yyyy-mm-dd,如果使用where coldate = 『2005-06-08 17:14:57』就會出錯,『2005-06-08』可以。

如果此時需要精確比較時間(小時,分,秒),可以採用下列方法:to_date('2005-6-8 17:14:

57','yyyy-mm-dd hh24:mi:ss')。

由於oracle和sqlserver在datetime上對sql標準的拓展實現方式不同,因此不能用同一個sql實現。

4.oracle中的timestamp(時間戳)與sqlserver中的差別很大。sqlserver中的timestamp是二進位制格式儲存在資料庫中,可以將dataset中的這個欄位型別設定為base64binary型別。

oracle中的timestamp是時間格式儲存的。因此,無法用同一個dataset既裝載sqlserver的timestamp,有裝載oracle的timestamp.由於在應用程式中很少用到這個值,因此可以不檢索這個欄位。

5.oracle中的timestamp不能像sqlserver在傳入資料的時候自動填充,可以設定預設值systimestamp來實現類似功能。

6.oracle中沒有boolean的欄位型別,可以用intger或者char代替sqlserver中的bit型別。

7.oracle中會將」」空字串當多null處理,也就是說,當應用程式往資料庫中插入一個空字串時,實際資料庫會嘗試插入一個null。如果這個欄位是notnull型別,那麼就會出錯,這種情況下可以用別的預設值代替空字串。

當從sqlserver匯入資料到oracle的時候,在notnull列上的空字串會導致匯出操作失敗。此時可以在匯出嚮導中手工修改sql指令碼,將空字串設定成一個特殊值。

8.oracle中不支援,select . . into建立新表,要用create table 表名as select 語句 ,建立新表。

9.在oracle中連線字串用 『||』 或concat(col1,col2)函式,不能使用『+』。

統配符 ,[^] ,oracle好像也不支援。

2樓:匿名使用者

sql語句本身就是一種工業標準,多數的sql語句是通用的(select,update,insert) 但是當中還有一些小的區別,比如oralce9以後支援的全外連寫法 fullouter join on,一旦應用到pl/sql(帶程式設計語句的sql)區別就大了.

因此資料庫無關性(程式在所有的資料庫都能順利執行)也是程式設計的一個課題.

你說的desc用法是oralce特有資料字典用法.不是標準的sql語句

SQL Server和Oracle以及MySQL有

區別如下 1 oracle和sql server是商業收費的,而mysql是開源免費的 2 oracle和mysql是甲骨文的產品,sql server是微軟的產品 3 oracle和ibm db2都是超大型關聯式資料庫,sql server是大型關聯式資料庫,而mysql是中型關聯式資料庫 4 o...

Oracle資料庫和Sql server資料庫各有什麼優缺點

1 oracle為客戶端開啟會話有兩種方式 共享服務和專用服務。在專用服務情況下,為連線請求建立新程序 unix環境下是process,windows下我想應該是thread吧 共享服務情況下,將客戶請求交給dispatcher,由dispatcher安排多客戶的作業。sqlserver在預設情況下...

oracle中sum如何使用,在oracle中按要求統計行數,怎麼運用sum和count函式?

select 分組的列,sum 要求和的列 from 表group by 分組的列 如 select 地區,sum 銷售額 from 銷售表group by 地區 按地區分組,把每個組即每個地區的銷售額求和。sum 是求和函式 例如 select sum 需要求和的列名 from table sum...