顯示具有 Oracle DB 標籤的文章。 顯示所有文章
顯示具有 Oracle DB 標籤的文章。 顯示所有文章

利用 SoloLearn app 循序漸進學習 Program


現在學習程式設計比以往方便且有效率,

透過手機或平板隨時隨地就可以線上學習,

特別介紹 SoloLearn 這個循序漸進且超好用的免費 app,

1) 安裝 SoloLearn app 後開啟, 它提供多個程式語言課程, 供您線上學習, 如: Java / JavaScript / Python / SQL / HTML / C# ... 等 :

Oracle PL/SQL MD5 加解密

Oracle PL/SQL 對於資料的加密,

除了 DESTripple-DES, 之外, 也提供 MD5 加密,

因為 MD5 是一種不可逆的加密技術,

所以, 本篇文章就沒有說明 MD5 解密的部分,

範例, 參考如下 :

Oracle PL/SQL Triple DES (DES3) 加密與解密

Oracle PL/SQL 對於資料的加解密, 提供多種方式, 以下介紹 Triple DES (DES3) 加解密 :

 DES3 加密
DBMS_OBFUSCATION_TOOLKIT.DES3Encrypt( input => '要加密的資料'
                                    , key => '加密金鑰'
                                    );

參數,
input: 長度要是 8 的倍數,若不足 8 的倍數,則用空白補足.
key: 長度最少要 16 碼以上; 不同的 Key,加密結果將會不同.

傳回值型態: raw

傳回值型態若要 varchar2, 則再用 utl_raw.cast_to_varchar2 轉換成字串.

其中, input、key、傳回值均為 raw 的 16 進位字串型態,
所以, input、key 字串可利用 utl_raw.cast_to_raw 來轉換為 16 進位資料.

Oracle Database DES 加密與解密

Oracle DB 對於資料的加解密, 提供多種方式, 以下介紹 DES 加解密 :

 DES 加密
DBMS_OBFUSCATION_TOOLKIT.DESEncrypt( input => '要加密的資料'
                                   , key => '加密金鑰'
                                   );

參數,
input: 長度要是 8 的倍數,若不足 8 的倍數,則用空白補足.
key: 長度最少要 8 碼以上; 不同的 Key,加密結果將會不同.

傳回值型態: raw

傳回值型態若要 varchar2, 則再用 utl_raw.cast_to_varchar2 轉換成字串.

其中, input、key、傳回值均為 raw 的 16 進位字串型態,
所以, input、key 字串可利用 utl_raw.cast_to_raw 來轉換為 16 進位資料.

Oracle PL/SQL Dynamic SQL 動態語法 4

在這篇文章中,

介紹 Orale Dynamic SQL 如何動態取得多筆資料,

參考範例, 如下 :

Oracle PL/SQL Dynamic SQL 動態語法 3

在這篇文章中,

介紹 Orale Dynamic SQL 如何動態執行 block 區塊, 也就是所謂的 begin ~ end;

參考範例, 如下 :

Oracle PL/SQL Dynamic SQL 動態語法 2

在這篇文章中,

介紹 Orale Dynamic SQL 如何動態執行 Procedure / Function,

參考範例, 如下 :

Oracle PL/SQL Dynamic SQL 動態語法 1

在 Oracle PL/SQL 中要使用動態 SQL,

早期會利用 dbms_sql package, 但是麻煩又不好用,

在 Oracle Database 8i 之後提供用 execute immediate 這種超簡單的方式,

執行語法, 如下 :

Oracle DB 讓 A Owner 可使用 B Owner 的 All Object

在 Oracle Database 中,

有讓 A Owner 使用 All Owner 的所有 Object 的語法: 點選此處,

但是, 若只是要讓 A Owner 使用 B Owner 的所有 Object,

而假設 B Owner 有 1000 個 Object,

若透過 Grant 一行一行授權, 則 1000 個 Object 就要執行授權 1000 次,

會令人受不了的,


所以, 解決方式,

Oracle DB 讓 A Owner 可使用 All Owner 的 All Object

在 Oracle Database 中,

要讓 A Owner 可以對所有 Owner 的 Object 進行查詢、維護、或執行,

可以透過下面語法 :

Oracle DB 讓 B Owner 可授權 A Owner 的 Object 給 C User

範例 1: A Owner Table 授權給 B Owner, 而 B Owner 要將此 Table 授權給 C Owner.

範例 2: B Owner 建立一個 View, 而此 View 含有 A Owner Table, 要將此 View 授權給 C Owner 使用, 如下圖 :


以上兩個範例, 都是相同的意思,

Oracle DB 的 A Owner 建立與維護 B Owner 的 Object

在 Oracle Database 中,

要讓 A Owner 可以建立與維護 B Owner 的 Object (如:Table, Procedure, ...),

有以下兩種方式 :

Oracle DB 的 A Owner 可以使用 B Owner 的 Object

在 Oracle Database 中,

要實現讓 A Owner 可以使用 B Owner 的 Object (如: Table, View, Stored Procedure, ...)

可以參考如下 :

Oracle Database Grant 與 Synonym 的差異

Grant 與 Synonym 的差異, 參考如下 :
 差異之處
Grant: Object 授權。
 
Synonym: 讓開發者可直接輸入 Object_Name, 而不用輸入 Owner.Object_Name。

單一 Synonym 語法 :

Oracle DB 用 SYSDBA 權限登入

在某些情況下, 如果忘記某個 Oracle DB Owner 的密碼,

你可以用 SYSDBA 登入 Database, 再進行該 Owner 的密碼修改,

而用 SYSDBA 登入的方式, 參考如下 :

Oracle PL/SQL DB Error Message 系統錯誤資訊

在 Oracle PL/SQL 中,

以前常用 SQLCODESQLERRM 抓取錯誤訊息, 如下範例 :

Oracle PL/SQL 中斷程式執行且產生錯誤訊息

在 Oracle PL/SQL 要中斷程式執行,

一般會有以下三種方式 :

1) 利用 Exit, 但只有結束目前的迴圈, 然後會繼續該 Procedure/Trigger 的執行;

Oracle PL/SQL 中的 GoTo 指令

Goto 指令是一個將執行程序, 直接跳到指定的程序位置上,

一般來說, 不建議這麼做,

因為會破壞程式邏輯, 且也不易後續維護,

不過, 這事見仁見智, 而 Oracle 既然有提供這作法, 這邊就稍微介紹一下.

Oracle PL/SQL 的 Array 陣列

在 Oracle PL/SQL 中要使用 Array,

有兩種方式: table ofvarray of,

我幾乎都是用 table of, 不過, 兩種方式還是都介紹, 如下 :

Oracle DB Link 的相關錯誤處理

 ORA-02064: distributed operation not supported
原因: 遠端 DB2 的 DB Package 有下 Commit,導致『不支援分散式作業』的錯誤。

步驟: 遠端 DB2 的 DB Package 不要下 Commit,由呼叫端 DB1 執行 Package 之後下 Commit,來確認更新 DB2 的資料。

Related Posts Plugin for WordPress, Blogger...