我正在尝试Teradata-Python module,我是python的新手
我试图在SHOW TABLE语句的帮助下获取表ddl,它表现得很奇怪,只返回整个DDL中的几个字。请参阅下面的尝试和错误
import teradata
class DB():
def __init__(self):
udaExec = teradata.UdaExec (appName="test", version="1.0",logConsole=False)
session = udaExec.connect(method="odbc", system="tddemo",username="dbc", password="dbc")
self.session = session
def fun1(self):
# session.execute("create table financial.dummytable1(a varchar(10))")
rows = self.session.execute("SHOW TABLE financial.dummytable1")
for row in rows:
print(row)
db = DB()
db.fun1()
print("---The End---")
这是意外结果
PRIMARY INDEX ( a );]HARACTER SET LATIN NOT CASESPECIFIC)CK ,
---The End---
期望的结果
CREATE SET TABLE financial.dummytable1 ,NO FALLBACK ,
NO BEFORE JOURNAL,
NO AFTER JOURNAL,
CHECKSUM = DEFAULT,
DEFAULT MERGEBLOCKRATIO
(
a VARCHAR(10) CHARACTER SET LATIN NOT CASESPECIFIC)
PRIMARY INDEX ( a );
---The End---
请帮助我理解这里发生的事情。
答案 0 :(得分:2)
这是Teradata的Python模块的一个已知问题。您可以在Teradata Python Module页面上的评论中看到有人遇到完全相同的问题。值得庆幸的是,他们确定了解决方案,并在稍后给出了一些解决方法:
SHOW TABLE的结果未正确显示的原因 终端是因为结果中的换行符是 很可能是回车而不是换行。为了确保它 正确显示,您可以根据存在分割输出 任何换行序列并单独打印行。 E.g。
import re
for line in re.split("\r\n|\n\r|\r|\n", row[0]):
print(line)
还有其他一些被捕获的问题。看起来像是书签的好主题。