我创建的存储过程却不能实现相关的修改及删除,这是为什么呢?
--1.修改某部门的管理者编号
--先建立个测试表
CREATE TABLE test_procedure(
department_id NUMBER(5),
department_name VARCHAR2(15),
manager_id NUMBER(5)
);
INSERT INTO test_procedure VALUES(110,'企划',1000);
SELECT * FROM test_procedure;
--修改(但是查询时,看不到有何变化,怎么回事呢?)
CREATE OR REPLACE PROCEDURE new_mgr
(v_mgr test_procedure.manager_id%TYPE,
v_dept test_procedure.department_id%TYPE)
IS
BEGIN
UPDATE test_procedure
SET manager_id = v_mgr
WHERE department_id = v_dept;
COMMIT;
END;--2.删除指定的部门,也不行啊,到底怎么了?
CREATE OR REPLACE PROCEDURE del_dept
(v_dept_id test_procedure.department_id%TYPE)
IS
BEGIN
DELETE test_procedure
WHERE department_id = v_dept_id;
END;
--1.修改某部门的管理者编号
--先建立个测试表
CREATE TABLE test_procedure(
department_id NUMBER(5),
department_name VARCHAR2(15),
manager_id NUMBER(5)
);
INSERT INTO test_procedure VALUES(110,'企划',1000);
SELECT * FROM test_procedure;
--修改(但是查询时,看不到有何变化,怎么回事呢?)
CREATE OR REPLACE PROCEDURE new_mgr
(v_mgr test_procedure.manager_id%TYPE,
v_dept test_procedure.department_id%TYPE)
IS
BEGIN
UPDATE test_procedure
SET manager_id = v_mgr
WHERE department_id = v_dept;
COMMIT;
END;--2.删除指定的部门,也不行啊,到底怎么了?
CREATE OR REPLACE PROCEDURE del_dept
(v_dept_id test_procedure.department_id%TYPE)
IS
BEGIN
DELETE test_procedure
WHERE department_id = v_dept_id;
END;
解决方案 »
- oracle中用户创建了角色,那么这个角色只有这个用户可以将它授权给别人么?
- 如何获取分组后按照某一个字段倒序的第一个值?这个sql怎么写啊
- 怎样才能把这样的sql语句优化呢?(强烈散粉)
- oracle字符串比较问题
- 急,急,在线等!数据库的死锁问题!
- 数据库字段拷贝问题,请求解答!!
- oracel数据库出现'initalizing or shutdown in process',不能登录,不知是何原因
- 请问用odbc 调用存储过程的问题
- oracle启动了,但进不去?
- 在线等待--急急急,马上结贴!!!
- 问下,我想取出字段里面含有%字符串的数据,问下sql如何写?
- 连续时间的判断(续)………………
第1个可能是因为v_dept对应的department_id不存在的原因!
exec new_mgr(2000,110);
new_mgr(2000,110);
end;
/
然后在使用存储过程.存储过程的使用步骤:先创建,再调用.
调用方式有4楼所说的两种.