数据库PL/SQL的问题

来源:百度知道 编辑:UC知道 时间:2024/06/27 15:12:57
我刚开始学数据库,很多东西不懂,我想问
DECLARE
X NUMBER(7,2);
BEGIN
SELECT sal INTO x FROM emp WHERE empno = 7788;
IF x < 3000 THEN UPDATE emp SET sal = 3000
WHERE empno = 7788;
END IF;
END;
这个输入后为什么没有反应的?不报错也不执行,是不是之前漏做了什么呢?是不是还要弄什么触发器之类的?我不懂,该怎么弄呢?代码是进去就是没反应,高手指导下,谢谢!~

end 后面加个 /

DECLARE
X NUMBER(7,2);
BEGIN
SELECT sal INTO x FROM emp WHERE empno = 7788;
IF x < 3000 THEN UPDATE emp SET sal = 3000
WHERE empno = 7788;
END IF;
END;
/

---
以上,希望对你有所帮助.

反映是有,但是是PL/SQL后台执行的,但你看不着而已

你这个只是把一个变量放到了X里
然后如果X<3000就把它改为3000,这一切都在后台执行
但是你丢下了一个最关键的东西,就是oracle在update或者insert的时候都必须提交 ,也就是传说中的commit
再一个,你代码写的也太不规范了,能不能都对齐啊

DECLARE
X NUMBER(7,2);
BEGIN
SELECT sal INTO x FROM emp WHERE empno = 7788;
IF x < 3000
THEN
UPDATE emp SET sal = 3000 WHERE empno = 7788;
commit;
END IF;
END;

执行后
如果之前这个empno = 7788的sal不等于3000,最后你
SELECT * FROM emp WHERE empno = 7788;
看到的sal一定是=3000的