Ошибка значения: символ U + 590048 не находится в диапазоне [U + 0000; U + 10ffff] - MAC OS - PullRequest
0 голосов
/ 08 мая 2018

Может ли кто-нибудь помочь мне с приведенной ниже ошибкой при подключении к Teradata из моей среды Python.

Я использую метод драйвера ODBC и перепробовал все существующие ниже методы для подключения, но не повезло.

Примечание: если вы используете Windows, вы можете напрямую использовать эти методы, однако проблема возникает, когда вы работаете в MAC OS (хотя и не для всех)

ИСПОЛЬЗОВАНИЕ модуля TERADATA и SQL Alchemy.

import teradata
import pyodbc
server='111.00.00.00'
username = 'user'
password = 'pwd'   

udaExec = teradata.UdaExec(appName="test", version="1.0", 
logConsole=True)

ndw_con = udaExec.connect(method = 'odbc',authentication = "LDAP", 
system=server, username=username, password=password)

# SQL ALCHEMY from teradata 
from sqlalchemy import create_engine
user = 'user'
pwd = 'pwd'
host = '1'11.00.00.00'

td_engine = create_engine('teradata://'+user+':'+pwd+'@'+host+':22/' )

result = td_engine.execute('select top 100 * from temp.sampledata')

# USING PYODBC: приведенный ниже код дал мне новую ошибку, говорящую («01000», " [01000] [unixODBC] [Driver Manager] Не удается открыть lib 'Teradata': файл не найден (0) (SQLDriverConnect) ")

import pyodbc
td_conn = pyodbc.connect('DRIVER= . 
{Teradata};DBCName='+server+';UID='+username+';PWD='+ password, 
 automcommit=True)

cursor = td_conn.cursor()

Несмотря на это, я не смог установить соединение с teradata, может кто-нибудь сообщить мне, что здесь происходит и как решить эту проблему раз и навсегда.

Спасибо!

1 Ответ

0 голосов
/ 09 мая 2018

Нашел ответ, используя модуль pyodbc. Параметр Replaced Driver = {Teradata} с полным путем, в котором находится драйвер, проверьте ниже полную строку подключения. Обратите внимание, что это можно использовать только в MAC OS.

td_conn = pyodbc.connect('DRIVER={/Library/Application Support/teradata/client/16.20/lib/tdataodbc_sbu.dylib};DBCName='+server+';UID='+username+';PWD='+ password, automcommit=True, authentication = "LDAP") 
...