我试图打印一条消息,告诉您用户是否退出员工表。
这是我的代码;
DECLARE
empid employees.employee_id%type := &id;
BEGIN
if empid IS NOT NULL Then
DBMS_OUTPUT.PUT_LINE('user Exists');
elsif
if empid IS NULL Then
DBMS_OUTPUT.PUT_LINE('User doesnt exist');
END;
/
它返回用户退出,即使它不是我使用数据测试它不知道在哪里更改或我是否使用select语句来选择数据
任何帮助将不胜感激
答案 0 :(得分:2)
您需要从选择中填充变量。通常,它会像这样工作:
select id into empid from emp where id = 1234
但要注意。如果该ID不存在,那么您将获得ora-01403
。要使用此方法将其选择到变量中,结果集中需要有一条记录。因此,如果您的ID不存在,请重新排列此类查询以返回null
:
select (select id from emp where id = 1234) into empid from dual
答案 1 :(得分:1)
2种可能的解决方案:
DECLARE
empid employees.employee_id%type := &id;
cnt integer;
BEGIN
select count(*) into cnt from emp where id = empid;
if cnt > 0 Then
DBMS_OUTPUT.PUT_LINE('user Exists');
else
DBMS_OUTPUT.PUT_LINE('User doesnt exist');
end if;
END;
/
或者,如果您想获得有关该员工的一些信息:
DECLARE
empid employees.employee_id%type := &id;
empname employees.employee_name%type;
BEGIN
select name into empname from employees where employee_id = empid;
DBMS_OUTPUT.PUT_LINE('user Exists name='||empname);
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('User doesnt exist');
END;
/