插入表格

时间:2016-06-16 02:40:50

标签: sql database oracle

我在具有这种结构的Oracle服务器上有这个表:

Create table temp
(
    input number(10),
    str varchar(24),

    constraint L_PK PRIMARY KEY(input, str)
)

我对它做了一处修改:

alter table temp add userID number(10);

现在我正在尝试插入:

insert into temp values (9, 7, 'sure.');

但我收到一个错误说:

  

ORA-01722:无效的数字

有什么想法吗?我很确定它来自'确定',但我不能肯定地说。

6 个答案:

答案 0 :(得分:4)

插入时指定列名,以便将相应的数据插入列中。

insert into temp (input, userid, str)
values (9, 7, 'sure.');

答案 1 :(得分:4)

所以你创建了一个包含两列的表:

Create table temp(
input      number(10),
str      varchar(24),
constraint L_PK PRIMARY KEY(input,str),

对其进行了一处修改:

alter table temp add userID number(10);

这将为您提供一个包含输入 str userID 列的表格。然后尝试插入

insert into temp values (9, 7, 'sure.');

尝试将 9 插入输入(精), 7 插入 str (不是很好),并且确定进入 userID (再次,不是很好)。

您需要使用正确顺序的值来匹配列顺序:

insert into temp values (9, 'sure', 7);

或(更好更安全)首先指定列,然后指定要匹配的值:

insert into temp (input, userID, str) values (7, 9, 'sure');

答案 2 :(得分:2)

在你的情况下:

  

插入临时值(9,7,'确定。');

这意味着:

require(png)
writePNG(compressed, "compressed.picture")

确定。不是数字类型,Oracle服务器肯定会出错。

答案 3 :(得分:1)

如果您不更改插入顺序,则应更改更改SQL:

  

alter table temp在str ;

之后添加用户ID号码(10)

是的,'经过str'附加。 或者您可以像这样更改插入顺序:插入临时值(9,'确定',7);

无论您必须记住哪一列都应该与该值匹配,尤其是在数据类型中。

答案 4 :(得分:0)

您在表的末尾添加了userID。尝试

insert into temp values (9, 'sure.', 7);

答案 5 :(得分:0)

添加列后,它将添加到表的末尾

插入临时值(9,'确定。',7);

输出:

输入str userID   9肯定。 7