Вставить данные в базу данных Oracle в Python - PullRequest
0 голосов
/ 31 октября 2019

Я не могу вставить данные в базу данных с помощью динамического запроса в скрипте Python

def execute_query(self, qo):
    query_string = "INSERT INTO " +dep_table+ " (client, sis, entity_name_1, entity_name_2, flag_dep,process, flag_dep_det) VALUES (%s, %s, %s, %s, %s, %s, %s)" % ("'CO'","'"+qo.db_src+"'","'"+qo.table_src+"'","'"+qo.table_des+"'","'"+qo.check_func+"'","'"+qo.table_des+"'","'NULL'")+";"
    cursor.execute(query_string)

Я получил эту ошибку:

ERROR: Failed to set dependencies informations : ORA-00933: SQL command not properly ended

Соединение с базой данных в порядке, ноЯ не могу вставить.

Ответы [ 3 ]

1 голос
/ 31 октября 2019

Удалите точку с запятой в конце строки, которую вы создаете / выполняете.

Он не должен быть частью оператора SQL, скорее он используется в некоторых клиентских инструментах для указания конца операторатак что клиент может отправить его в базу данных для выполнения.

0 голосов
/ 31 октября 2019

Вы можете использовать метод format в Python, как показано ниже:

def execute_query(self, qo):
    query_string = "INSERT INTO {0} (client, sis, entity_name_1, entity_name_2, flag_dep,process, flag_dep_det) VALUES ('{1}', '{2}', '{3}', '{4}', '{5}', '{6}', {7})".format(dep_table, 'CO', qo.db_src, qo.table_src, qo.table_des, qo.check_func, qo.table_des, 'NULL')
    cursor.execute(query_string)
0 голосов
/ 31 октября 2019

Я нашел решение проблемы connection.commit()

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