PL/SQL 你能帮我理解这个 PL/SQL 代码吗?

PL/SQL can you help me understand this PL/SQL code?

我在 PL/SQL 中有关于 DBMS_SQL 用法的代码;当我分配字符串 sqlString 时,":sal" 做了什么?

DECLARE

sqlString VARCHAR2(100);

c INTEGER;

rows_processed INTEGER;

max_salary INTEGER;


BEGIN
max_salary := 10000;   
sqlString := 'DELETE FROM employees WHERE salary > :sal';    
c := DBMS_SQL.OPEN_CURSOR;

DBMS_SQL.PARSE(c, sqlString, DBMS_SQL.NATIVE);    
DBMS_SQL.BIND_VARIABLE(c, ':sal', max_salary);

rows_processed := DBMS_SQL.EXECUTE(c);

DBMS_OUTPUT.PUT_LINE('Impiegati cancellati: ' || rows_processed);

DBMS_SQL.CLOSE_CURSOR(c);

END;

这里解释得很好:

http://www.dba-oracle.com/t_plsql_dbms_sql_bind_variable.htm

它只是将“max_salary”的值赋给 sal 变量。这用于动态 SQL 过程。

代码正在执行此查询 (sal = max_salary = 10000):

DELETE FROM employees WHERE salary > 10000

最后显示删除了多少条记录。