ORACLE、SQLServerの相違点

  • 2012.04.05 Thursday
  • 14:05
1.NullとEmptyの違い
  ORACLE : EmptyとNullを曖昧に判断する。
  SQLSERVER : EmptyとNullを明確に判断する。

2.Nullのソート順
  ORACLE : 昇順で、Null値は最後に配置される。
  SQLSERVER : 昇順で、Null値は先頭に配置される。

3.Null置き換え関数
  ORACLE : Nvl(Field,Value)
  SQLSERVER : IsNull(Field,Value)

4.Trim
  ORACLE : Trim存在する。
  SQLSERVER : RTrim/LTrimならある。

5.左文字詰め('0'埋めだと)
  ORACLE : LPAD([文字列],38,'0')
  SQLSERVER : REPLICATE('0',38-DATALENGTH([文字列]))+[文字列]

6.ロック(占有ロックとの事。。)
  Oracle : FOR UPDATE
  SQLSERVER : (UPDLOCK)

7.文字型→日付型変換
  ORACLE : TO_DATE('2000/01/01 10:20:30','yyyy/mm/dd hh24:mi:ss')
  SQLSERVER : CONVERT ( datetime,'2000/01/01 10:20:30',120)

8.日付型→文字型変換
  ORACLE : TO_CHAR(更新日時,'YYYYMMDD')
  SQLSERVER : CONVERT(varchar,更新日時,112)

9.システム日付
  ORACLE : SYSDATE(current_timestampも使えたが、グリニッジっぽい値になってしもうた。なぜ?)
  SQLSERVER : current_timestamp

10.文字列切り出し
  ORACLE : SELECT SUBSTR([文字列],2,2) FROM DUAL
  SQLSERVER : SELECT SUBSTRING([文字列],2,2)

11.数値→文字列変換
  ORACLE : TO_CHAR([文字列])
  SQLSERVER : 数値から文字型であれば、暗黙の変換で大丈夫。
        (明示的に書くならば、CAST or CONVERT使用)

12.文字列連結  
  ORACLE : ||
  SQLSERVER : +

13.JOIN時のテーブル別名
  ORACLE : 無くても動いた。。。
  SQLSERVER : テーブル別名必須っぽい?(UNIONにも必要とは。。)

14.EMPTY→数値型の更新について。
  ORACLE : EMTPY→数値型へ更新が可能。Nullの扱いとなる。
  SQLSERVER : EMPTY→数値型へ更新が不可。数値変換エラーとなる。

15.余分な0が付加される。(ドライバのせい?)
  ORACLE : NUMBER(15,5)型から数値1を、SELECTすると結果は、"1"
  SQLSERVER : NUMERIC(15,5)型から数値1を、SELECTすると結果は、"1.00000"

16.それぞれの予約語に注意。。
コメント
コメントする








    
この記事のトラックバックURL
トラックバック