विभिन्न स्रोत (जैसे विकिपीडिया , PSOUG ) बताते हैं कि ओरेकल के null
पास एक प्रकार नहीं है। क्या ये सच है?
अन्य RDBMS के बारे में क्या?
विभिन्न स्रोत (जैसे विकिपीडिया , PSOUG ) बताते हैं कि ओरेकल के null
पास एक प्रकार नहीं है। क्या ये सच है?
अन्य RDBMS के बारे में क्या?
जवाबों:
आकाशवाणी:
null
शाब्दिक एक प्रकार नहीं है, लेकिन
null
किसी भी प्रकार के लिए डाला जा सकता है, और यह आवश्यक हो सकता है जब
decode
फ़ंक्शन के रिटर्न प्रकार को नियंत्रित करना , जैसे:
select decode('A','B',to_char(null),'A','1') from dual;
DECODE('A','B',TO_CHAR(NULL),'A','1')
-------------------------------------
1
select decode('A','B',to_number(null),'A','1') from dual;
DECODE('A','B',TO_NUMBER(NULL),'A','1')
---------------------------------------
1
union
कि पहले क्वेरी ब्लॉक में शामिल है anull
null
डेटाबेस में संग्रहीत मान में हमेशा एक प्रकार होता है:
create table t(n integer, s varchar(10));
insert into t values(null, null);
select decode('A','B',n,'A','1') from t;
DECODE('A','B',N,'A','1')
-------------------------
1
select decode('A','B',s,'A','1') from t;
DECODE('A','B',S,'A','1')
-------------------------
1
SQL सर्वर, int
SELECT NULL AS foo INTO dbo.bar
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'bar'
DROP TABLE dbo.bar
MySQL, बाइनरी (0)
CREATE TABLE mydb.foo (select NULL AS bar);
EXPLAIN mydb.foo;
DROP TABLE mydb.foo;
select isnumeric(null)
= 0 ... दिलचस्प
ओरेकल यह कुछ अर्थ में कुछ स्ट्रिंग प्रकार है।
एडीएस रीडर मुझे जो बताता है, वह है। यहाँ एक पॉवर्सशेल स्क्रिप्ट है:
[System.Reflection.Assembly]::LoadWithPartialName("System.Data.OracleClient")
$ConnectionString = "Data Source=myTNS;User ID=myUSER;Password=myPassword"
$conn=new-object System.Data.OracleClient.OracleConnection
$conn.ConnectionString=$ConnectionString
$conn.Open()
$sql = "Select NULL xx from DUAL"
$cmd=new-object System.Data.OracleClient.OracleCommand($sql,$conn)
$r = $cmd.ExecuteReader()
$r.GetSchemaTable() | % { $_
}
देता है कि
ColumnName : XX
ColumnOrdinal : 0
ColumnSize : 0
NumericPrecision : 0
NumericScale : 0
DataType : System.String
ProviderType : 22
IsLong : False
AllowDBNull : True
IsAliased :
IsExpression :
IsKey :
IsUnique :
BaseSchemaName :
BaseTableName :
BaseColumnName :
ProviderSpecificDataType : System.Data.OracleClient.OracleString
ध्यान दें लाइन
प्रोवाइडरस्पेक्ट्रैडटाइप: System.Data.OracleClient.OracleString
postgres:
create table foo as select null as bar;
WARNING: column "bar" has type "unknown"
DETAIL: Proceeding with relation creation anyway.
postgres=> \d foo
Column | Type | Modifiers
--------+---------+-----------
bar | unknown |