0

部门表如下:

DEPT

DEPT NO NOT  NULL NUMBER (2)

DNAME             VARCHAR(16)

LOC                VARCHAR(13)

PHONE              NUMBER(10)

我正在执行以下查询:

更新 DEPT 中的每一行以设置 PHONE 列的值。不要让电话为空。每个部门使用不同的电话号码。

所以上面带有Phone列的表就是上面查询的结果。我尝试运行以下查询:

UPDATE DEPT
SET PHONE = 213-611-8209
WHERE DEPTNO = 10;

但是,当我运行后检查内容时,SELECT * from dept,我在电话栏下只看到“-8607”。为什么?

问题 #2) 我可以在单个查询中为所有行插入电话号码吗?

谢谢

4

1 回答 1

1

由于该PHONE列被定义为一种NUMBER数据类型:213 减去 611 减去 8209 = -8607。

您需要将PHONE列定义为 aVARCHAR2(12 CHAR)并运行:

UPDATE DEPT
SET PHONE = '213-611-8209'
WHERE DEPTNO = 10;

或者将其保留为NUMBER数据类型并运行:

UPDATE DEPT
SET PHONE = 2136118209
WHERE DEPTNO = 10;

至于您的第二个问题,您可以在单个插入(或更新)语句中插入(或更新)电话号码吗?好吧,这取决于...这些电话号码存储在哪里?还是您只是为每一行随机生成电话号码?答案是“是的”——你可以,但如何做到这一点取决于很多事情。

于 2013-04-26T22:11:19.533 回答