--1.my_test1
create or replace procedure my_test1(id in varchar2)
as
name varchar2(10);
begin
select employee_name into name from employees where employee_id=id;
DBMS_OUTPUT.PUT_LINE(name);
end my_test1;----------------------------------------------------------
execute my_test1('1');程序报错
ORA-01403: 未找到数据
ORA-06512: 在"SYS.MY_TEST1", line 5
ORA-06512: 在line 1
但是employee_id=1,是有结果的
-----------------------------------------------------------
-----------------------------------------------------------
--2.test
create or replace procedure testas
v_month varchar2(2):= to_char(sysdate,'mm');
v_nm number(2):=to_number(v_month);begin
dbms_output.put_line(v_nm);end ;
----------------------------------------------------
declare
begin
procedure test;
end;
-----------------------------------------------------
请问,为何出现如上错误?
存储过程是否有问题?
pl/sql里到底该采用那种方式来执行存储过程(默认in输入参数时)
create or replace procedure my_test1(id in varchar2)
as
name varchar2(10);
begin
select employee_name into name from employees where employee_id=id;
DBMS_OUTPUT.PUT_LINE(name);
end my_test1;----------------------------------------------------------
execute my_test1('1');程序报错
ORA-01403: 未找到数据
ORA-06512: 在"SYS.MY_TEST1", line 5
ORA-06512: 在line 1
但是employee_id=1,是有结果的
-----------------------------------------------------------
-----------------------------------------------------------
--2.test
create or replace procedure testas
v_month varchar2(2):= to_char(sysdate,'mm');
v_nm number(2):=to_number(v_month);begin
dbms_output.put_line(v_nm);end ;
----------------------------------------------------
declare
begin
procedure test;
end;
-----------------------------------------------------
请问,为何出现如上错误?
存储过程是否有问题?
pl/sql里到底该采用那种方式来执行存储过程(默认in输入参数时)
begin
test;
end;
begin
procedure test;
end; 改成declare
begin
test;
end;
as
name varchar2(10);
begin
select employee_name into name from employees where employee_id=id;
DBMS_OUTPUT.PUT_LINE(name);
exception
when no_data_found then
dbms_output.put_line('没找到数据,你输入的id在表中不存在');
end my_test1;
但是没有返回值
已经set serveroutput on 了的
我原表的employee_id是varchar2的
但是,test怎么看到输出结果?--------------
declare
begin
test;
end;
--------------
2
3 as
4
5 v_month varchar2(2):= to_char(sysdate,'mm');
6 v_nm number(2):=to_number(v_month);
7
8 begin
9
10 dbms_output.put_line(v_nm);
11
12 end ;
13 /过程已创建。scott@STUDY> declare
2 begin
3 test;
4 end;
5 /
10PL/SQL 过程已成功完成。