如何在 sql*plus 中执行动态 sql 语句
How to execute a dynamic sql statement in sql*plus
我想使用动态 sql 语句修改值。该示例被选择为可重现的。我知道我不需要动态的 sql 声明。
variable a number =1;
print a
1
exec execute immediate 'select 2 into :a from dual'
PL/SQL procedure successfully completed.
print a
1
返回 1 而不是 2,这意味着我的语句没有被执行。
那么,如何执行呢?
INTO
应该出execute immediate
:
SQL> var a number = 1;
SQL> print a
A
----------
1
SQL> exec execute immediate 'select 2 from dual' into :a;
PL/SQL procedure successfully completed.
SQL> print a
A
----------
2
SQL>
我想使用动态 sql 语句修改值。该示例被选择为可重现的。我知道我不需要动态的 sql 声明。
variable a number =1;
print a
1
exec execute immediate 'select 2 into :a from dual'
PL/SQL procedure successfully completed.
print a
1
返回 1 而不是 2,这意味着我的语句没有被执行。
那么,如何执行呢?
INTO
应该出execute immediate
:
SQL> var a number = 1;
SQL> print a
A
----------
1
SQL> exec execute immediate 'select 2 from dual' into :a;
PL/SQL procedure successfully completed.
SQL> print a
A
----------
2
SQL>