title: how to call procedure returning cursor with a date input using cx_Oracle
body: <p>I need to query an object using a date where the results are returned as a refcursor, if i just add the date to the function i get returned (date is not itterable). i've tried sending the time just as a string and that doesnt work either, i get a <code>ORA-01830: date format picture ends before converting entire input string</code></p>
  
  <p>procedure I'm using </p>
  
  <pre><code>PROCEDURE prc_get_some_data(
      p_date          IN  DATE,
      p_cursor        OUT SYS_REFCURSOR)
  IS
  BEGIN
      DBMS_APPLICATION_INFO.SET_CLIENT_INFO ('Python Script');
      OPEN p_cursor FOR
          SELECT * 
          FROM table
          WHERE creates = p_date;
  EXCEPTION
      WHEN OTHERS
          THEN
              DBMS_OUTPUT.PUT_LINE(DBMS_UTILITY.FORMAT_ERROR_STACK);  
              DBMS_OUTPUT.PUT_LINE(CHR(10));  
              DBMS_OUTPUT.PUT_LINE(DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);  
  END prc_get_somedatas;
  </code></pre>
  
  <p>python script </p>
  
  <pre><code>import sys, time
  from datetime import date, timedelta
  import random
  import cx_Oracle
  import string
  
  # Python Script to call a PL/SQL stored procedure to bulk load data
  
  
  class Test:
      def __enter__(self):
          self.__db = cx_Oracle.connect('/@wallet_string')
          self.__cursor = self.__db.cursor()
          return self
  
      def __exit__(self, type, value, traceback):
          self.__cursor.close()
          self.__db.close()
  
  
      def get_some_data(self):
          d=date.today() # Initialize a date variable with date of today
  
          db_start = time.time() 
          start_all = time.time()
  
          self.__cursor.bindarraysize = 2500 
          self.__cursor.arraysize = 10000 
  
          # create a cursor variable to return the results into
          l_cur = self.__cursor.var(cx_Oracle.CURSOR)
  
          #execute the procedure
          l_test = self.__cursor.callproc("prc_get_some_data",[datetime.strptime("2007-12-31 23:59:59", "%Y-%m-%d %H:%M:%S"), l_cur])[0]
  
  
          db_elapsed = (time.time() - db_start)
          total_elapsed = (time.time() - start_all)
  
          print "DB:\t ", db_elapsed, " seconds"  
          print "Total:\t ", total_elapsed, " seconds"  
  
          return list(l_test)
  
  
  
  if __name__ == "__main__":
  
      with Test() as mydbconn:
          for row in mydbconn.get_corporate_actions_equities():
              print row
  </code></pre>
  
  <p>database oracle 12c
  client: 12.1.0.2
  any help would be appreciated. </p>