需要在Oracle DB 12.2 nls_length_semantics值中进行说明

时间:2017-12-07 14:32:05

标签: sql oracle

在Oracle DB 12.2中,当nls_length_semanticsCHAR时,我们可以创建一个包含默认值的列的表,如下所示:

REFERENCE_NO  VARCHAR2(40) default
TO_CHAR(TO_NUMBER(TO_CHAR(SYSDATE@!,'YYDDD')))||'RR'||LPAD(TO_CHAR(SEQ_T.NEXTVAL),9,'0') not null

但当nls_length_semanticsBYTE时,上面的列创建错误:

  

" ORA-01401插入的值对于列"来说太大了。

当我们尝试将列长度设为80而不是40时,此问题就会解决。有人可以告诉我这里nls_length_semantics的重要性。

注意:无论nls_length_semantics值如何,表格列创建在Oracle DB 12.1中都可正常使用16。

0 个答案:

没有答案