>

파이썬을 사용하여 SQL Server를 연결하는 것이 처음입니다 .SQL Server에서 일부 데이터를 읽고 처리하고 SQL Server에서 처리 된 데이터를 업로드해야합니다.이 작업은 모두 Python을 사용하여 수행됩니다. 그래서 SQL Server에서 데이터를 가져 오는 코드를 작성하고 처리했으며 마지막으로 SQL Server에 데이터를 업로드하려고하는 동안 코드가 올바르게 작동합니다. 파이썬에서 오류 메시지가 표시되지 않습니다. 'python 코드를 사용하여 SQL Server에서 데이터를 검색하려고해도 SQL Server에서 테이블을 볼 수 없습니다. 오류 메시지가 나타납니다

pyodbc.ProgrammingError: ('42S02', "[42S02] [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name 'output1'. (208) (SQLExecDirectW)")

아래는 SQL Server에 데이터를 삽입하는 데 사용한 코드입니다

 conn = sqlite3.connect('Driver={SQL Server};'
                                'Server=My server name;'
                                'Database=my data base name;'
                                'uid=my uid;pwd=my password')
c=conn.cursor()
date = dt.datetime.today().strftime("%m/%d/%Y")
dataToUpload['OPT_TYPE']=opt_type
dataToUpload['Date']=date
list_opt_output=dataToUpload.values.tolist()
c.execute('''CREATE TABLE if not exists output1
         (Class text,Location text,Name text,Maths decimal(5,2), nonMaths decimal(5,2), promopercent decimal(5,3),OPT_TYPE text,Date date)''')
conn.commit()
print("Output table created")
c.executemany('''INSERT INTO output1(Class,Location,Name,Maths, nonMaths,promopercent,OPT_TYPE,Date) VALUES (?,?,?,?,?,?,?,?)''', list_opt_output)
conn.commit()
conn.close()

이 문제를 해결하도록 안내해 주실 수 있습니까?


  • 답변 # 1

    CREATE TABLE if not exists output1   SQL Server 가 유효하지 않습니다  통사론. IF OBJECT_ID('output1','U') IS NULL 를 사용할 수 있습니다  테이블이 있는지 확인하십시오.

    다음과 같이 쿼리를 변경하십시오.

    c.execute('''IF OBJECT_ID(''output1'',''U'') IS NULL CREATE TABLE output1
             (Class text,Location text,Name text,Maths decimal(5,2), nonMaths decimal(5,2), promopercent decimal(5,3),OPT_TYPE text,Date date)''')
    conn.commit()
    
    

관련 자료

  • 이전 정렬 된 집계 결과를 페이지 매김하는 Elasticsearch
  • 다음 version - 워크 벤치에서 mysql vesion을 업그레이드하려면