原文地址:http://blog.csdn.net/drbing/article/details/51821262
截止到目前我发现有三种方法可以在存储过程中给变量进行赋值:
1、直接法 :=
如:v_flag := 0;
2、select into
如:假设变量名为v_flag,select count(*) into v_flag from students;
3、execute immediate 变量名(一般是sql的select语句) into 变量名
如:
v_sqlfalg := 'select count(*) from user_tables where table_name='''||v_tablename || '''';
execute immediate v_sqlfalg into v_flag;
其中,v_tablename也是变量
当然2和3实质是一样的。只不过3中的select语句是根据变量生成的。
在存储过程中,是不能直接写select语句的。