達(dá)令說
2019-08-27 16:20:33
如何在Oracle數(shù)據(jù)庫中創(chuàng)建臨時(shí)表?我想在Oracle數(shù)據(jù)庫中創(chuàng)建一個(gè)臨時(shí)表就像是Declare table @table (int id)在SQL服務(wù)器中然后用select語句填充它可能嗎?謝謝
3 回答

胡說叔叔
TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超8個(gè)贊
是的,Oracle有臨時(shí)表。這是一篇描述它們的AskTom文章的鏈接,這里是官方的oracle CREATE TABLE文檔。
但是,在Oracle中,只有臨時(shí)表中的數(shù)據(jù)是臨時(shí)的。該表是其他會話可見的常規(guī)對象。在Oracle中頻繁創(chuàng)建和刪除臨時(shí)表是一種不好的做法。
CREATE GLOBAL TEMPORARY TABLE today_sales(order_id NUMBER)ON COMMIT PRESERVE ROWS;
Oracle 18c添加了私有臨時(shí)表,它們是單會話內(nèi)存中對象。有關(guān)詳細(xì)信息,請參閱文檔。可以動(dòng)態(tài)創(chuàng)建和刪除私有臨時(shí)表。
CREATE PRIVATE TEMPORARY TABLE ora$ptt_today_sales ASSELECT * FROM orders WHERE order_date = SYSDATE;
臨時(shí)表可能很有用,但它們通常在Oracle中被濫用。通過使用內(nèi)聯(lián)視圖將多個(gè)步驟組合到單個(gè)SQL語句中,通??梢员苊馑鼈儭?/p>

哆啦的時(shí)光機(jī)
TA貢獻(xiàn)1779條經(jīng)驗(yàn) 獲得超6個(gè)贊
CREATE GLOBAL TEMPORARY TABLE Table_name (startdate DATE, enddate DATE, class CHAR(20)) ON COMMIT DELETE ROWS;
添加回答
舉報(bào)
0/150
提交
取消