create table employee (
employee_id NUMBER NOT NULL,
name VARCHAR2(255) NOT NULL,
notes VARCHAR2(4000),
created_by varchar2(255) not null,
created_at date default sysdate not null,
updated_by varchar2(255) not null,
updated_at date default sysdate not null,
PRIMARY KEY(vendor_id)
);
所以当我从SQL开发插入:
insert into employee(employee_id, name,notes) values(1,'xyz','test');
它自动填充create_by,created_at,和的updated_at updated_by。
行插入成功。
而如果我尝试使用cx_Oracle模块在python插入,
cursor.execute("INSERT INTO employee VALUES (:employee_id,:name,:notes)",
{
'employee_id' : max_value,
'name' : each_vendor,
'notes' : 'test'
}
)
它抛出错误说没有足够的值。
为什么我得到这个错误?我该如何解决它?
+0
你确定它工作在SQL Developer中?您没有为created_by或updated_by列指定任何默认值,因此无论您从哪里运行该插入语句,都会预期它会失败。 –
+0
您是否检查过变量的值? max_value和each_vendor –