I am running Snort on a Solaris server 8 and writing to an Oracle 8.1.7 database, again running on a Solaris server 8. I get the following two errors when Snort tries to write to database:
database: oracle_error: Error while trying to retrieve text for error ORA-01403
database: oracle_error: ORA-01840: input value not long enough for date format
Any feeback would be appreciated.
The ORA-1403 error is caused by a SQL statement that expects data to be returned, but there is not data being returned. For instance, in PL/SQL, I can have an SQL statement similar to the following:
SELECT ename INTO var_EName FROM emp WHERE empno=1001;
This SQL statement would put the value of the ENAME column into the variable var_EName where the EMPNO column contains a value of 1001. If there are no rows that match this criteria, there is no value to put into the variable; therefore the ORA-1403 error is raised.
To fix your ORA-1403 error, you would need to know which SQL statement is being issued at that time and find out why there is no data for that SQL statement.
The ORA-1840 error is caused because the string you are converting to a DATE datatype is not correct for your date format mask. For instance, the following SQL statement attempts to convert the given string to a DATE datatype:
SELECT TO_DATE('01-JAN-2004 12:34','DD-MON-YYYY HH24:MI:SS') FROM dual;
The problem with the above statement is that the string I try to convert does not have enough characters for the date format that I specified. This would cause the ORA-1840 error to be raised. The SQL statement that would execute properly is as follows:
SELECT TO_DATE('01-JAN-2004 12:34:56','DD-MON-YYYY HH24:MI:SS') FROM dual;
You'll have to supply the correct date value for your date format for the conversion to take place properly.