http://iotn.co.kr 연락처: gilho.kr@gmail.com [ The Japanese government should apologize to Japanese Military Sexual Slavery victim. / 日本政府は日本軍の性的奴隷?牲者に謝罪すべき. ]

사용자

ID:
PW:

INDEX
01.게시판
게시판 [68]
02.File Book
File 자료실 [95]
Site Link [16]
개인폴더 [195]
03.Field Book
Altibase [19]
Tibero [29]
MS-SQL [18]
MySQL [38]
DB2 [77]
ORACLE [2762]
PostgreSQL [88]
기타정보 [146]
운영체제 [563]
04.Q/A Book
Q/A [53]
05.방명록
방명록 [54]
레벨업 [37]
구인/구직 [1]

기념일
Search
LINK
+ 가족 Hompy
+ DNSEver
IOTN :: Field Book :: ORACLE

 회원가입

19c ENCRYPT Column ORA-12899 ORA-28338
최길호 [LIST]   2021-09-13 11:09:58, 조회 : 31

ORA-12899: value too large for column SCOTT.CB2_ACCT_HIS. (actual: 17, maximum: 16)
19c Migration 이후 발생

show parameter opt

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
drcp_dedicated_opt                   string      YES
filesystemio_options                 string      asynch
inmemory_optimized_arithmetic        string      DISABLE
memoptimize_pool_size                big integer 0
object_cache_optimal_size            integer     10240000
optimizer_adaptive_plans             boolean     TRUE
optimizer_adaptive_reporting_only    boolean     FALSE
optimizer_adaptive_statistics        boolean     FALSE
optimizer_capture_sql_plan_baselines boolean     FALSE
optimizer_dynamic_sampling           integer     2
optimizer_features_enable            string      19.1.0
optimizer_ignore_hints               boolean     FALSE
optimizer_ignore_parallel_hints      boolean     FALSE
optimizer_index_caching              integer     0
optimizer_index_cost_adj             integer     100
optimizer_inmemory_aware             boolean     TRUE
optimizer_mode                       string      ALL_ROWS
optimizer_real_time_statistics       boolean     FALSE
optimizer_secure_view_merging        boolean     TRUE
optimizer_session_type               string      NORMAL
optimizer_use_invisible_indexes      boolean     FALSE
optimizer_use_pending_statistics     boolean     FALSE
optimizer_use_sql_plan_baselines     boolean     TRUE
plsql_optimize_level                 integer     2

컬럼 구조 확인
SCOTT.FI_ACNT_INF  ACNT_NO VARCHAR2 (20) ENCRYPT [  "ACCT_NO" VARCHAR2(21) ENCRYPT USING 'AES192' 'SHA-1' NO SALT  NOT NULL ENABLE,  ]
SCOTT.CB2_ACCT_HIS ACCT_NO VARCHAR2 (16) ENCRYPT

20자 들어있는 데이터가 16자 컬럼과 조인시 발생
일반 컬럼에러 없음. ENCRYPT 컬럼 에러 발생

NO SALT 인덱스 만들수 있다 / ORA-12899: value too large for column 에러 발생
SALT 인덱스를 만들 수 없다. [ 같은 값을 다르게 저장 하는 알고리즘, 인덱스 논리적 충돌 ] / ORA-12899 에러 조치 가능
테이블 NO SALT 옵션 인덱스 만들고 alter no salt 옵션 변경 불가 기존 인덱스 때문에 ORA-28338: Column(s) cannot be both indexed and encrypted with salt

에러나는 테이블 alter
조치안1 : 인덱스가 없으면 alter 가능 / 인덱스가 있으면 ORA-28338: Column(s) cannot be both indexed and encrypted with salt 변경 불가
          alter table SCOTT.CB2_ACCT_HIS modify (ACCT_NO ENCRYPT SALT) ;
          SALT Option : 같은 값이라도 값을 다르게 저장하여 데이터를 예상 할 수 없게 합니다. 인덱스를 생성 할 수 없다.
          alter table .... Partition : ORA-28338: Column(s) cannot be both indexed and encrypted with salt 에러 발생시 NO SALT 변경-> 인덱스 있으면 ORA-28338 에러
조치안2 : 조건중 a.acct_no||''=b.acct_no 작은 길이 컬럼쪽에 ||'' 추가
          select a.* from scott.test1 a , scott.test2 b where a.acct_no||''=b.acct_no;
조치안3 : alter table SCOTT.CB2_ACCT_HIS modify (ACCT_NO varchar2(20)) ; 컬럼 길이 같게  변경
조치안4 : SCOTT.FI_ACNT_INF 테이블 조건 추가 length(ACNT_NO) < 21


테스트
drop table scott.test1 purge;
drop table scott.test2 purge;

CREATE TABLE scott.test1 ( "ACCT_NO" VARCHAR2(3) ENCRYPT USING 'AES192' 'SHA-1' NO SALT NOT NULL ENABLE );
CREATE TABLE scott.test2 ( "ACCT_NO" VARCHAR2(3) ENCRYPT USING 'AES192' 'SHA-1' NO SALT NOT NULL ENABLE );
insert into scott.test1 values('abc');
insert into scott.test2 values('abc');

select a.* from scott.test1 a , scott.test2 b where a.acct_no=b.acct_no;

alter TABLE scott.test2 modify ( "ACCT_NO" VARCHAR2(4) );
insert into scott.test2 values('abcd');

-- 에러 [ test1 a test2 b ]
select a.* from scott.test1 a , scott.test2 b where a.acct_no=b.acct_no;
ORA-12899: value too large for column scott.TEST1. (actual: 4, maximum: 3)
no rows selected [ 에러 보이고 건수가 없다고 나온다 ]

----------------------------------------------------------------------------
| Id  | Operation          | Name  | Rows  | Bytes | Cost (%CPU)| Time     |
----------------------------------------------------------------------------
|   0 | SELECT STATEMENT   |       |     1 |    75 |     6   (0)| 00:00:01 |
|*  1 |  HASH JOIN         |       |     1 |    75 |     6   (0)| 00:00:01 |
|   2 |   TABLE ACCESS FULL| TEST1 |     1 |    37 |     3   (0)| 00:00:01 |
|   3 |   TABLE ACCESS FULL| TEST2 |     1 |    38 |     3   (0)| 00:00:01 |
----------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - access("A"."ACCT_NO"=INTERNAL_FUNCTION("B"."ACCT_NO") AND
              "B"."ACCT_NO"=INTERNAL_FUNCTION("A"."ACCT_NO"))


-- 정상 [ test2 a test1 b ] [ 테이블 위치만 바꿨는데... 에러 없다 ] HASH JOIN 버그로 보인다.
select b.* from scott.test2 a , scott.test1 b where a.acct_no=b.acct_no;
abc

----------------------------------------------------------------------------
| Id  | Operation          | Name  | Rows  | Bytes | Cost (%CPU)| Time     |
----------------------------------------------------------------------------
|   0 | SELECT STATEMENT   |       |     1 |    75 |     6   (0)| 00:00:01 |
|*  1 |  HASH JOIN         |       |     1 |    75 |     6   (0)| 00:00:01 |
|   2 |   TABLE ACCESS FULL| TEST1 |     1 |    37 |     3   (0)| 00:00:01 |
|   3 |   TABLE ACCESS FULL| TEST2 |     2 |    76 |     3   (0)| 00:00:01 |
----------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - access("A"."ACCT_NO"=INTERNAL_FUNCTION("B"."ACCT_NO") AND
              "B"."ACCT_NO"=INTERNAL_FUNCTION("A"."ACCT_NO"))


3.236.13.53


  LIST

제목 작성자 작성일 조회
Admin  진행중.    최길호 2008/11/26 110
Admin  [ 필요 하신게 있으시면 Login 하시고 쪽지 또는 gilho.kr@gmail.com 메일 주세요~ ]    최길호 2006/07/14 130
Troubleshoot  ORA-00600: internal error code, arguments: [tsdrv1-Bug#24841100]    최길호 2021/09/25 8
Install and Config  ORA-24247: network access denied by access control list (ACL)    최길호 2021/09/24 19
Troubleshoot  ORA-12805 Parallel Query Server Died    최길호 2021/09/23 39
Backup and Recovery  ORA-01152: file 1 was not restored from a sufficiently old backup ORA-16433: The database or pluggable database must be opened in read/write mode.    최길호 2021/09/23 26
Troubleshoot  ORA-00600: internal error code, arguments: [kcbzib_kcrsds_1]    최길호 2021/09/23 40
Backup and Recovery  RMAN> validate database ; [ dbv DBV-00201: Block, DBA 50513350, marked corrupt for invalid redo application ]    최길호 2021/09/22 24
Install and Config  10g, 12c, 19c upgrade filename /dev/raw -> /oradata/ -> +DATA/ [ awr 추가 update ]    최길호 2021/09/19 31
Troubleshoot  ORA-19909: datafile 1 belongs to an orphan incarnation    최길호 2021/09/17 24
Troubleshoot  ORA-00997: illegal use of LONG datatype [ 원인중 하나: order by HIGH_VALUE ]    최길호 2021/09/17 24
Troubleshoot  ORA-04045: errors during recompilation/revalidation of XSERVER.CO_NO_DROP    최길호 2021/09/15 40
Troubleshoot  ORA-00600: internal error code, arguments: [504], [0x70000000006E278], [160]    최길호 2021/09/14 37
Troubleshoot  19c ENCRYPT Column ORA-12899 ORA-28338    최길호 2021/09/13 31
Admin  solaris acfs command    최길호 2021/09/11 34

    목록보기   다음페이지 1 [2][3][4][5][6][7][8][9][10]..[139]   [다음 10개]
       

Copyright 1999-2021 Zeroboard / skin by 최길호(gilho.kr@gmail.com)
최근 댓글
2021/06/30
윈도우 서버에서 sqlplus .... ORA-...
by 최길호
2021/06/30
ORA-28500: connection from O...
by 최길호
2019/05/02
pkg 확인 SELECT * FROM AL...
by 최길호
최근 게시물
09/25
[ORACLE]
ORA-00600: internal error code....
by 최길호
09/24
[ORACLE]
ORA-24247: network access deni....
by 최길호
07/18
[게시판]
이재명을 지지합니다~ ☜(゚ヮ゚....
by 최길호