2013-12-14 5 views
2

Я пытаюсь выполнить команду cx_Oracle.execute(sql_string, sql_data_dict).Python зависает при использовании cx_Oracle.execute()

sql_string - это мой SQL-запрос, и это что-то вроде INSERT INTO MY_TABLE(VAR1, VAR2) VALUES (:var1_, :var2_) и sql_data_dict - словарь, содержащий переменную, определенную в запросе; что-то вроде этого:

{var1_: "my_first_variable", var2_: "my_second_variable"}.

Python зависает по команде cx_Oracle.execute(sql_string, sql_data_dict). Поскольку я проверил, чтобы отлаживать внутри кода, кажется, что он не идет в библиотеку для выполнения execute, и я не знаю почему.

Я также попытался использовать cursor.prepare следующим образом:

cursor.prepare(sql_string) 
cursor.execute(None, sql_data_dict) 

Но у меня был такой же результат. Любая помощь?

EDIT 1:

Я должен упомянуть, что я выполнить мой запрос с помощью Navicat и у меня нет никаких проблем. Кроме того, нет ошибки в заявлении SELECT, так что это уже около INSERT.

ответ

1

Я гугл пару часов, а затем я понял, что это просто проблема на стороне сервера; поскольку сервер был перегружен, он отклонил некоторые запросы. Поэтому я должен просто сказать, что в коде нет ничего плохого, это может произойти, когда загрузка сервера становится огромной.

+0

Как вы узнали, что сервер перегружен, у меня такая же проблема, но я не уверен, что это тот же случай. – arsenbonbon

+0

@arsenbonbon, я использовал этот скрипт, чтобы узнать, сколько параллельных подключений было сделано в базе данных: 'select * from v $ session, где schemaname = 'SCHEMA_NAME'; '. –

Смежные вопросы