powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / python oracle insert ORA-01036
7 сообщений из 7, страница 1 из 1
python oracle insert ORA-01036
    #38953418
Всем привет! Пишу скриптик, для сравнения 2-х файлов и загрузки разницы в базу. Все уже написала, файлы сравнивает, но при инсерте в базу ругается на "DatabaseError: ORA-01036: неверное имя/номер переменной". Не могу понять в чем проблема(((
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
import os, time
import datetime
import re
from difflib import ndiff
import ftplib
import cx_Oracle

direct = 'C:/Users/Documents/new'
files = []
listing = []
delta = []
 
#ftp = ftplib.FTP('127.0.0.1')
#ftp.login(user='user', passwd='pwd')
#ftp.cwd("dir")
#entries = ftp.nlst()
#for entry in entries:
#    size = ftp.size(entry)
#    sizename = str(size) + ' ' + entry
#    listing.append(sizename)
#ftp.quit()

#fileone = open(r'C:/Users/Documents/new/otchtwo.txt', 'w')
#for i in listing:
#    if 'ABC' in i:
#        fileone.write(i + '\n')
#fileone.close()


full = os.listdir(direct)
for filenames in full:
    fullname = os.path.join(direct, filenames)
    Filesize = os.path.getsize(fullname)
    Full = str(Filesize) + ' ' + filenames
    if filenames.startswith('ABC'):
        files.append(Full)
fout = open('C:/Users/Documents/new/otch.txt', 'w') 
for line in files:
    fout.write(line + '\n')
fout.close()

t1 = open('C:/Users/Documents/new/otch.txt')
t2 = open('C:/Users/Documents/new/otchtwo.txt')
diff = ndiff(t1.readlines(), t2.readlines())
for x in diff:
    if x.startswith('- '):
        xnew = x.replace('- ', '(')
        delta.append(xnew.replace ('\n', ')'))
print delta
filetwo = open('C:/Users/Documents/new/otchthree.txt', 'w')
filetwo.writelines(delta)
filetwo.close()
t2.close()
t1.close()

con = cx_Oracle.connect('user/123456@127.0.0.1/mybase')
cur = con.cursor()
cur.executemany("insert into table (ID_FILE, NAME_FILE, DATE) values (diff_seq.nextval, :1, sysdate)", delta)
con.commit()
cur.close()
con.close()



Вывод в третий файл сделан временно, для проверки. Просьба сильно не бить, но носом ткнуть :)
...
Рейтинг: 0 / 0
python oracle insert ORA-01036
    #38953453
хрюхрюк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: python
1.
cur.executemany("insert into table (ID_FILE, NAME_FILE, DATE) values (diff_seq.nextval, %s, sysdate)", delta)
...
Рейтинг: 0 / 0
python oracle insert ORA-01036
    #38953484
Фотография -k2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗлобнаяПеченька,

ORA-00904 по дороге не поймали? :) DATE - зарезервированное слово
...
Рейтинг: 0 / 0
python oracle insert ORA-01036
    #38953583
хрюхрюк,

Догадываюсь, что дело в этом, но пока не знаю, как решить(
...
Рейтинг: 0 / 0
python oracle insert ORA-01036
    #38953584
-k2-,

нет, название столбца другое
...
Рейтинг: 0 / 0
python oracle insert ORA-01036
    #38953593
хрюхрюк,

Спасибо, скрипт отработал, но правда ничего не вставил)
...
Рейтинг: 0 / 0
python oracle insert ORA-01036
    #38965680
BadMF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почитайте про Cursor.getbatcherrors

может у вас там ещё ошибки походу которые вы не видите.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / python oracle insert ORA-01036
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]