pg 與 oracle 比較

來源:互聯網
上載者:User

標籤:計劃   res   http   amp   查詢   bsp   需要   子查詢   cat   

所謂動態引擎,就是說比如有很多張表的Join,原始的做法是一開始就產生好這個執行計畫,隨後執行,但實際上很多表Join的時候,你一開始產生的那個執行計畫很有可能是不對的。

那麼動態執行計畫就是指它可以邊執行邊協助搜集最準確的執行資訊,從而調整後面的執行計畫

 

ORACLE文法 → PostgreSQL文法

1、VARCHAR2 → varchar

2、DATE → timestamp

3、SYSDATE → localtimestamp

4、Oracle中‘‘和NULL是相同的,但pgsql是不同的,所以需要將‘‘修改成NULL

5、字串串連符 ||

Oracle: ‘a‘||null 結果是‘a‘

pgsql: ‘a‘||null 結果是null

所以用concat()函數替代

6、trunc(時間) → date_trunc()

7、to_char, to_number, to_date pgsql都需要指定格式

8、DECODE → case

9、NVL → coalesce()

10、外串連(+) → left(right) join

11、GOTO語句 → pgsql不支援

12、pgsql不支援procedure和package,都需要改寫成function

當package有全域變數的情況修改起來比較麻煩,我們是用暫存資料表傳遞的。

13、cursor的屬性

%FOUND → found

%NOTFOUND → not found

%ISOPEN → pgsql不支援

%ROWCOUNT → pgsql不支援

另外關於cursor的其他差異,參照這個文章

http://bbs.pgsqldb.com/client/post_show.php?zt_auto_bh=56751

14、COMMIT,ROLLBACK;SAVEPOINT → pgsql不支援

15、Oracle的系統包,例如 DBMS_OUTPUT,DBMS_SQL,UTIL_FILE,UTIL_MAIL → pgsql不支援

16、異常處理方法不同

17、trigger的文法不同

18、日期的加減計算文法不同。

 

1、oracle沒有繼承和重載特性,pgsql支援繼承和函數重載;

2、2、oracle中的Null 字元串等同於null,pgsql中是分開處理的;

3、3、oracle不支援boolean類型,可以用integer型代替

4、4、pgsql中 :: 為類型轉換,oracle中不具有;

5、5、oracle中可以使用rownum分頁,pgsql使用limit;

6、6、pgsql中,查詢語句from子句中,表名後可以加 as 別名,oracle中表名後不允許出現as ;

7、7、pgsql子查詢要求嚴格,必須具有別名才可以;

8、8、序列使用方式不一致。

pg 與 oracle 比較

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.