Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

तालिका मूल्यवान पैरामीटर के साथ पायथन कॉल एसक्यूएल-सर्वर संग्रहीत प्रक्रिया

मेरे प्रश्न के लिए टिप्पणियों के आधार पर मैं तालिका मूल्यवान पैरामीटर के साथ चलने वाली संग्रहीत प्रक्रिया प्राप्त करने में कामयाब रहा हूं (और एसपी से वापसी मान प्राप्त करें) अंतिम स्क्रिप्ट इस प्रकार है:

import pandas as pd
import pytds
from pytds import login
import sqlalchemy as sa
from sqlalchemy import create_engine
import sqlalchemy_pytds

def connect():
    return pytds.connect(dsn='ServerName',database='DBName',autocommit=True, auth=login.SspiAuth())

engine = sa.create_engine('mssql+pytds://[ServerName]', creator=connect)
conn = engine.raw_connection()

with conn.cursor() as cur:
    arg = [["foo.ExternalInput","bar.ExternalInput"]]
    tvp = pytds.TableValuedParam(type_name="core.MatchColumnTable", rows=arg)
    cur.execute("EXEC test_proc @Target = N'[dbname].[tablename1]', @Source = N'[dbname].[table2]', @CleanTarget = 0, @UseColumnsFromTarget = 0, @MergeOnColumn = %s", (tvp,))
    result = cur.fetchall()
    print(result)

कनेक्शन में ऑटोकॉमिट जोड़ा जाता है (कर्सर में लेनदेन करने के लिए), तालिका मान पैरामीटर (मार्च कॉलमटेबल) 2 कॉलम की अपेक्षा करता है, इसलिए तर्क को 2 कॉलम फिट करने के लिए संशोधित किया जाता है।

टीवीपी के अलावा आवश्यक पैरामीटर निष्पादन स्ट्रिंग में शामिल हैं। निष्पादन स्ट्रिंग में अंतिम परम tvp पैरामीटर (मर्जऑनकॉलम) का नाम है जो tvp से भरा होता है।

वैकल्पिक रूप से आप pytds दस्तावेज़ीकरण में वर्णित परिणाम स्थिति या पंक्ति गणना जोड़ सकते हैं:https://python-tds.readthedocs.io/en/latest/index.html

ध्यान दें! :संग्रहीत कार्यविधि में आपको यह सुनिश्चित करना होगा कि theSET NOCOUNT ON जोड़ा गया है अन्यथा आपको Python पर कोई परिणाम वापस नहीं मिलेगा



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर में नेस्टेड चयन कथन

  2. SQL सर्वर में लेनदेन का सही उपयोग

  3. डेटाबेस तालिका से वर्ग उत्पन्न करें

  4. SQL Server 2008 समर्थन समाप्त हो रहा है। अब क्या?

  5. SQL सर्वर समानार्थक शब्द के बारे में 7 तथ्य जो आपको जानना चाहिए