Tanmay Nehete
Tanmay Nehete

Reputation: 2198

Getting error on python while transferring data from SQL server to snowflake

I am getting below error

query = command % processed_params TypeError: not all arguments converted during string formatting

I am trying to pull data from SQL server and then inserting it into Snowflake my below code

import pyodbc
import sqlalchemy
import snowflake.connector
driver = 'SQL Server'
server = 'tanmay'
db1 = 'testing'
tcon = 'no'
uname = 'sa'
pword = '123'

cnxn = pyodbc.connect(driver='{SQL Server}', 
                      host=server, database=db1, trusted_connection=tcon,
                      user=uname, password=pword)
cursor = cnxn.cursor()
cursor.execute("select * from Admin_tbldbbackupdetails")
rows = cursor.fetchall()
#for row in rows:
 # #data = [(row[0], row[1],row[2], row[3],row[4], row[5],row[6], row[7])]
print (rows[0])  
cnxn.commit()
cnxn.close()

connection = snowflake.connector.connect(user='****',password='****',account='*****')

cursor2 = connection.cursor()
cursor2.execute("USE WAREHOUSE FOOD_WH")
cursor2.execute("USE DATABASE Test")
sql1="INSERT INTO CN_RND.Admin_tbldbbackupdetails_ip"
"(id,dbname, dbpath, backupdate, backuptime, backupStatus, FaildMsg, Backupsource)"
"values (?,?,?,?,?,?,?,?)"
cursor2.execute(sql1,*rows[0])

Upvotes: 0

Views: 1003

Answers (1)

Alex B
Alex B

Reputation: 2375

It's obviously string parsing error. You missed to provide parameter to %s printout.

If you cannot fix it step back and try another approach. Use another script to achieve the same and get back to you bug tomorrow :-)

My script is doing pretty much the same:

1. Connect to SQL Server
    -> fetchmany
        -> multipart upload to s3
            -> COPY INTO Snowflake table

Details are here: Snowpipe-for-SQLServer

Upvotes: 1

Related Questions