Topic: How to change NLS_LENGTH_SEMANTICS at usage Data Pump Import
Hello, dear colleagues!
I work with Autonomous Data Warehouse Cloud.
(Oracle Database 18c Enterprise Edition Release 220.127.116.11.0 - 64bit Production
On Oracle Exadada Database Machine)
I load the data by means of Data Pump Import.
Initial basis in coding NLS_CHARACTERSET = CL8MSWIN1251.
Target basis (PDB) in coding NLS_CHARACTERSET = AL32UTF8.
At import I receive type errors:
KUP-11007: conversion error loading table "MY_TAB_OWNER". "MY_TAB_NAME" ORA-12899: value too large for column MY_COLUMN_NAME (actual: 175, maximum: 160)
I understand that the problem is connected by that the table forms by utility Data Pump Import with instructions
CREATE TABLE "MY_TAB_OWNER". "MY_TAB_NAME" ( ... MY_COLUMN (160>>> BYTE <<<); ... );
And at loading import tries to interpose the data into this column with Russian letters,
Which have in bytes the big length.
Normal way - to increase length of a column and then the data in it are located.
But it is necessary for me it (is desirable) to make it automatically at import of the data.
I changed at level PDB
ALTER SYSTEM SET NLS_LENGTH_SEMANTICS = CHAR SCOPE=BOTH;
It did not help, since from an export file at table creation undertakes explicit BYTE.
Parameters of import which are responsible NLS_LENGTH_SEMANTICS I did not find.
Advise, please, as at import to create tables with NLS_LENGTH_SEMANTICS = CHAR?