在SQL PL中开发时,'set'和'select into'之间有什么区别?
set var = (select count(1) from emp);
select count(1) into var from emp;
它们完全相同吗?我在哪里可以找到关于它们的文件?
答案 0 :(得分:3)
发出选择时,它不会返回任何值:
您可以使用以下两个存储过程检查差异:
使用set:
create or replace procedure test1 (
in name varchar(128)
)
begin
declare val varchar(128);
set val = (select schemaname
from syscat.schemata where schemaname = name);
end @
使用select into
create or replace procedure test2 (
in name varchar(128)
)
begin
declare val varchar(128);
select schemaname into val
from syscat.schemata where schemaname = name;
end @
通话集
$ db2 "call test1('nada')"
Return Status = 0
调用select into
$ db2 "call test2('nada')"
Return Status = 0
SQL0100W No row was found for FETCH, UPDATE or DELETE; or the result of a
query is an empty table. SQLSTATE=02000
这是两者之间的差异。使用select into时,您必须处理处理程序。
答案 1 :(得分:1)
据我所知,他们是
在某些情况下,你会做一种技巧而不是另一种技术。
例如。您不能在SET
中使用WITH URSET var1 =(selct .... from t with ur)
但可以做到
select a into var1 from t with ur
答案 2 :(得分:-1)
SELECT INTO
适用于SELECT
语句。
使用SET
,您可以直接指定函数的结果,进行计算或指定其他变量。 e.g。
SET var = var + 1;
SET var1 = var;