Su cadena de entrada en to_date() La función no coincide con su patrón. El valor contiene - como delimitador, sin embargo, en el patrón usa / :
Si alinea su formato de entrada y el patrón, esto debería funcionar:
datetrx <= to_date('2014-07-16 00:00:00','yyyy-mm-dd hh24:mi:ss')
Personalmente, prefiero los literales de marca de tiempo ANSI sobre el to_date() funcionan porque son portátiles y se escribe menos:
datetrx <= timestamp '2014-07-16 00:00:00'
Tenga en cuenta que el formato de la cadena proporcionada aquí es siempre el formato ISO.
Una nota al margen:
Cualquier "formato" que vea al mirar los valores en la columna daterx es aplicado por el cliente SQL que utiliza para mostrar esos datos (SQL*Plus, SQL Developer, ...).
El valor en sí se almacena sin formato en el servidor Formateo de una DATE el valor es siempre hecho por el cliente SQL (o su aplicación):