database - Oracle 存储过程不工作,可能是因为语法
问题描述
我知道我是个白痴。但我一直在尝试在我的 Oracle 数据库中创建这个简单的存储过程一段时间,但我不断收到错误“过程创建时出现编译错误”。我似乎找不到任何问题,并且我遵循我在网上找到的语法。我正在使用带有 pl/sql 11 的 Oracle xe 11g 服务器。请帮忙!
CREATE OR REPLACE PROCEDURE hr.countEmployee(passin IN NUMBER)
IS
BEGIN
SELECT COUNT(*) FROM hr.mitch_employee_motors WHERE hr.mitch_employee_motors.deptno = hr.countemployee.passin;
END;
解决方案
Aleksej 一针见血,我跟进了反映他评论的代码。
CREATE OR REPLACE PROCEDURE hr.countemployee (passin IN NUMBER)
IS
l_count INTEGER;
BEGIN
SELECT COUNT (*) INTO l_count
FROM hr.mitch_employee_motors
WHERE hr.mitch_employee_motors.deptno = hr.countemployee.passin;
DBMS_OUTPUT.PUT_LINE (l_count);
END;
你在用什么写和执行你的 SQL 和 PL/SQL?我鼓励您尝试SQL Developer。它会对您诊断问题有很大帮助。
推荐阅读
- mysql - 查询为每个经理计算员工人数(经理也为零计数)
- php - 重复键更新错误
- android - 所有支持库相同的版本
- python-3.x - 为什么分配给集群的数据会随着集群的数量而减少?
- javascript - onclick 聚焦使用 javascript 创建 js 文本框
- java - Graal 不支持垃圾收集器
- swift - 子对象的 Swift JSONEncoder().encode
- intellij-idea - 在intellij模板中区分int和double
- javascript - 如何在jquery中显示与单击的li相同的li类?
- angular - 避免或改进倾向于依赖于先前调用结果的角度服务调用