TRIM 方法从集合的末尾删除一个或多个元素。TRIM 方法的语法如下:

collection.TRIM[(count)]

collection 是集合的名称。

count 是从集合末尾删除的元素的数量。如果 count 小于 0 或者大于集合中元素的数量,则 POLARDB for Oracle 将返回错误。

以下示例演示了如何使用 TRIM 方法从集合末尾删除一个元素:

DECLARE
    TYPE sparse_arr_typ IS TABLE OF NUMBER;
    sparse_arr      sparse_arr_typ := sparse_arr_typ(-100,-10,0,10,100);
BEGIN
    DBMS_OUTPUT.PUT_LINE('COUNT: ' || sparse_arr.COUNT);
    sparse_arr.TRIM;
    DBMS_OUTPUT.PUT_LINE('COUNT: ' || sparse_arr.COUNT);
END;

COUNT: 5
COUNT: 4

COUNT 指出,在调用 TRIM 方法之前,集合中有 5 个元素;在调用 TRIM 方法之后,集合包含 4 个元素。

此外,还可通过 TRIM 方法,指定要从集合末尾删除的元素的数量:

DECLARE
    TYPE sparse_arr_typ IS TABLE OF NUMBER;
    sparse_arr      sparse_arr_typ := sparse_arr_typ(-100,-10,0,10,100);
    v_results       VARCHAR2(50);
BEGIN
    DBMS_OUTPUT.PUT_LINE('COUNT: ' || sparse_arr.COUNT);
    sparse_arr.TRIM(2);
    DBMS_OUTPUT.PUT_LINE('COUNT: ' || sparse_arr.COUNT);
    FOR i IN sparse_arr.FIRST .. sparse_arr.LAST LOOP
        IF sparse_arr(i) IS NULL THEN
            v_results := v_results || 'NULL ';
        ELSE
            v_results := v_results || sparse_arr(i) || ' ';
        END IF;
    END LOOP;
    DBMS_OUTPUT.PUT_LINE('Results: ' || v_results);
END;

COUNT: 5
COUNT: 3
Results: -100 -10 0

COUNT 指出,在调用 TRIM 方法之前,集合中有 5 个元素;在调用 TRIM 方法之后,集合包含 3 个元素。