我试图在PL/SQL中找出VARRAY的可能的上限。
我们确实可以将VARRAY类型定义为
TYPE type_name IS {VARRAY | VARYING ARRAY} (size_limit)
OF element_type [NOT NULL];Oracle文档可以这样说:
每个varray存储为单个对象,或者存储在表中(如果varray小于4KB),或者存储在表外(如果varray大于4KB),但仍存储在相同的表空间中。您必须同时更新或检索varray的所有元素,这在同时对所有元素执行某些操作时是最合适的。但是,您可能会发现以这种方式存储和检索大量元素是不切实际的。
但是,size_limit参数的上限是什么?它是否等于无符号整数(4,294,967,295)?
发布于 2015-11-10 02:10:33
在PL/SQL中,限制为2147483647。同样的限制也适用于架构变化的数组类型。
DECLARE
TYPE t IS VARRAY(2147483647) OF NUMBER;
BEGIN
NULL;
END;如果你增加它,它会抛出PLS-00325: non-integral numeric literal 2147483648 is inappropriate in this context。
https://stackoverflow.com/questions/33621047
复制相似问题