Как вставить строку txt.file в MYSQL, используя python - PullRequest
1 голос
/ 18 июня 2020

У меня есть текстовый файл, содержащий несколько строк символов, как показано ниже:

0546afwq,
5fj532gs,
1824t4sa,
sq234312

enter image description here

Теперь я хотел бы импортировать этот файл .txt. в базу данных SQL с именем TV, используя Python и SQL, и создайте таблицу ADMIN, добавьте столбец TXT_results (тип varchar2).

Это то, что я пробовал так далеко:

import cx_Oracle

conn = cx_Oracle.connect('account/password@db')

cur = conn.cursor()

if conn:

print("data base has already connected")

with open(r'C:\Users\Desktop\result.txt') as infile:

for line in infile:

    data = line.split(",")
    query = ("insert INTO admin(txt_results) VALUES (%s)")
    cur.execute(query, data)

    cur.close()
    conn.commit()
    conn.close()  

И получил следующий код ошибки: "ORACLE] ORA-01036: illegal variable name/number"

Может ли кто-нибудь помочь мне решить эту проблему?

Спасибо

Ответы [ 2 ]

0 голосов
/ 19 июня 2020

Уже используйте запятые для разделения значений, также изменил этот скрипт, как указано выше. Однако до сих пор не работает. И я уверен, что я уже создал столбец txt_results под административной таблицей. Я не уверен, связана ли эта проблема с типом столбца? Я использую тип varchar2 для столбца результатов txt_results.

Traceback (последний вызов последним): файл «database.py», строка 10, в cur.execute (запрос, данные) cx_ Oracle .DatabaseError : ORA-01036: недопустимое имя / номер переменной

0 голосов
/ 18 июня 2020

Для начала, TXT_results не определен в вашем db, я предполагаю, что вы хотели вместо этого заполнитель для строки, которая будет% s, но вы также должны отформатировать значения строки, которую вы читаете (разделите запятыми по полю ), также всегда полезно указать столбцы, которые вы вставляете для прозрачности

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