Có hành vi "đặc biệt" trong Oracle: Tên phần giữ chỗ lặp lại trong SQL động Tuyên bố
Trong một Khối ẩn danh hoặc Tuyên bố GỌI, không bắt buộc phải lặp lại các giá trị liên kết nếu tên bằng nhau. Ví dụ: Khối ẩn danh này đang hoạt động:
DECLARE
a NUMBER := 4;
b NUMBER := 7;
plsql_block VARCHAR2(100);
BEGIN
plsql_block := 'BEGIN calc_stats(:x, :x, :y, :x); END;';
EXECUTE IMMEDIATE plsql_block USING a, b; -- calc_stats(a, a, b, a)
END;
/
Nhưng EXECUTE IMMEDIATE plsql_block USING a, b;
không hoạt động bên trong một Thủ tục .