ORA-00947及解决

SQL> select * from 研究生;

学号 姓名 性 入学年份 总分 研究方向 导
------ -------- -- ---------- ---------- -------------------- ---
960011 蒋宏立 女 01-9月 -99 430 国际贸易 105
960012 杜楠楠 男 01-9月 -96 387 会计学 101
973011 洛秋红 女 05-9月 -97 408 市场营销 102

SQL> insert into 研究生
2 values('972011','何东升','男',to_date('1997-09-05','yyyy-mm-dd'),'会计学','101');
insert into 研究生
*
ERROR 在行 1:
ORA-00947: 值不够
此错误的原因是:表有7个列,依这种写法,values中必须有7个值
       改为:

insert into 研究生(学号,姓名,性,入学年份,研究方向,导)
2 values('972011','何东升','男',to_date('1997-09-05','yyyy-mm-dd'),'会计学','101');



最好使用这种方式,列与值的对应很清楚明白
       如果不写插入列的话,你必须把全部的列值插入,不能只为部分列插入值。



还有就是在用oracle的merge函数,在目标表里的字段都要一一对应起来

你可能感兴趣的:(oracle,sql)