Oracle_cx - выполнять множество проблем с данными - PullRequest
0 голосов
/ 14 июля 2020

Я новичок в этой опции Python и Oracle executemany.

  • У меня есть фрейм данных шириной 131 столбец. Одна дата - все остальные с плавающей точкой и последней строкой.

дата объект open float64 high float64 low float64 close float64 ... LINEARREG_SLOPE float64 STDDEV float64 TSF float64 VAR float64 объект символа

  • Я могу вставлять данные, используя для l oop по одной вставке за раз - есть 2 миллиона строк - поэтому это занимает часы

  • Я тестировал переход на Executemany - он работает на небольших 5-колоночных тестах, которые я сделал. Это тоже быстро.

  • когда я пытаюсь поместить его на все 132 столбца, я получаю сообщение об ошибке ниже - так что я знаю, что это не база данных.

- ЭТО работает

many = list(df1.to_records(index=False)) 
#print(many)
#rows = [tuple(x) for x in df1.values]
#print(rows)    
cursor.executemany("insert into mytable3 values (to_date(:D,'YYYY-MM-DD'),:open, :high, :low, :close, :volume)" , many)
connect.commit()  

- СЕЙЧАС, если я добавлю все 132 столбца - это НЕ ИСПОЛЬЗУЕТСЯ с этой ошибкой - чего не произойдет, если я сделаю EXECUTE

   Traceback (most recent call last):
   File "Oracle_CX_ExecuteMany.py", line 597, in <module>
    f_call_add_talib_to_frame_loader('ETF')
   File "Oracle_CX_ExecuteMany.py", line 558, in f_call_add_talib_to_frame_loader
    :symbol )" , many )
    cx_Oracle.NotSupportedError: Python value of type numpy.int32 not supported.

- код - список преобразованных данных - многим не по душе. У меня есть только данные с плавающей запятой, как показано выше.

Пожалуйста, сообщите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...