Dept表如下:
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 *来自dept,我在电话栏下只看到“-8607”。为什么呢?
Que#2)我可以在一个查询中插入所有行的电话号码吗?
由于
答案 0 :(得分:1)
由于PHONE
列定义为NUMBER
数据类型:213减去611减去8209 = -8607。
您需要将PHONE
列定义为VARCHAR2(12 CHAR)
并运行:
UPDATE DEPT
SET PHONE = '213-611-8209'
WHERE DEPTNO = 10;
或者将其保留为NUMBER
数据类型并运行:
UPDATE DEPT
SET PHONE = 2136118209
WHERE DEPTNO = 10;
关于第二个问题,您可以在单个插入(或更新)声明中插入(或更新)电话号码吗?那取决于......这些电话号码存储在哪里?或者你只是随机生成每一行的电话号码?答案是肯定的 - 你可以,但是如何做到这一点取决于许多事情。