загрузить данные в SAP IQ, используя python + sqlanydb. «Операция не выполнена для файла из-за прав доступа к файлу - PullRequest
0 голосов
/ 14 мая 2018

Я пытаюсь быстро загрузить файл в таблицу через python в SAP IQ. Столкнулся с такой проблемой. Изначально пользователь имеет доступ к загрузке файлов, используя инструкцию load table (...) using client file .... Если вы используете программное обеспечение от SAP (интерактивный sql), все работает нормально, но при использовании библиотеки sqlanydb я получаю сообщение об ошибке ... (b'Operation failed on file due to file permissions.) File: file.txt \ n-- (oslib / hos_clientfileio.cxx 143 ) ', -1006148). Помогите пожалуйста понять, что именно я делаю не так? Возможно, необходимо добавить какой-либо параметр в sqlanydb.connect (), но я не смог найти нормальную документацию. Я не могу использовать import или insert, потому что файлы могут стать больше в будущем (от 100К строк и более). Таким образом, инструкция load table (...) using client file очень быстро загружает данные и практически не требует усилий на сервере. Мой код:

import sqlanydb

conne = sqlanydb.connect(uid='user',
                         pwd='password',
                         databasename = 'dbname',
                         host = 'host.name')

_SQL = '''create table #REP001 (
                       col1 int,
                       col2 int
                     )
;
commit;

load table #REP001
(
  col1 ';',
  col2 '\x0d\x0a'
)
using client file 'file.txt'
            quotes off
            escapes off
;
commit;'''

cur = conne.cursor()
cur.execute(_SQL)

cur.close()
conne.close()

Я готов использовать любую идею, возможно, есть другие библиотеки, которые сделают это возможным с помощью python

...