java.sql.SQLException: ORA-01830: date format picture ends before converting entire input string

There are a number of ways to resolve this issue. Read the instructions provided here to have a better understanding on date format related errors.

If you are getting this when inserting or updating date-fields, you are probably passing the Oracle driver dates as a string that does not match what the driver expects. Problem Scenario: (For more detailed information about a situation where this can happen, skip to the Suggestions section if not interested). You have an AssemblyLine with a JDBC Connector in AddOnly mode that writes some records to an Oracle table with a field of type DATE. Normally, you can insert something like:
 INSERT INTO table1 values (to_date('2005/03/01 10:05:13','YYYY/MM/DD HH:MI:SS'))
as part of an INSERT query. However with IBM Security Directory Integrator, you can only do something like this in the output map:
 ret.value = '2005/03/01 10:05:13'; 
But if Oracle fails with the following error:
 java.sql.SQLException: ORA-01830: 
The Date Format picture ends before converting entire input string.

Suggestions

When dates are supplied as strings (which is what you are doing here) the IBM® Security Directory Integrator JDBC Connector will attempt to parse the data using the pattern provided in its Date Format configuration parameter, as explained in the Reference section of the product documentation. To debug your problem: What is your Data Pattern configuration? Find out how IBM Security Directory Integrator sees this field by checking in the schema tab of the Connector. A fair guess is that your JDBC driver will convert the Oracle Data type into a java.sql.TimeStamp or java.sql.Date type (and note that there are differences between java.util.Date and java.sql.Date, in terms of precision for example). In the case, for example, of a java.sql.Timestamp type, try specifying:

ret.value = java.sql.Timestamp(java.util.Date().getTime()); 
and see if this helps. Then you will be able to use:
ret.value = java.sql.Timestamp(system.parseDate(work.getString("yourDate"), 
	"yyyyMMddHHmmssz").getTime()); 
If none of the above helps, run the Connector in detailed log mode and see whether the Connector is able to get the schema from the database. If not, the Connector does not use prepared statements, which makes it less efficient and more error-prone, so you'll have to make sure that the Connector's schema configuration parameter is set correctly.