什么:1表示动态sql

Onk*_*ari -2 oracle plsql dynamic-sql

vsql='select ename into y from emp where empno=:1'
Run Code Online (Sandbox Code Playgroud)

这是什么:1意思吗?

Lit*_*oot 5

它是您将使用的参数值的占位符.

例如:

SQL> set serveroutput on
SQL> declare
  2    l_empno number := 7902;
  3    v_sql   varchar2(200);
  4    l_ename varchar2(20);
  5  begin
  6    v_sql := 'select ename from emp where empno = :1';
  7    execute immediate v_sql into l_ename using l_empno;   --> this
  8    dbms_output.put_line(l_ename);
  9  end;
 10  /
FORD

PL/SQL procedure successfully completed.

SQL>
Run Code Online (Sandbox Code Playgroud)