我是按照书上的例题做的存储过程,为什么数据查不出来呢?
存储过程:create or replace procedure emp_proc (empno number)
as
empname varchar2(20);
begin
select ename into empname from emp where empno = empno;
dbms_output.put_line('雇员姓名是:' || empname);
exception
when no_data_found then
dbms_output.put_line('雇员编号未找到');
end emp_proc;
/执行后:
SQL> execute emp_proc(7900);
BEGIN emp_proc(7900); END;*
ERROR at line 1:
ORA-01422: exact fetch returns more than requested number of rows
ORA-06512: at "MICHAEL.EMP_PROC", line 5
ORA-06512: at line 1出现了这个问题,在书上是可以把结果显示出来的,是不是在建存储过程的时候还要授权?......真的是不太明白
请各位高手帮帮我啊!
存储过程:create or replace procedure emp_proc (empno number)
as
empname varchar2(20);
begin
select ename into empname from emp where empno = empno;
dbms_output.put_line('雇员姓名是:' || empname);
exception
when no_data_found then
dbms_output.put_line('雇员编号未找到');
end emp_proc;
/执行后:
SQL> execute emp_proc(7900);
BEGIN emp_proc(7900); END;*
ERROR at line 1:
ORA-01422: exact fetch returns more than requested number of rows
ORA-06512: at "MICHAEL.EMP_PROC", line 5
ORA-06512: at line 1出现了这个问题,在书上是可以把结果显示出来的,是不是在建存储过程的时候还要授权?......真的是不太明白
请各位高手帮帮我啊!
解决方案 »
- oracle数据库删除之后,磁盘空间没有变大,请高手指点
- ORACLE的存储过程 判断问题
- Oracle存储过程如何调用bat文件??????
- 5千万条记录怎么分步导出
- 晕,如此简单的触发器都报编译错误[求助]
- 我怎么没有Database Configuration Assistant 这个工具?
- 关于form_builder连接odbc的问题!!!!!
- 在Por*c里面EXEC SQL ……后怎么样取到SQL语句?
- 调查,请问国内现在那些大中型的软件企业使用Sybase的Powerbuild一套解决方案来进行大型c/s结构应用系统开发的,谢谢!
- oracle关于触发器的问题
- 初学oracle请教各位大哥
- 求一份toad for load 9.0.1.8的使用教程
书上的例子都能运行出来的,到了我机器上就不行了,是不是还要在配置一下?>
EMP表下没有多条重复的记录啊
select ename into empname from emp where empno = empno;
建议用法如下:
select ename into empname from emp where empno = empno and rownum<2;
确保返回值唯一,如果要多行返回,可以直接用显示游标来循环输出
这个语句有问题,系统无法区分出empno是变量,而是把它当作字段名处理了。你需要修改过程,把变量empno改名如v_empno。
总结:
我在SQLPLUS里直接用EXECUTE命令执行不可以,显示不出结果来
必须要在前面加上SET SERVEROUTPUT ON 才可以
我在PLSQL里执行EXECUTE命令不可以
要用begin
.......
end 这个语法格式才可以把结果显示出来
我不得不承认我是一个菜鸟!