विभिन्न स्रोत (जैसे विकिपीडिया , 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')
---------------------------------------
1unionकि पहले क्वेरी ब्लॉक में शामिल है 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')
-------------------------
1SQL सर्वर, 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 |