0
私はサーバ上で、ODBC接続を使用して既存の テーブル 'loading_log'を更新する必要があります。pyodbcを使用したSQL文の効果がありません
問題は、自分のスクリプトがデータベース内のテーブルに影響を与えないことです。つまり、レコードを削除せず、新しいレコードを挿入しないということです。
同時に、実行後にスローされたエラーは表示されません。 デスクトップから同じ資格情報を使用して同じSQLクエリを実行すると、正常に動作します。
私の質問: なぜpythonスクリプトではうまくいかないのですか?
は、ここに私のコードからの抜粋です:
curs.commit()
または自動コミットモードを使用するようにpyodbcを伝える:
curs.execute('''
delete from loading_log
''')
#
#record loaded record ids into loading_log table
#
#logging.info('insert laoded record id data into loading_log table')
curs.execute('''
insert into loading_log (catalog_sample_events_id,ShippingId)
select top 500
cs.catalog_sample_events_id,
cs.shipping_id ShippingId
from catalog_sample_events cs
join event_type et on et.event_type_id = cs.event_type_id
join event_source es on es.event_source_id = cs.event_source_id
join etl_status esi on esi.etl_status_id = cs.etl_status_id
where cs.catalog_sample_events_id > ?
order by cs.catalog_sample_events_id
''', max_id)