【问题标题】:What is the "Null" Column in Describe statement?描述语句中的“空”列是什么?
【发布时间】:2013-03-17 06:58:30
【问题描述】:

DESCRIBE 的结果中的“Null”列是什么意思?

例如:

decribe table1;

Name                 Null       Type
------------------  ----------  ---------------
Number                          Number(5)
Name                            Varchar2(25)
DeptNo              NotNull     Number(5)

【问题讨论】:

  • null 列说明该字段是否可以为空 - 你知道 NULL 是什么吗?

标签: sql oracle


【解决方案1】:

它告诉您是否允许 NULL 作为此列中的值。

如果 describe 语句没有为此列返回值,则允许使用 NULL 值,如果返回 NotNull,则不允许使用 NULL 值。

【讨论】:

  • 感谢您的信息。我正在使用 Select 语句 display 编写查询来显示表的结构。在该查询中,我需要添加 NULL 列。你能告诉我如何添加。我的查询是:选择 column_name 作为名称,可为空,数据类型 || '(' || data_length || ')' as Type from user_tab_columns where table_name='EMP';这里 EMP 表由三列组成,一列是名称 varchar2(25),没有编号(5),Deptno 编号(5) 唯一;
  • 试试"Null"(包括引号)作为列名。
  • 谢谢。但它将所有记录显示为空,但我只需要将 Deptno 显示为 NotNULL..
  • 如果你想复制 describe 命令,你可以使用这个问题@dimiky: stackoverflow.com/questions/9855209/…
【解决方案2】:

如果不允许将列设置为 NULL,则 USER_TAB_COLUMNS.NULLABLE 包含“N”,如果允许将列设置为 NULL,则包含“Y”。如果您想对 DESCRIBE 的行为进行建模,您的语句应该类似于:

select column_name as Name,
       CASE nullable WHEN 'N' THEN 'NotNull' WHEN 'Y' THEN NULL END AS NULLABLE,
       data_type || '(' || data_length || ')' as TYPE
  from user_tab_columns
  where table_name='EMP'

分享和享受。

【讨论】:

    【解决方案3】:

    列名的空值

    在创建新表时,您可以将列名指定为“可空”或不可空。

    CREATE TABLE table_name (col1 VARCHAR2(20) NULL,col2 VARCHAR2(35) NOT NULL)

    如果您尝试为 col2 插入 NULL 值,您将收到错误消息 [ORA-01400]。

    但我们应该记住,这不像键[primary,unique]。

    【讨论】:

      猜你喜欢
      • 2020-05-28
      • 2020-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-22
      • 2015-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多