Xem thay đổi bên dưới, lệnh gọi đến title_crud
không có biến để giữ những gì đang được nó trả về (p_err)
PROCEDURE create_title(
P_TITLE varchar2,
P_USER varchar2,
P_ERR OUT VARCHAR2
)
IS
BEGIN
IF P_TITLE IS NULL THEN
P_ERR := 'Null value';
ELSE
title_crud('I',NULL,P_TITLE,P_USER,P_ERR); -- Extra Parameter
END IF;
END;
PROCEDURE title_crud(
P_OP_TYPE VARCHAR2,
P_ID number,
P_TITLE varchar2,
P_USER varchar2,
P_ERR OUT VARCHAR2
)...
Một sai lầm dễ mắc phải nhưng tôi thấy dễ tránh hơn khi gọi một thủ tục mà bạn truyền các tham số bằng ký hiệu được đặt tên. Cuộc gọi đến title_crud của bạn sẽ trở thành
...
title_crud(P_OP_TYPE => 'I',
P_ID => NULL,
P_TITLE => P_TITLE,
P_USER => P_USER,
P_ERR => P_ERR);
...