#python #sql-server #stored-procedures #database-cursor
Вопрос:
Я работаю над проектом, в котором мне нужно получать данные с моего SQL-сервера, но есть одна загвоздка. В общей сложности в конкретном столбце содержится около 100 000 строк, из которых мне нужны данные, но мне нужны только последние 20 000-30000 строк.
Я использую строку случайного подключения и хранимую процедуру, но есть ли способ выбрать конкретную строку для начала? (например, пусть он начинается со строки 70 000)
try:
CONNECTION_STRING = 'DRIVER=' driver ';SERVER=' server ';DATABASE=' databaseName ';UID=' username ';PWD=' password
conn = pyodbc.connect(CONNECTION_STRING)
cursor = conn.cursor()
storedproc = "*"
cursor.execute(storedproc)
row = cursor.fetchone()
while row:
OID = ((int(row[1])))
print(OID)
Итак, мой вопрос: есть ли способ (например) установить cursor.fetchone
строку 70 000 вместо 1? Или есть другой способ сделать это?
Заранее спасибо!
Комментарии:
1. Почему бы не использовать
ORDER BY
иOFFSET...FETCH
в вашем SQL, если вам нужна «70-я» строка? Хотя вы не можете сделать это с помощью хранимой процедуры, вам придется сделать это сSELECT
помощью . Если вы получаете 100 строк из процедуры и хотите получить 70-ю строку, вам нужноINSERT
будет перенести эти данные в (временную) таблицу, а затемSELECT
в 70-ю строку из нее.2. Хорошо, спасибо, тогда я думаю, что это не в моих руках, потому что я не выполняю процедуры хранения. но я пойду за тем, кто это делает, и попытаюсь отредактировать это вместе с ними.