先说一下你的问题,declare在oracle中指代的是“块”,用于处理一段业务逻辑的。\x0d\x0a声明块中的变量,只需要在块里面的最前面输入声明即可。\x0d\x0a示例:\x0d\x0adeclare\x0d\x0a //这两个声明是声明了一个游标\x0d\x0a type cursor_type is ref cursor;\x0d\x0a cursor_deptno cursor_type;\x0d\x0a //这下面2个变量的声明,使用的是emps表下面的sal或ename字段的类型,你也可以直接定义\x0d\x0a v_sal emps.sal%type;\x0d\x0a v_name emps.ename%type;\x0d\x0a //你也可以这样,直接赋值,当然了,oracle里的赋值是需要使用“:=”,只用“=”报错\x0d\x0a i number :=0;\x0d\x0a\x0d\x0abegin\x0d\x0a open cursor_deptno for select ename,sal into v_name,v_sal from emps\x0d\x0a where deptno = &input deptno;\x0d\x0a\x0d\x0a loop fetch cursor_deptno into v_name,v_sal; -- 循环体\x0d\x0a\x0d\x0a if v_sal < 2000 then -- 判断\x0d\x0a update scott.emps set sal = v_sal + 101 where ename = v_name;\x0d\x0a end if;\x0d\x0a\x0d\x0a exit when cursor_deptno%notfound; -- 当取完了即结束\x0d\x0a dbms_output.put_line('Name:'|| v_name ||Sal:'|| v_sal);\x0d\x0a end loop; \x0d\x0aend;
温馨提示:答案为网友推荐,仅供参考