我在具有这种结构的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:无效的数字
有什么想法吗?我很确定它来自'确定',但我不能肯定地说。
答案 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