我跟着一个documentation关于如何在JDBC和Spring中使用高级数据类型,创建了一个对象类型:
create or replace TYPE actor_type
AS OBJECT (id NUMBER(10), name VARCHAR2(50), age NUMBER);
创建了一个向DOM添加新行的简单过程:
create or replace PROCEDURE add_actor (in_actor IN actor_type)
AS
BEGIN
INSERT into actor (id, name, age) VALUES(in_actor.id, in_actor.name, in_actor.age);
END;
当我从Java调用一个过程来插入新行时,如文档中所述,name列设置为" null"在DB中。
但是,当我在演员类型中将名称dana类型更改为NVARCHAR时,如下所示:
create or replace TYPE actor_type
AS OBJECT (id NUMBER(10), name NVARCHAR2(50), age NUMBER);
当我在Java中执行相同的代码以插入新行时,数据会正确插入,而name列将设置为Java中指定的值。
我使用的是Oracle 10g数据库。
什么可能导致这个问题,以及如何避免id?