0

文字列を長さ35の列に2つのテーブルに更新しています

最初のテーブルの更新は成功しましたが、2 番目のテーブルで ORA エラー ORA-12899 エラーが発生しました 文字列が大きすぎます

select length('Andres Peñalver D1 Palmar Sani salt') bytes from dual;

     BYTES
----------
        35

select lengthb('Andres Peñalver D1 Palmar Sani salt') bytes from dual;

     BYTES
----------
        36

両方のテーブルの colm1 フィールドが VARCHAR(35) として宣言されています。最初のテーブルの更新は失敗し、2 番目のテーブルは成功します。

update t
set colm1='Andres Peñalver D1 Palmar Sani Salt'
where value1='123456';

update t2
set colm1='Andres Peñalver D1 Palmar Sani Salt'
where value1='123456';

ORA-12899

select value from nls_database_parameters where parameter='NLS_CHARACTERSET';

VALUE                                                           
----------------------------------------------------------------
AL32UTF8

同じ列タイプを持つこれらのテーブルのこの動作の理由を教えてください

4

2 に答える 2