データの暗号化は、あなたが完全な脱感作にカスタム関数を使用する必要があります。
後者は、関数変換データ値を使用して、新しいテーブルが格納されています。
/ * 暗号化機能* / CREATE OR REPLACE FUNCTIONのDS_FUNC_ENCRYPT_DESを(P_TEXT VARCHAR2、 P_KEY VARCHAR2) RETURN VARCHAR2 IS V_TEXT VARCHAR2(4000 )。 W_ENC VARCHAR2(4000 )。 RAW_INPUT RAW(20000 )。 KEY_INPUT RAW(1000年)。 DECRYPTED_RAW RAW(20000 )。 V_ERRORTEXT VARCHAR2(500 )。 ベギン DBMS_OUTPUT.ENABLE(BUFFER_SIZE => NULL); (P_TEXT IS NULL OR P_TEXT IF = '' THEN) RETURN '' ; END IF; DBMS_OUTPUT.PUT_LINE(P_TEXT)。 V_TEXT: = RPAD(P_TEXT、(TRUNC(LENGTHB(P_TEXT)/ 8)+ 1)* 8、CHR(0 ))。 DBMS_OUTPUT.PUT_LINE(V_TEXT)。 RAW_INPUT: = UTL_I18N.STRING_TO_RAW(V_TEXT、' ZHS16GBK ' )。 KEY_INPUT: = UTL_I18N.STRING_TO_RAW(P_KEY、' ZHS16GBK ' )。 DBMS_OBFUSCATION_TOOLKIT.DESENCRYPT(INPUT => RAW_INPUT、 KEY => KEY_INPUT、 ENCRYPTED_DATA => DECRYPTED_RAW)。 V_ENC: = RAWTOHEX(DECRYPTED_RAW)。 DBMS_OUTPUT.PUT_LINE(V_ENC)。 RETURN V_ENC; 例外 WHEN OTHERS THEN V_ERRORTEXT: = ' dserror:' || SUBSTR(SQLERRM、1、200 )。 RETURN V_ERRORTEXT; 終わり;
SELECT DS_FUNC_ENCRYPT_DES TABLE_NAME FROM( 'フィールド名'、 '暗号化された文字');
第二に、ダンプを復号化されたエクスポートデータへのエクスポート]コマンドを使用します。
/ * 復号化機能* / CREATE OR REPLACE FUNCTIONのDS_FUNC_DECRYPT_DESを(P_TEXT VARCHAR2、 P_KEY VARCHAR2) RETURN VARCHAR2 IS P_TEXT_RAW RAW(20000 )。 P_KEY_RAW RAW(20000 )。 V_TEXT_RAW RAW(20000 )。 V_TEXT VARCHAR2(4000 )。 V_ERRORTEXT VARCHAR2(500 )。 ベギン DBMS_OUTPUT.ENABLE(BUFFER_SIZE => NULL); (P_TEXT IS NULL OR P_TEXT IF = '' THEN) RETURN '' ; END IF; P_TEXT_RAW: = HEXTORAW(P_TEXT)。 P_KEY_RAW: = UTL_I18N.STRING_TO_RAW(P_KEY、' ZHS16GBK ' )。 DBMS_OBFUSCATION_TOOLKIT.DESDECRYPT(INPUT => P_TEXT_RAW、 KEY => P_KEY_RAW、 DECRYPTED_DATA => V_TEXT_RAW)。 V_TEXT: = UTL_I18N.RAW_TO_CHAR(V_TEXT_RAW、' ZHS16GBK ' )。 DBMS_OUTPUT.PUT_LINE(V_TEXT)。 RETURN RTRIM(V_TEXT、CHR(0 ))。 例外 WHEN OTHERS THEN V_ERRORTEXT: = ' dserror:' || SUBSTR(SQLERRM、1、200 )。 RETURN V_ERRORTEXT; 終わり;
SELECT DS_FUNC_DECRYPT_DES TABLE_NAME FROM( 'フィールド名'、 '暗号化された文字');