oracle的declare怎么写select
1个回答
展开全部
只需要在块里面的最前面输入声明即可。
示例:
declare
//这两个声明是声明了一个游标
type cursor_type is ref cursor;
cursor_deptno cursor_type;
//这下面2个变量的声明,使用的是emps表下面的sal或ename字段的类型,你也可以直接定义
v_sal emps.sal%type;
v_name emps.ename%type;
//你也可以这样,直接赋值,当然了,oracle里的赋值是需要使用“:=”,只用“=”报错
i number :=0;
begin
open cursor_deptno for select ename,sal into v_name,v_sal from emps
where deptno = &input deptno;
loop fetch cursor_deptno into v_name,v_sal; -- 循环体
if v_sal < 2000 then -- 判断
update scott.emps set sal = v_sal + 101 where ename = v_name;
end if;
exit when cursor_deptno%notfound; -- 当取完了即结束
dbms_output.put_line('Name:'|| v_name ||' Sal:'|| v_sal);
end loop;
end;
示例:
declare
//这两个声明是声明了一个游标
type cursor_type is ref cursor;
cursor_deptno cursor_type;
//这下面2个变量的声明,使用的是emps表下面的sal或ename字段的类型,你也可以直接定义
v_sal emps.sal%type;
v_name emps.ename%type;
//你也可以这样,直接赋值,当然了,oracle里的赋值是需要使用“:=”,只用“=”报错
i number :=0;
begin
open cursor_deptno for select ename,sal into v_name,v_sal from emps
where deptno = &input deptno;
loop fetch cursor_deptno into v_name,v_sal; -- 循环体
if v_sal < 2000 then -- 判断
update scott.emps set sal = v_sal + 101 where ename = v_name;
end if;
exit when cursor_deptno%notfound; -- 当取完了即结束
dbms_output.put_line('Name:'|| v_name ||' Sal:'|| v_sal);
end loop;
end;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询