我有下面的代码是用python编写的。我正在尝试执行简单的read_sql,sql和连接似乎没有问题。当我在sql服务器中独立运行时,SQL工作得很好
conn = odbc.connect ('Driver=SQL Server;'
'Server=xyzCDEF;'
'Database =ABC;'
'Trusted_Connection=yes;')
sql = """select * from PQR
where AS_OF_DATE = '2020-01-21' and PORTFOLIO_NAME = 'TEST'"""
ahv = pd.read_sql(sql,conn)
错误
编程错误回溯(最近一次调用( last( C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\sql.py in execute(self, *args, **kwargs( 1399 else: -> 1400 cur.execute(*args( 1401 return cur
编程错误: ('42S02', "[42S02] [Microsoft][ODBC SQL Server 驱动程序][SQL Server]对象名称"PQR"无效。(208( (SQLExecDirectW("(
在处理上述异常期间,发生了另一个异常:
数据库错误回溯(最近一次调用( 最后( 在 (( 中 1 sql = ""从 PQR 中选择 * 2 其中 AS_OF_DATE = '2020-01-21' 和 PORTFOLIO_NAME = 'TEST'"" ----> 3 AHV = pd.read_sql(sql,conn(
C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\sql.py in read_sql(sql, con, index_col, coerce_float, params, parse_dates, 列,块大小( 379 sql, index_col=index_col, 参数=参数, 380 coerce_float=coerce_float, parse_dates=parse_dates, --> 381 块大小=块大小( 382 383 尝试:
C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\sql.py in read_query(自身、SQL、index_col、coerce_float、参数、parse_dates、 块大小( 1433 1434 参数 = _convert_params(SQL, 参数( -> 1435 游标 = self.execute(*args( 1436 列 = [col_desc[0] 用于游标中的col_desc描述] 1437
C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\sql.py in execute(self, *args, **kwargs( 1410 ex = DatabaseError( 1411 "在 sql '%s' 上执行失败: %s" % (args[0], exc(( -> 1412 raise_with_traceback(例( 1413 1414 @staticmethod
C:\ProgramData\Anaconda3\lib\site-packages\pandas\compat__init__.py 在raise_with_traceback(exc,回溯( 401 如果回溯 == 省略号: 402 _, _, 回溯 = sys.exc_info(( --> 403 提高exc.with_traceback(回溯( 404 其他: 405 # 此版本的 raise 是 Python 3 中的语法错误
C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\sql.py in execute(self, *args, **kwargs( 1398
cur.execute(*args, **kwargs( 1399 else: -> 1400 cur.execute(*args( 1401 返回 cur 1402,异常除外:数据库错误:在 sql'select * 上执行失败 其中AS_OF_DATE = '2020-01-21' 且 PORTFOLIO_NAME = 'TEST'':('42S02', "[42S02] [Microsoft][ODBC SQL Server 驱动程序][SQL 服务器]对象名称"PQR"无效。(208( (SQLExecDirectW("(
conn = pyodbc.connect('Driver={SQL Server}; Server=localhost;uid=yourusername; pwd=yourpassword; Database = yourdatabase; Trusted_Connection=No;')
我猜你在 pyodbc 而不是 odbc 中犯了一个错误。 并尝试将驱动程序对象写在大括号 {} 中,Trusted_Connection为 No