The rowid column doesn't follow the custom parameter naming convention.
In Schema Browser, for a table, right click and choose to "Create dml procedure".
In the option settings, for the "WHERE Clause", select to use ROWID.
In the "Other Options" tab in the "Naming" section, specify to use...
In Parameters: pi_%ColumnName%
Out parameters: po_%ColumnName%
When a script is generated (i.e. a merge statement), the ROWID doesn't follow the specified naming conventions.
Sample Generated Script
PROCEDURE UPD_TEST_MERGE_SCRIPT
(pi_COL1 IN TEST_MERGE_SCRIPT.COL1%TYPE,
pi_COL2 IN TEST_MERGE_SCRIPT.COL2%TYPE,
in_ROWID ROWID)
IS
BEGIN
UPDATE TEST_MERGE_SCRIPT
SET COL2 = pi_COL2
WHERE ROWID = in_ROWID;
END UPD_TEST_MERGE_SCRIPT;
Other parameters apply the specified naming convention of pi_col1 and pi_col2. But ROWID stays as in_rowid (using the default in_), instead of pi_rowid.
WORKAROUND:
None
STATUS:
Waiting for fix in a future version of Toad Oracle.