2016-10-26 9 views
1

私のプロジェクトは技術的なアップグレードを行っていますので、Oracle DBを11gから12cにアップグレードしています。 SAP DataServicesはバージョン14.2.7.1156にアップグレードされます。SAPデータサービス - Oracle 12Cアップグレード - Varchar(Byte)からVarchar(Char)

varchar(char)の場合、Oracle 12Cのテーブルのデフォルトはvarchar(byte)です。私はこれが正常だと理解しています。だから、私は、Oracleから新しいテーブルに私は新しいテーブルを作成する場合は、varchar型と(1)、I(すなわち、东)中国語の文字などのUnicode文字をロードすることができる午前

`ALTER session SET nls_length_semantics=CHAR;` 

を実行している各データストアのセッションを変更しました。

しかし、同じユニコード文字をSAPDS経由で同じテーブルにロードしようとすると、「ORA-12899 - 値が大きすぎます」というエラーが表示されます。私のデータストアの設定は次のとおりです。

ロケール

-Language:デフォルト

-codeページ:UTF-8

コードページ-Server:UTF-8

セッション

- その他のセッションパラメータ:

`ALTER session SET nls_length_semantics=CHAR` 

Oracleが正常に動作しているようだから、SAP BODSでどの設定を変更する必要があるのか​​よく知っていただければ幸いです。

答えて

0

私は、Unicode(UTF-8形式)データを許可してORA-12899を避けるために、varchar2(x BYTE)からvarchar2(x CHAR)にテーブル列を変更することを検討する必要があります。

create table test1 (name varchar2(100)); 
insert into test1 values ('east'); 
insert into test1 values ('东'); 

alter table test1 modify name varchar2(100 char); 

-

select column_name, data_type, char_used from user_tab_columns where table_name='TEST1'; 
- あなたは次のように列ごとに 'char_used' チェックすることができます
関連する問題