Websphere でアプリケーションを実行しています。サーバー上でデータ ソースを構成し、jndi からデータ ソースを取得しました。私はSpring Jdbcを使用しており、いくつかの選択ステートメントは問題なく実行されています。
これで、「toad」内から正常に実行されている挿入ステートメントがありますが、同じ挿入ステートメントがアプリケーションから失敗しています。
java.sql.SQLException: ORA-01400: cannot insert NULL into ("SCHEMA1"."XYZ"."CREATED_BY")
CREATED_BY is a VARCHAR2 (30 Byte) with DEFAULT set to 'SYS_CONTEXT ('USERENV', 'OS_USER')'
注: insert ステートメントで列を指定していません。私の発言は次のようなものです。
Insert into SCHEMA1.XYZ(some_column, another_column, is_active) values ('sadsf','sdfsdfsdf','Y')
私は jdbcTemplate を使用しているので、基本的には次のことを行っています。
jdbcTemplate.update(theQuery);
次のようにデータソースを構成しています。
<beans:bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<beans:property name="jndiName" value="jdbc/MyDatasource" />
</beans:bean>
これは、データ ソースの J2C 認証データである JAAS のセットアップ中に使用されたユーザー名からのものであると予想していました。
すべてのクエリで簡単に自動入力できるすべての監査列を指定したくありません。どんな助けでも大歓迎です。