在 Oracle -17110 中创建存储过程 - 警告:执行完成并出现警告
Posted
技术标签:
【中文标题】在 Oracle -17110 中创建存储过程 - 警告:执行完成并出现警告【英文标题】:Creating stored procedure in Oracle -17110 - Warning: execution completed with warning 【发布时间】:2015-03-16 06:36:23 【问题描述】:我尝试使用连接到我的 Oracle 服务器(Oracle 数据库 11g 企业版版本 11.1.0.7.0)的执行查询客户端创建以下存储过程发现 here
CREATE PROCEDURE remove_emp (employee_id NUMBER) AS
tot_emps NUMBER;
BEGIN
DELETE FROM employees
WHERE employees.employee_id = remove_emp.employee_id;
tot_emps := tot_emps - 1;
END;
/
我越来越关注了,
程序已创建。
17110 - 警告:执行完成并出现警告
感谢您对此的任何帮助。
【问题讨论】:
【参考方案1】:始终使用 SHOW ERRORS 来查看完整的编译错误堆栈。
我不知道你遇到了什么错误,因为它对我有用:
SQL> CREATE PROCEDURE remove_emp (employee_id NUMBER) AS
2 tot_emps NUMBER;
3 BEGIN
4 DELETE FROM emp
5 WHERE emp.empno = remove_emp.employee_id;
6 tot_emps := tot_emps - 1;
7 END;
8 /
Procedure created.
SQL> sho err;
No errors.
SQL>
执行:
SQL> exec remove_emp(9999);
PL/SQL procedure successfully completed.
SQL>
【讨论】:
正如我所提到的,我从 Oracle 文档中获取了这个过程。即使根据您的建议进行修改后,我也会收到相同的警告。似乎我无法在我的客户端上尝试显示错误。 (执行查询) 文档中的例子是在HR
模式中执行的。那么,你有employees
表吗?或者您是否有像 SCOTT
或 HR
这样的示例架构?
发现了问题,我需要在 EQ 中使用“作为单个语句执行”功能 :) 似乎 EQ 默认会删除分号。
@udarak,好的。我从 sqlplus 添加了执行示例。以上是关于在 Oracle -17110 中创建存储过程 - 警告:执行完成并出现警告的主要内容,如果未能解决你的问题,请参考以下文章
oracle 怎么在存储过程中创建一个临时表,在里面插入数据,再查找这个临时表的所有数据,最后drop这个表。
oracle 怎么在存储过程中创建一个临时表,在里面插入数据,再查找这个临时表的所有数据,最后drop这个表。