CREATE TABLE TEST
(
ID NUMBER,
COL1 NCLOB DEFAULT 'EMPTY_CLOB()',
COL2 NCLOB DEFAULT EMPTY_CLOB(),
COL3 NCLOB DEFAULT (EMPTY_CLOB())
);默认的' EMPTY_CLOB()‘和默认的EMPTY_CLOB()和默认值(EMPTY_CLOB())之间的区别是什么?所有empty_clob()输出都相同,还是它们不同?
INSERT INTO TEST(ID) VALUES(1);
SELECT ID, LENGTH(COL1), LENGTH(COL2), LENGTH(COL3) FROM TEST;产出:
1 12 0 0发布于 2018-05-31 11:54:07
'EMPTY_CLOB()'是一个字符串常量。
EMPTY_CLOB()和(EMPTY_CLOB())是一样的。
它们返回指向初始化但空LOB的LOB定位器。
LOB列中的单元格可以处于下列状态之一:空表单元格被创建,但该单元格不包含任何定位器或值。空一个带有定位器的LOB实例存在于单元格中,但它没有值。LOB的长度是零。用定位器填充LOB实例,并在单元中存在一个值。
发布于 2018-05-31 11:53:03
DEFAULT 'EMPTY_CLOB()'没用。它将文本'EMPTY_CLOB()'插入到表中。如您所见,字符串"EMPTY_CLOB()“有12个字符。
EMPTY_CLOB()和(EMPTY_CLOB())应该是相同的,即空CLOB。
https://dba.stackexchange.com/questions/208344
复制相似问题