尝试从Python Pyodbc连接到Teradata时出现奇怪的错误。
我使用的代码
import pyodbc
pyodbc.pooling=False
conn=pyodbc.connect('DRIVER={
TeradataDriver16.20};DBCNAME=DBCNAME;UID=user_id;
PWD=Password;QUIETMODE=YES;database=databse;')
以上连接成功。 现在,我正在尝试运行以下查询
cursor = conn.cursor()
cursor.execute("SELECT TOP 10 * FROM DB_NAME")
tables = cursor.fetchall()
这将导致以下错误
Error: ('HY000', '[HY000] 䑛瑡䑡物捥嵴佛䉄⁃楬嵢唠楮潣敤挠湯敶瑲牥戠晵敦\u2072
癯牥汦睯\x00\x000\x00\x00\x00\x00\x00\x00\x00\x00\x00[\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00(\x00\x00\x00 (0) (SQLExecDirectW)')
任何解决此问题的指针将不胜感激。
答案 0 :(得分:0)
我无法使用pyodbc重新创建您的错误。您可以尝试使用Teradata自己的官方软件包“ teradata”,看看是否有类似的行为。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
using PX.Data;
using PX.Objects.AR;
using PX.Objects.GL;
namespace SGLCustomizeProject
{
public class ARPaymentEntryExtension: PXGraphExtension<ARPaymentEntry>
{
#region Override Button Menu
public override void Initialize()
{
Base.report.AddMenuAction(ReceiptVoucher);
}
#endregion
#region Button Receipt Vocher
public PXAction<ARPayment> ReceiptVoucher;
[PXButton]
[PXUIField(DisplayName = "Receipt Voucher")]
public IEnumerable receiptVoucher(PXAdapter adapter)
{
var result = adapter.Get<ARPayment>();
foreach (ARPayment doc in result)
{
object FinPeriodID;
if (Base.Caches[typeof(ARPayment)].GetStatus(doc) == PXEntryStatus.Notchanged)
{
Base.Caches[typeof(ARPayment)].SetStatus(doc, PXEntryStatus.Updated);
}
Base.Save.Press();
var docPeriod = (FinPeriodID = Base.Caches[typeof(ARPayment)].GetValueExt<ARRegister.finPeriodID>(doc)) is PXFieldState ? (string)((PXFieldState)FinPeriodID).Value : (string)FinPeriodID;
Dictionary<string, string> parameters = new Dictionary<string, string>();
parameters["ReferenceNbr"] = doc.RefNbr;
throw new PXReportRequiredException(parameters, "AR909095", "Report");
}
return result;
}
#endregion
}
}
然后
pip install teradata