找到 61 篇文章 關於 Oracle

如何在 Oracle 中使用主鍵約束和外部索引鍵約束來強制資料庫完整性?

Kiran P
更新於 2020-12-05 06:20:06

458 次檢視

問題:您想在 Oracle 中使用主鍵約束和外部索引鍵約束來強制資料庫完整性。解決方案在定義了完整性的表上執行的任何 DML 語句(INSERT、UPDATE 或 DELETE)都有助於確保表中的行保持其完整性。讓我們看一些顯示主鍵約束執行的示例。customers 表的主鍵是 customer_id 列,這意味著儲存在 customer_id 列中的每個值都必須是唯一的。如果您嘗試插入一行,其中主鍵的值重複,則資料庫會返回錯誤 ORA-00001,如下所示 ... 閱讀更多

如何在 Oracle 中臨時儲存資料以供以後使用?

Kiran P
更新於 2020-12-05 06:18:15

2K+ 次檢視

問題:您想臨時儲存 SQL 結果。解決方案我們可以使用 CREATE GLOBAL TEMPORARY TABLE 語句建立一個表,該表臨時儲存會話的資料。此外,您可以指定是在會話期間保留臨時表資料還是在事務提交後保留。我們還可以使用 ON COMMIT PRESERVE ROWS 子句來指定在使用者會話結束時刪除資料。示例CREATE GLOBAL TEMPORARY TABLE tmp_players ON COMMIT PRESERVE ROWS AS SELECT * FROM players WHERE coach_id IS NOT NULL;全域性臨時表儲存僅在使用者會話期間存在的會話私有資料 ... 閱讀更多

如何在 Oracle 中執行不區分大小寫的搜尋?

Kiran P
更新於 2020-12-05 06:17:10

4K+ 次檢視

問題:您想在 Oracle 中執行不區分大小寫的搜尋。解決方案處理大小寫問題的一種方法是使用內建的 UPPER 和 LOWER 函式。這些函式允許您對單個操作的字串強制執行大小寫轉換示例DECLARE    full_name1  VARCHAR2(30) := 'roger federer';    full_name2   VARCHAR2(30) := 'ROGER FEDERER'; BEGIN    IF LOWER(full_name1) = LOWER(full_name2) THEN        DBMS_OUTPUT.PUT_LINE( full_name1 || ' and ' || full_name2 || ' are the same.');    END IF; END;在上面的示例中,full_name1 和 full_name2 首先轉換為小寫,然後相互比較,從而產生輸出roger federer ... 閱讀更多

如何在 Oracle 中使用 WITH 子句定義函式?

Kiran P
更新於 2020-12-05 06:16:11

5K+ 次檢視

問題:您想在 Oracle 中使用 WITH 子句定義函式。解決方案從 Oracle 資料庫 12.1 開始,您可以在 SELECT 語句出現的同一 SQL 語句中定義函式和過程。這允許在 PL/SQL 和 SQL 引擎之間進行上下文切換,允許兩個步驟都在 SQL 引擎中發生,從而提高效能。函式或過程需要使用 WITH 子句定義。請記住,在 Oracle 平臺的早期版本中,只有子查詢可以在 WITH 子句中定義。示例WITH FUNCTION func_amount(p_emailid IN VARCHAR2) RETURN NUMBER IS l_amt ... 閱讀更多

如何在 PL/SQL 中捕獲 Oracle 錯誤?

Kiran P
更新於 2020-12-05 06:12:50

3K+ 次檢視

問題:您想在 PL/SQL 中捕獲 Oracle 錯誤。解決方案藉助 OTHERS 異常處理程式,可以捕獲所有 Oracle 錯誤。讓我們舉個例子。我們將使用 students 表來演示用法。讓我們首先查看錶結構。示例DESC students;輸出Name          Null     Type         ------------- -------- ------------ STUDENT_ID             NUMBER(6)   FIRST_NAME             VARCHAR2(20) LAST_NAME     NOT NULL VARCHAR2(25) EMAIL         NOT NULL VARCHAR2(40) PHONE_NUMBER           VARCHAR2(20) JOIN_DATE   ... 閱讀更多

如何在 Oracle 中生成 JSON 資料並執行模式驗證?

Kiran P
更新於 2020-12-05 06:10:58

883 次檢視

問題:您想在 Oracle 中生成 JSON 資料並執行模式驗證。解決方案可以使用 JSON_OBJECT、JSON_ARRAYAGG、JSON_QUERY 等函式使用多個列和表生成複雜的 json 資料。JSON_OBJECT:- 這是一個 SQL/JSON 函式。JSON_OBJECT 將一個或多個屬性鍵值對作為輸入。它返回一個 JSON 物件,該物件為每個鍵值對包含一個物件成員。JSON_ARRAYAGG:- SQL/JSON 函式 JSON_ARRAYAGG 是一個聚合函式。它將 SQL 表示式的列作為輸入,將每個表示式轉換為 JSON 值,並返回一個包含這些 JSON 值的單個 JSON 陣列。JSON_QUERY:- JSON_QUERY 查詢一個或多個 ... 閱讀更多

如何在 Oracle 中使用 DATETIME 函式?

Kiran P
更新於 2020-12-05 06:08:36

440 次檢視

問題:您想使用日期時間函式來提取或處理日期時間。解決方案ADD_MONTHS()ADD_MONTHS(x, y) 返回將 y 個月新增到 x 的結果。如果 y 為負數,則從 x 中減去 y 個月示例-- 新增 12 個月 SELECT ADD_MONTHS('01-JAN-2020', 12) FROM dual;輸出-- 01/JAN/21示例-- 減去 12 個月 SELECT ADD_MONTHS('01-JAN-2020', -12) FROM dual;輸出-- 01/JAN/21我們可以向 ADD_MONTHS() 函式提供時間和日期。示例SELECT ADD_MONTHS(TO_DATE('01-JAN-2020 01:01:01', 'DD-MON-YYYY HH24:MI:SS'), 2) FROM dual;輸出-- 01/MAR/20LAST_DAY()LAST_DAY(x) 返回 x 的月份部分的最後一天的日期。示例SELECT LAST_DAY('01-JAN-2020') FROM dual;輸出-- 31/JAN/20MONTHS_BETWEEN()MONTHS_BETWEEN(x, y) 返回 x 和 y 之間的月數。如果 x 發生在 y 之前 ... 閱讀更多

如何在 Oracle 中插入和檢索日期?

Kiran P
更新於 2020-12-05 06:03:24

21K+ 次檢視

問題:您想將日期插入表中並檢索它們。解決方案Oracle 預設使用格式 DD-MON-YYYY 來表示日期,其中DD 表示兩位數的日期。MON 表示月份的前三個字母,例如 FEB。YYYY 是四位數的年份,例如 1968讓我們看一個向 customers 表新增行的示例,該表包含一個名為 dob 的 DATE 列。以下 INSERT 向 customers 表新增一行,將 dob 列設定為 05-FEB-1968:示例INSERT INTO customers ( customer_id, first_name, last_name, dob, phone) VALUES (7, 'James', 'Bond', '31-DEC-2000', '007-007-0007');您還可以使用 DATE 關鍵字 ... 閱讀更多

如何在 Oracle 中縱向旋轉結果?

Kiran P
更新於 2020-12-05 06:02:10

4K+ 次檢視

問題:您想在 Oracle 中縱向旋轉結果。解決方案UNPIVOT 子句是 Oracle 資料庫 11g 的新功能,它使您能夠將查詢輸出中的列翻轉為行,並同時允許您對資料執行聚合函式。考慮一個名為 customer 的表,其中儲存了以下資料。示例SELECT * FROM customers;輸出1   tammy.bryant@internalmail   Tammy Bryant 2   roy.white@internalmail      Roy White 3   gary.jenkins@internalmail   Gary Jenkins 4   victor.morris@internalmail  Victor Morris 5   beverly.hughes@internalmail Beverly Hughes在 customer 表中,我們可以看到全名包含名字和姓氏 ... 閱讀更多

如何在 Oracle 中橫向旋轉結果?

Kiran P
更新於 2020-12-05 06:00:42

14K+ 次檢視

問題:您想在 Oracle 中橫向旋轉結果。解決方案PIVOT 子句是 Oracle 資料庫 11g 的新功能,它使您能夠將查詢輸出中的行翻轉為列,並同時允許您對資料執行聚合函式。PIVOT 特別適用於檢視大量資料中的總體趨勢。我們將使用銷售資料來演示用法。示例SELECT * FROM sales;輸出12008   12  1998-02-28  6   37  552 1898.88 12008   18  1998-02-28  6   37  463 1592.72 12008   20  1998-02-28  6   37  2430    8359.2 12008   25 ... 閱讀更多

廣告