【发布时间】:2021-05-03 16:23:07
【问题描述】:
这是我创建的程序
QUERY_EMP(EID IN employees.employee_id%TYPE,JID OUT employees.job_id%TYPE,SAL OUT employees.salary%TYPE)
IS
BEGIN
SELECT JOB_ID,SALARY
INTO JID,SAL
FROM employees
WHERE employee_id = EID;
COMMIT;
END;
如果我使用以下方法运行该程序:
emp_id employees.employee_id%TYPE;
emp_salary employees.salary%TYPE;
emp_job_id employees.job_id%TYPE;
begin
emp_id := 103;
QUERY_EMP(emp_id,emp_job_id,emp_salary);
dbms_output.put_line('For: ' || emp_id );
dbms_output.put_line('Salary: ' || emp_salary);
dbms_output.put_line('Job Id: ' || emp_job_id);
end;
我收到以下错误 encountered exec query instead of symbols =@:(%
但是如果我在运行程序之前没有编写 exec 就运行它。那么为什么这里不需要 exec 命令,这里的 begin 和 end 有什么用呢?
【问题讨论】:
-
oracle live SQL 因为这是大学作业。 LiveSQL 文档中没有提到这一点
标签: sql oracle stored-procedures exec