首頁 >資料庫 >mysql教程 >Oracle 的「SELECT INTO」與標準 SQL 有何不同?

Oracle 的「SELECT INTO」與標準 SQL 有何不同?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-04 17:08:41653瀏覽

How Does Oracle's `SELECT INTO` Differ from Standard SQL, and What are the Workarounds?

Oracle 對SELECT INTO 的獨特解釋

雖然SELECT INTO 的標準SQL 語法涉及創建一個新表並用來自現有表,Oracle的實現有很大不同。

錯誤遇到:

嘗試在Oracle 中執行標準SELECT * INTO new_table FROM old_table 時,可能會遇到「缺少關鍵字」錯誤(ORA-00905 )。這是因為 Oracle 執行相同操作的語法需要不同的方法。

Oracle 建立新資料表並填入資料的語法:

要成功執行 SELECT INTO Oracle,你有幾個選擇:

  1. 如果新表已經存在:

    使用 INSERT INTO語句:

    INSERT INTO new_table
    SELECT *
    FROM old_table;
  2. 如果您想要根據某個記錄建立一個新表現有表:

    使用 CREATE TABLE ... AS SELECT語句:

    CREATE TABLE new_table AS
    SELECT *
    FROM old_table;
  3. 如果目的是建立一個新的空表:

    新增一個 WHERE子句,其條件可以永遠不會true:

    CREATE TABLE new_table AS
    SELECT *
    FROM old_table
    WHERE 1 = 2;

重要注意事項:

  • CREATE TABLE ... AS SELECT 語句僅建立一個表,其中包含與來源表相同的投影。
  • 新表不會有任何約束、觸發器或從原始表繼承的索引。

以上是Oracle 的「SELECT INTO」與標準 SQL 有何不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn