Title |
[ORACLE] longrawタイプのカラム(非暗号化カラム)のデータがnullの現象発生。 | Product |
Plug-In |
---|---|---|---|
Phenomenon |
テーブル暗号化後にlongrawタイプのカラム(非暗号化カラム)のデータがnullである現象発生。
(Oracle 8.1.7.4.1) |
||
Cause |
暗号化適用時、ユーザの要請によりlongrawカラムタイプをblobに変更せず
insert into select構文を利用して遂行。 この過程でlongrawタイプのカラムにto_lob関数を使用。(to_lob関数使用しない場合、エラー発生。) 作業中にはエラーが発生しないが、暗号化の結果、そのカラムのデータはnull。 |
||
Solution |
insert into select構文を使わずにprocedureを作成してinsert intoを利用した暗号化を遂行。
Sample Procedure : CREATE OR REPLACE procedure cubeone_enc is cursor cur_TEST006 is select * from test.TEST006; val_TEST006 test.TEST006%rowtype; begin open cur_TEST006; loop fetch cur_TEST006 into val_TEST006; exit when cur_TEST006%notfound; begin insert into test.TEST006# (CUST_NO, CUST_NAME, JUMIN_NO, ACCOUNT_NO, LONG_RAW_COL, /* long RAW type column */ PASSWD, REG_DATE, BONUS, COMM, GRADE_NO) VALUES (val_TEST006.CUST_NO, val_TEST006.CUST_NAME, xx1.enc_char_ins(val_TEST006.JUMIN_NO, 19,'AES','TEST006','JUMIN_NO'), val_TEST006.ACCOUNT_NO, val_TEST006.LONG_RAW_COL, val_TEST006.PASSWD, val_TEST006.REG_DATE, val_TEST006.BONUS, val_TEST006.COMM, val_TEST006.GRADE_NO); end; end loop; close cur_TEST006; commit; end; / |