G-2190: Avoid using ROWID or UROWID.
Major
Portability, Reliability
Reason
Be careful about your use of Oracle-specific data types like ROWID
and UROWID
. They might offer a slight improvement in performance over other means of identifying a single row (primary key or unique index value), but that is by no means guaranteed.
Use of ROWID
or UROWID
means that your SQL statement will not be portable to other SQL databases. Many developers are also not familiar with these data types, which can make the code harder to maintain.
Example (bad)
DECLARE
l_department_name departments.department_name%TYPE;
l_rowid ROWID;
BEGIN
UPDATE departments
SET department_name = l_department_name
WHERE ROWID = l_rowid;
END;
/
Example (good)
DECLARE
l_department_name departments.department_name%TYPE;
l_department_id departments.department_id%TYPE;
BEGIN
UPDATE departments
SET department_name = l_department_name
WHERE department_id = l_department_id;
END;
/