Oracle中VARCHAR2的默认值是什么? [英] What is the default value of VARCHAR2 in Oracle?

查看:173
本文介绍了Oracle中VARCHAR2的默认值是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的一个表中有一列类型为 varchar2(2000)的列,但这是否意味着 2000字节?或 2000个字符?因为我知道字节和字符之间有区别...

I have a column in one of my tables that is of type varchar2(2000), but does this mean 2000 bytes? or 2000 characters? Because I know there's a difference between bytes and characters...

推荐答案

默认值为会话的 NLS 参数之一,即 NLS_LENGTH_SEMANTICS .这是我可以从会话中检查的方法:

The default is one of the NLS parameters of your session, namely NLS_LENGTH_SEMANTICS. Here is how I can check it from my session:

select value
from   v$nls_parameters
where  parameter = 'NLS_LENGTH_SEMANTICS'
;

VALUE 
------
BYTE

您可以更改会话以更改值(或者可以通过诸如SQL Developer之类的图形界面来完成此操作).如果要分配一个特定的值,也可以在您的 LOGIN.SQL (或全局地, GLOGIN.SQL )中放入ALTER SESSION命令.每当您开始会话时.否则,当您开始新会话时,默认值将来自SPFile(最有可能).

You can alter your session to change the value (or you can do it through the graphical interface in something like SQL Developer). You can also put an ALTER SESSION command in your LOGIN.SQL (or, globally, GLOGIN.SQL) if you use one, if you want a specific value to be assigned whenever you start a session. Otherwise, when you start a new session the default will come from your SPFile (most likely).

这是我可以检查SPFile中内容的方法:

Here is how I can check what is in my SPFile:

select value
from   v$parameter
where  name = 'nls_length_semantics'
;


VALUE 
------
BYTE

我还可以更改系统以更改SPFile中的内容,但这是DBA的工作(我认为).无论如何,都可以更改.

I can also alter my system to change what's in the SPFile, but that's a DBA's job (I think). In any case, it CAN be changed.

这与其他 NLS 参数相似-例如,考虑 NLS_DATE_FORMAT ,其行为非常相似.

This is similar to other NLS parameters - consider NLS_DATE_FORMAT for example, the behavior is very similar.

这篇关于Oracle中VARCHAR2的默认值是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆