首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

PL/sql 语法有关问题

2012-05-24 
PL/sql 语法问题?SQL code CREATE OR REPLACE PROCEDUREfind_emp2(emp_no NUMBER) AS BEGINSELECT *FROM E

PL/sql 语法问题?

SQL code
 CREATE OR REPLACE PROCEDURE  find_emp2(emp_no NUMBER) AS BEGIN   SELECT *  FROM EMP WHERE empno = emp_no; EXCEPTION   WHEN NO_DATA_FOUND THEN     DBMS_OUTPUT.PUT_LINE ('雇员编号未找到'); END find_emp2;

在T_SQL很容易实现的东西. 到PL/sql 为什么报错!

[解决办法]
存储过程中select 要into个东东

你sql返回的是一组值,可以用table类型接收或用游标


[解决办法]
探讨
我就想返回一组值. 难到要这么复杂? 前台开发只要筛选后的值.

[解决办法]
SQL code
CREATE OR REPLACE PROCEDURE find_emp2(emp_no NUMBER) a number; AS BEGIN   SELECT empno into a FROM EMP WHERE empno = emp_no and rownum = 1;---这里可能会有找到多条记录的情况,也会导致错误所以加个rownum取第一个 EXCEPTION   WHEN NO_DATA_FOUND THEN     DBMS_OUTPUT.PUT_LINE ('雇员编号未找到'); END find_emp2;
[解决办法]
单独的select要用select into的形式
如果是想返回一个结果集,那么最好把结果集放到标签里
CURSOR C_CUR IS SELECT * FROM EMP WHERE empno = emp_no;

热点排行