如何为PL/SQL块的表达式中的变量赋值? [英] how to assign value to variable in expression for a PL/SQL block?
本文介绍了如何为PL/SQL块的表达式中的变量赋值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
运行此脚本时,它在此语句no1:=(no1+no2)-(no2:=no1);
When I run this script it returns error in this statement no1:=(no1+no2)-(no2:=no1);
declare
no1 number(3):=31;
no2 number(3):=34;
begin
dbms_output.put_line('Before swap');
dbms_output.put_line('No1 : '||no1||' No2 : '||no2 );
-- no1:=(no1+no2)-(no2:=no1); generate error
dbms_output.put_line('After swap');
dbms_output.put_line('No1 : '||no1||' No2 : '||no2 );
end;
推荐答案
除了在PL/SQL中使用xor技巧外,您还可以简单地使用SQL语句
In addition to using the xor trick in PL/SQL, you can simply use a SQL statement
DECLARE
a number := 17;
b number := 42;
BEGIN
SELECT a, b
INTO b, a
FROM dual;
dbms_output.put_line( 'a = ' || a );
dbms_output.put_line( 'b = ' || b );
END;
在不使用临时变量的情况下交换两个变量
which swaps the two variables without using a temp variable
SQL> ed
Wrote file afiedt.buf
1 DECLARE
2 a number := 17;
3 b number := 42;
4 BEGIN
5 SELECT a, b
6 INTO b, a
7 FROM dual;
8 dbms_output.put_line( 'a = ' || a );
9 dbms_output.put_line( 'b = ' || b );
10* END;
SQL> /
a = 42
b = 17
PL/SQL procedure successfully completed.
这篇关于如何为PL/SQL块的表达式中的变量赋值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文