Oracle PLSQL存储过程为定义为SELECT TO_CHAR(日期,格式)的参数返回null

我必须从.NET访问以下存储过程:

 FUNCTION get_date (param_id NUMBER, 
                     param_date OUT VARCHAR2)

  RETURN NUMBER IS

  BEGIN

    SELECT TO_CHAR(date_stored, 'dd/mm/yyyy hh24:mi:ss')
    INTO param_date
    FROM MYTABLE
    WHERE storage_id = param_id

    RETURN 0;

     EXCEPTION
        WHEN NO_DATA_FOUND THEN
          RETURN -1;
        WHEN OTHERS THEN
          RETURN SQLCODE;

      END get_date;

我尝试连接以下代码:

using (OracleConnection connection = new OracleConnection(connString))
            {
                try
                {
                    connection.Open();                    
                    OracleCommand command = new OracleCommand();
                    command.BindByName = true;
                    command.Connection = connection;
                    command.CommandType = System.Data.CommandType.StoredProcedure;
                    command.CommandText = "GET_DATE";
                    OracleParameter paramScheduleId = command.Parameters.Add("param_id", OracleDbType.Int32);
                    paramScheduleId.Value = id;
                    OracleParameter paramDate = command.Parameters.Add("param_date", OracleDbType.Varchar2);
                    paramDate.Direction = System.Data.ParameterDirection.Output;                    
                    OracleParameter retVal = command.Parameters.Add("retVal", OracleDbType.Int32);
                    retVal.Direction = System.Data.ParameterDirection.ReturnValue;
                    OracleDataReader dr = command.ExecuteReader();
                    var date = ((OracleString)paramDate.Value).Value,                    
                }
                catch (OracleException e)
                {                    
                    throw e;
                }
            }

该表具有有效日期。但是参数param_date始终为null。

从Java代码调用该过程有效。

任何的想法?