2013-03-27 52 views
0

什么是“空”列中的DESCRIBE结果意味着什么呢?描述语句中的“空”列是什么?

例:

decribe table1; 

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

空栏状态该字段是否可为空或不 - 你知道什么是NULL是什么? – 2013-03-27 08:45:52

回答

0

USER_TAB_COLUMNS.NULLABLE包含“N”如果不允许的列被设置为NULL,并且“Y”,如果该列可被设置为NULL。如果你想模拟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' 

分享和享受。对于列名

4

它会告诉你,如果NULL被允许在此列或没有价值。

如果描述语句返回此列没有值,NULL值是允许的,如果它返回NotNullNULL值是不允许的。

+0

感谢您的信息。我正在使用Select语句显示来编写查询来显示表的结构。在那个查询中我需要添加NULL列。你能告诉我如何添加。 我的查询是: 选择列名作为名称,空,DATA_TYPE || '('|| data_length ||')'作为来自user_tab_columns的类型,其中table_name ='EMP'; 这里EMP表由三列一个是名VARCHAR2(25),没有数(5),DEPTNO数(5)独特的; – dimiky 2013-03-27 09:03:52

+0

尝试''Null''(包括引号)作为列名。 – 2013-03-27 09:11:23

+0

谢谢。但它显示所有的记录为空,但我只需要显示Deptno作为NotNULL .. – dimiky 2013-03-27 09:15:57

0

Null值在创建新表时,可以给列名作为“可为空”或不能为空。

CREATE TABLE表名(COL1 VARCHAR2(20)NULL,COL2 VARCHAR2(35)NOT NULL

如果您尝试插入NULL值COL2你会得到一个错误信息[ORA-01400 ]。

但是我们应该记住,这不像是一个关键[小学,独特。