用于python的teradata sql驱动程序
teradatasql的Python项目详细描述
用于python的teradata sql驱动程序
这个包使python应用程序能够连接到teradata数据库。
此包实现了pep-249 python数据库api规范2.0
此软件包需要64位Python3.4或更高版本,并在Windows、MacOS和Linux上运行。不支持32位python。
有关社区支持,请访问连接论坛
要获得Teradata客户支持,请访问Teradata Access。
2019 Teradata版权所有。保留所有权利。
目录
- 功能
- 限制
- 安装
- 许可证
- 文档
- 示例程序
- 使用teradata的python sql驱动程序
- 连接参数
- 警察发现
- 存储密码保护
- 交易模式
- 自动提交
- 数据类型
- 空值
- 字符导出宽度
- 模块构造函数
- 模块全局变量
- 模块异常
- 连接方法
- 光标属性
- 光标方法
- 键入对象
- 转义语法
- 更改日志
目录链接在pypi上不起作用,因为apypi限制
< A/>
功能
用于python的teradata sql驱动程序是一个dbapi驱动程序,它使python应用程序能够连接到teradata数据库。用于python的teradata sql驱动程序实现了pep-249 python数据库api规范2.0
teradata sql driver for python是一个年轻的产品,它提供了一个基本的特性集。我们正在努力向teradata sql驱动程序python添加特性,我们的目标是与teradata jdbc驱动程序的特性对等。
目前,面向python的teradata sql驱动程序提供以下功能。
- 支持与Teradata Database 14.10及更高版本一起使用。经过非正式测试,可与Teradata Database 12.0及更高版本配合使用。
- 警察发现。
- 使用
td2
、jwt
、ldap
、krb5
(kerberos)或tdnego
登录机制进行加密登录。 - 通过
encryptdata
连接参数启用数据加密。 - 通过UTF8会话字符集传输的Unicode字符数据。
- 自动提交ANSI和Tera事务模式。
- Teradata Database 16.0及更高版本支持1 MB行。
- 返回多个结果集的多语句请求。
- 大多数JDBC转义语法。
- 带有问号参数标记的参数化SQL请求。
- 多行数据绑定到问号参数标记的参数化批处理SQL请求。
- ElicitFile协议支持用于创建外部UDF或存储过程并将文件从客户端上载到数据库的DDL命令。
创建过程
和替换过程
命令。- 存储过程动态结果集。
< A/>
限制
- 总是使用utf8会话字符集。不支持
字符集
连接参数。 - 以下复杂数据类型尚不受支持:
xml
,json
,数据集存储格式avro
,以及数据集存储格式csv
- 尚不支持由中央管理部门管理的数据加密。要启用数据加密,必须为
encryptdata
连接参数指定true
值。 - 尚不支持梯形并发连接。
- 尚未支持可恢复的网络协议和重新驱动。
- Fastload尚未提供。
- FastExport尚未提供。
- 监视器分区支持尚不可用。
< A/>
安装
使用pip为python安装teradata sql驱动程序。
<表><广告>pip安装teradasql
py-3-m pip安装teradasql
升级到新版本的teradata sql driver for python时,可能需要使用pip install的--no cache dir
选项来强制下载新版本。
pip安装--无缓存目录-u teradasql
py-3-m pip安装——无缓存目录-u teradasql
< A/>
许可证
teradata sql driver for python的使用由teradata sql driver for python的许可协议控制。
安装了teradata sql driver for python后, < A/> 安装teradata sql driver for python后, < A/> 提供了示例程序来演示如何使用teradatsql驱动程序。安装teradata sql driver for python后,示例程序将放在python安装目录下的 示例程序使用一个假的teradata数据库主机名 < A/> 为了在python中使用teradata sql驱动程序,python脚本必须导入 导入 您可以将连接参数指定为json字符串,指定为 连接参数仅指定为 仅指定为json字符串的连接参数: 使用组合指定的连接参数: 当指定参数组合时,指定为 < A/> 下表列出了teradata sql driver for python当前提供的连接参数。 我们的目标是在连接参数名称和功能方面,使teradata sql驱动程序(用于python)和teradata jdbc驱动程序提供的连接参数保持一致。为了进行比较,teradata jdbc驱动程序连接参数在这里被记录下来。
<表><广告> < A/> 当连接参数 一个teradata数据库系统可以由多个teradata数据库节点组成。可以将一个或多个teradata数据库节点配置为运行teradata数据库网关进程。运行teradata数据库网关进程的每个teradata数据库节点称为通信处理器或cop。cop发现是指识别所有可用的cop主机名及其ip地址的过程。cop主机名可以在dns中定义,也可以在客户机系统的 cop last连接参数指定cop发现如何确定最后一个cop主机名。 将 在执行cop发现时,用于python的teradata sql驱动程序从cop1开始,cop1附加到数据库主机名,然后继续执行cop2、cop3、…、copn。用于python的teradata sql驱动程序支持cop发现的域名限定和coplast主机名。建议使用域名限定,因为它可以通过避免对DNS搜索后缀进行不必要的DNS查找来提高性能。 下表说明了为名为"whomooz"的假设三节点teradata数据库系统执行的dns查找。 循环dns自动旋转ip地址列表以提供负载分配。循环只能在DNS中进行,而不能在客户端系统 用于python的teradata sql驱动程序支持为cop主机名和非cop主机名定义多个ip地址。 对于到特定teradata数据库系统的第一个连接,用于python的teradata sql驱动程序生成一个随机数,以索引到cop列表中。对于每个后续连接,用于python的teradata sql驱动程序都会增加保存的索引,直到它返回到第一个位置。此行为提供所有发现的cop的负载分布。 用于python的teradata sql驱动程序将连接失败屏蔽为关闭cop,从而对客户端应用程序隐藏大多数连接失败。只有当该数据库的所有警察都关闭时,才会向应用程序抛出异常。如果一个cop坏了,序列中的下一个cop(包括到第一个cop的环绕)将接收到最初指定给坏cop的额外连接。当在dns中为cop定义了多个ip地址时,用于python的teradata sql驱动程序将尝试连接到cop的每个ip地址,并且仅当连接尝试失败到cop的所有ip地址时,才会考虑关闭cop。 如果cop discovery已关闭,或者dns中未定义cop主机名,则python的teradata sql驱动程序将直接连接到 < A/> 存储密码保护使应用程序能够以加密形式向teradata sql driver for python提供连接密码。 可以在以下上下文中指定加密密码: 如果密码以前缀 每个文件名前面必须有 passwordencryptionkeyfilename指定包含密码加密密钥和相关信息的文件名. encryptedpasswordfilename指定包含加密密码和相关信息的文件名。下面介绍这两个文件。 存储密码保护由Teradata JDBC驱动程序、Teradata SQL驱动程序(用于Python)和Teradata SQL驱动程序(用于R)提供。这些驱动程序使用相同的文件格式。 此程序与teradata jdbc驱动程序和teradata sql驱动程序为python提供的存储密码保护一起工作。此程序创建包含密码加密密钥和加密密码的文件,这些文件随后可以通过 不需要使用此程序创建包含密码加密密钥和加密密码的文件。您可以开发自己的软件来创建必要的文件。您还可以使用 此程序先加密密码,然后立即解密密码,以验证密码是否可以成功解密。此程序模拟了用于python的teradata sql驱动程序的密码解密,旨在公开演示其操作并使社区能够仔细检查。 加密的密码只和这两个文件一样安全。您负责限制对包含密码加密密钥和加密密码的文件的访问。如果攻击者同时获得这两个文件,则可以解密密码。这两个文件的操作系统文件权限应尽可能受到限制和限制,以确保只有预期的操作系统用户ID可以访问这些文件。 这两个文件可以保存在不同的物理卷上,以减少两个文件同时丢失的风险。如果其中一个或两个文件都位于网络卷上,则可以使用加密的有线协议访问网络卷,例如sshfs、加密的nfsv4或加密的smb 3.0。 此程序接受八个命令行参数: TjencryptPassword程序使用用于Python的Teradata SQL驱动程序使用加密的密码登录到指定的Teradata数据库,因此必须使用 以下命令假定 下面的示例命令演示如何使用256位AES密钥,以及如何使用HMACSHA256算法。 不需要使用TjencryptPassword程序创建包含密码加密密钥和加密密码的文件。您可以开发自己的软件来创建必要的文件,但这些文件必须与teradata sql驱动程序for python所期望的格式相匹配。 密码加密密钥文件是Java属性文件格式的文本文件,使用ISO 8859-1字符编码。 文件必须包含以下字符串属性: TjencryptPassword程序使用时间戳作为共享匹配值,但不需要时间戳。任何共享字符串都可以作为匹配值。时间戳与密码的加密没有任何关系,并且时间戳不能用于解密密码。 加密的密码文件是Java属性文件格式的文本文件,使用ISO859-1字符编码。 文件必须包含以下字符串属性: 虽然 转换是一个字符串,描述要对给定输入执行的一组操作,以生成转换的输出。转换指定加密算法(如des或aes)的名称,后跟反馈模式和填充方案。 用于python的teradata sql驱动程序支持以下转换和密钥大小。 存储密码保护使用对称加密算法,如des或aes,其中相同的密钥用于密码的加密和解密。存储的密码保护不使用非对称加密算法(如RSA)和单独的公钥和私钥。 cbc(cipher block chaining)是一种分组密码加密方式。在cbc中,每个密文块都依赖于在此之前处理的所有明文块。CBC适用于加密总字节数超过算法块大小的数据,因此适合与存储的密码保护一起使用。 存储密码保护通过使用尾随的空字节扩展utf8编码密码的长度来隐藏加密密码文件中的密码长度。长度将扩展到下一个512字节的边界。 加密的强度取决于您选择的密码算法和密钥大小。 teradata sql驱动程序for python和teradata jdbc驱动程序可以共享包含密码加密密钥和加密密码的文件(如果您使用两个驱动程序都支持的转换、密钥大小和mac算法)。 对于用于python的teradata sql驱动程序的 当前目录中的文件示例: 具有相对路径的示例: Windows上具有绝对路径的示例: Linux上具有绝对路径的示例: 为加密密码指定的两个文件名必须可由teradata sql driver for python访问,并且必须符合上述属性文件格式。如果无法访问该文件,或者该文件不符合所需的文件格式,则用于python的teradata sql驱动程序将引发异常。 用于python的teradata sql驱动程序验证两个文件中的匹配值是否存在,并相互匹配。如果匹配值彼此不同,则用于python的teradata sql驱动程序会引发异常。将比较匹配值,以确保两个指定的文件相互关联,作为"健全性检查"帮助避免配置错误。TjencryptPassword程序使用时间戳作为共享匹配值,但不需要时间戳。任何共享字符串都可以作为匹配值。时间戳与密码的加密没有任何关系,并且时间戳不能用于解密密码。 在解密之前,用于python的teradata sql驱动程序使用密文、转换名和算法参数(如果有的话)计算mac,并验证计算出的mac是否与预期的mac匹配。如果计算出的mac与预期的mac不同,则用于python的teradata sql驱动程序会引发异常,以指示其中一个或两个文件可能已被篡改。 最后,用于python的teradata sql驱动程序使用解密的密码登录teradata数据库。 < A/> 虽然通常建议使用ansi模式,但请注意每个应用程序都不同,有些应用程序可能需要使用tera模式。ANSI和Tera模式之间的以下差异可能会影响典型的用户或应用程序: 最后两个行为差异加在一起可能会导致字符数据比较(例如在 teradata数据库引用/sql请求和事务处理建议对所有新应用程序使用ansi模式。使用ansi模式的主要好处是避免了意外的数据截断。相反,在使用tera模式时,插入数据时会发生静默数据截断,因为静默数据截断是tera模式的一个特性。 使用ansi模式的一个缺点是,只能调用使用ansi模式创建的存储过程,而不能调用使用tera模式创建的存储过程。可能无法以独占方式切换到ansi模式,因为您可能有一些需要tera模式才能正常工作的遗留应用程序。您可以通过在两个不同的用户/数据库中创建两次存储过程,一次使用ansi模式,一次使用tera模式来解决这个缺点。 请参阅teradata database reference/sql请求和事务处理以获取有关ansi和tera事务模式之间差异的完整信息。 < A/> teradata sql driver for python为ansi和tera模式提供了自动提交打开和关闭功能。 第一次建立连接时,它以默认的"自动提交"设置(启用)开始。启用自动提交时,驱动程序只负责管理事务,并提交每个成功执行的sql请求。启用自动提交时,应用程序不应执行任何事务管理SQL命令。启用自动提交时,应用程序不应调用 应用程序可以通过调用 当auto commit处于关闭状态时,驱动程序在执行每个sql请求后将当前事务保持打开状态,应用程序分别通过调用 自动提交保持关闭状态,直到应用程序将其重新打开。 最佳实践建议应用程序避免执行特定于数据库供应商的事务管理命令,例如 作为teradata数据库和teradata客户机接口软件(如用于python的teradata sql驱动程序)之间的连接协议的一部分,从teradata数据库传输到客户机的每条消息都有一个指定位,用于指示会话是否有正在进行的事务或不是。因此,客户机接口软件被告知会话是否有正在进行的事务。 在禁用自动提交的tera模式下,当应用程序使用驱动程序执行sql请求时,如果会话没有进行中的事务,则驱动程序在执行应用程序的sql请求之前自动执行 在tera模式下,可以嵌套 在极少数情况下,应用程序可能不遵循最佳实践,并且可能显式执行事务管理命令。此类应用程序必须在执行事务管理命令(如 请注意,前面的示例都没有显示最佳实践。最佳实践建议应用程序只调用用于事务管理的标准方法 < A/> 下表列出了teradata sql驱动程序为python支持的teradata数据库数据类型,并指示在结果集行中返回的相应python数据类型。 下表列出了teradata sql driver for python支持的参数化sql bind-value python数据类型,并指明了传输到服务器的相应teradata数据库数据类型。 转换用于sql 转换用于结构化的udt数据值,它们可以作为 < A/> sql 绑定到问号参数标记的python < A/> 用于python的teradata sql驱动程序始终使用utf8会话字符集,并且不支持 teradata数据库 utf8是一种可变宽度字符编码方案,每个字符需要不同的字节数。当使用utf8会话字符集时,teradata数据库将保留 通过在sql 给定一个固定宽度的表 产生尾随空格填充的原始查询: 使用 或者使用 这项技术也在示例程序 < A/> 创建到数据库的连接并返回连接对象。 第一个参数是一个可选的json字符串,默认为 当指定参数组合时,连接参数指定为 创建并返回一个 创建并返回与1970-01-01 00:00:00之后指定秒数相对应的 创建并返回一个 创建并返回与1970-01-01 00:00:00之后指定秒数相对应的 创建并返回一个 创建并返回与1970-01-01 00:00:00之后指定秒数相对应的 < A/> 字符串常量 整数常量 字符串常量"qmark"表示准备好的SQL请求使用问号参数标记。 < A/> < A/> 关闭连接。 提交当前事务。 为连接创建并返回一个新的光标对象。 回滚当前事务。 < A/> 读/写属性,指定使用 只读属性,指示光标的父连接对象。 只读属性,由七个项序列组成,每个项序列描述一个结果集列,在执行SQL请求后可用。 只读属性,指示从当前SQL语句返回或受其影响的行数。 < A/> 调用由procedurename指定的存储过程。
提供第二个参数作为 关闭光标。 执行SQL请求。
如果提供一系列参数值作为第二个参数,则这些值将绑定到SQL请求中的问号参数标记。不支持将参数值指定为映射。 将SQL请求作为一个对参数值批的迭代SQL请求执行。
参数值的批处理必须指定为序列。不支持将参数值指定为映射。 获取当前结果集的所有剩余行。
返回列值序列。 获取当前结果集的下一系列行。
参数指定要提取的行数。如果未提供参数,则光标的 获取当前结果集的下一行。
返回列值序列,或 前进到下一个结果集。
如果另一个结果集可用,则返回 无效。 无效。 < A/> 与光标的"描述"属性相比,将SQL 将SQL 与光标的描述属性相比,将SQL 将SQL < A/> teradata sql driver for python接受teradata jdbc驱动程序提供的大部分jdbc转义子句。 在将SQL请求文本传输到数据库之前,日期和时间文字转义子句将替换为相应的SQL文字。 对于时间戳文字转义子句,可以省略小数点和小数,或者在小数点后指定1到6位小数f。 在将SQL请求文本传输到数据库之前,标量函数转义子句将被相应的SQL表达式替换。 在将SQL请求文本传输到数据库之前,转换函数转义子句将被相应的SQL表达式替换。 在 escape子句必须在它所应用的 在将SQL请求文本传输到数据库之前,外部联接转义子句将替换为相应的SQL子句。 在将SQL请求文本传输到数据库之前,存储过程调用转义子句将替换为相应的SQL子句。 当sql请求包含本机sql escape子句时,sql请求文本中的所有escape子句都将被替换,修改后的sql请求文本将作为包含一行和一个varchar列的结果集返回给应用程序。不会将sql请求文本传输到数据库,也不会执行sql请求。native sql escape子句模拟jdbc api 下表列出了与本机sql escape子句一起使用的连接函数escape子句 这些函数提供有关连接的信息,或控制连接的行为。
提供信息的函数返回本地缓存的信息,并避免往返数据库。
在将SQL请求文本传输到数据库之前,连接函数转义子句将被返回的信息替换。 下表列出了用于光标 这些函数控制相应游标的行为,并且在范围上限制为在其中指定它们的特定sql请求。
在将SQL请求文本传输到数据库之前,将删除请求范围函数转义子句。 < A/>许可证
和第三方许可证
文件将放在python安装目录下的teradasql
目录中。文档
readme.md
文件将放在python安装目录下的teradasql
目录中。这允许您在未连接到Internet时脱机查看文档。readme.md
文件是一个纯文本文件,其中包含用于Python的Teradata SQL驱动程序的文档。虽然可以使用任何文本文件查看器或编辑器查看文件,但使用理解标记格式的编辑器,您将获得最佳的查看体验。示例程序
teradasql/samples
目录中。whomooz
、用户名guest
和密码please
进行编码。在运行示例程序之前,请替换实际的Teradata数据库主机名和凭据。 < /广告><正文>程序
目的
batchInsert.py 演示如何插入一批行 charpadding.py 演示Teradata数据库的字符导出宽度行为R Commitrollback.py 演示自动提交关闭时的提交和回滚方法。 driverdatabaseversion.py 显示Teradata SQL驱动程序版本和Teradata数据库版本 elicitfile.py 演示C源文件上载以创建用户定义函数(UDF) 帮助会话.py 显示会话信息 loadcsvfile.py 演示如何将csv文件中的数据加载到表中 来自prepare.py的元数据 演示如何准备SQL请求并获取SQL语句元数据 存储proc.py 演示如何创建和调用SQL存储过程 tjencryptpassword.py 创建加密的密码文件 为python使用teradata sql驱动程序
teradasql
包。import teradatasql
teradasql
包后,python脚本调用teradasql.connect
函数打开到teradata数据库的连接。kwargs
,或者使用这两种方法的组合。函数的第一个参数是可选的json字符串。函数的第二个参数和随后的参数是可选的。
kwargs
:con = teradatasql.connect(host="whomooz", user="guest", password="please")
con = teradatasql.connect('{"host":"whomooz","user":"guest","password":"please"}')
con = teradatasql.connect('{"host":"whomooz"}', user="guest", password="please")
kwargs的连接参数优先于json字符串中指定的同名连接参数。
连接参数
< /广告><正文>参数
默认值
键入 说明
帐户
字符串 指定Teradata数据库帐户。相当于teradata jdbc驱动程序 帐户
连接参数。
列名
"假"
引用布尔值 控制光标 的行为。说明
序列名称项。相当于teradata jdbc drivercolumn\u name
连接参数。false指定游标。description
sequencename
item提供as子句名称(如果可用)、列名(如果可用)或列标题。true指定光标。description
sequencename
item提供列名(如果可用),但在statementinfo packet支持不可用时无效。cop
"真"
引用布尔值 指定是否执行cop发现。相当于teradata jdbc驱动程序 cop
连接参数。coplast
"假"
引用布尔值 指定cop发现如何确定最后一个cop主机名。相当于teradata jdbc driver coplast
connection参数。当coplast
为false
或省略,或者cop发现关闭,则不会对coplast主机名进行dns查找。当coplast
为true
且启用cop发现时,将对coplast主机名进行dns查找。dbs_端口
"1025"
带引号的整数 指定Teradata数据库端口号。相当于teradata jdbc驱动程序 dbs_port
连接参数。加密数据
"假"
引用布尔值 控制Teradata数据库和用于Python的Teradata SQL驱动程序之间交换的数据的加密。相当于teradata jdbc驱动程序 encryptdata
连接参数。假结果集
"假"
引用布尔值 控制包含语句元数据的假结果集是否位于每个实际结果集之前。 主机
字符串 指定Teradata数据库主机名。 lob_支持
"真"
引用布尔值 控制LOB支持。相当于teradata jdbc驱动程序 lob_支持
连接参数。日志
"0"
带引号的整数 控制调试日志记录。相当于teradata jdbc driver log
connection参数。此参数的行为可能在将来发生更改。此参数的值当前定义为一个整数,其中1位控制函数和方法跟踪,2位控制调试日志记录,4位控制发送和接收消息十六进制转储,8位控制计时。通过将1、2、4和/或8相加来组合该值。日志数据
字符串 指定所选登录身份验证方法的额外数据。相当于teradata jdbc驱动程序 logdata
连接参数。logmech
"TD2"
字符串 指定登录身份验证方法。相当于teradata jdbc driver logmech
连接参数。可能的值是td2
(默认值)、jwt
、ldap
、krb5
对于kerberos,或者tdnego
最大消息正文
"2097000"
带引号的整数 尚未完全实现并打算将来使用。相当于teradata jdbc驱动程序 max_message_body
连接参数。分区
"dbc/sql"
字符串 指定Teradata数据库分区。相当于teradata jdbc驱动程序 分区
连接参数。
密码
字符串 指定Teradata数据库密码。相当于teradata jdbc驱动程序 密码
连接参数。
SIP U支持
"真"
引用布尔值 控制是否使用StatementInfoParcel。相当于teradata jdbc驱动程序 sip_支持
连接参数。teradata_值
"真"
引用布尔值 控制是否对某些结果集列值类型使用 str
或更特定的python数据类型。有关详细信息,请参阅下表。t模式
"默认"
字符串 指定事务模式。相当于teradata jdbc驱动程序 tmode
连接参数。可能的值是default
(默认值)、ansi
,或tera
用户
字符串 指定Teradata数据库用户名。相当于teradata jdbc驱动程序 用户
连接参数。
警察发现
cop
为true
或省略时,用于python的teradata sql驱动程序提供通信处理器(communications processor,cop)发现行为。当连接参数cop
为false
时,将关闭cop发现功能。
主机
文件中定义。teradata强烈建议在dns中定义cop主机名,而不是在客户机系统的
主机
文件中定义。在dns中定义cop主机名提供集中管理,并在重新配置teradata数据库时启用对cop主机名的集中更改。
coplast
为false
或省略,或者cop发现已关闭,则用于python的teradata sql驱动程序将不会对coplast主机名执行dns查找。cop last
为true
且启用cop发现时,用于python的teradata sql驱动程序将首先对coplast主机名执行dns查找,以在执行cop发现之前获取最后一个cop主机名的ip地址。随后,在cop发现过程中,当遇到未知的cop主机名或遇到其ip地址与coplast主机名的ip地址匹配的cop主机名时,用于python的teradata sql驱动程序将停止搜索cop主机名。coplast
指定为true
可以提高DNS响应DNS查找失败的速度慢的性能,并且对于从不返回DNS查找失败的DNS是必需的。< >< <
< /广告><正文>没有域名资格
具有域名资格
(推荐)指定的应用程序
teradata数据库主机名whomooz
whomooz.domain.com
默认值:打开cop discovery,并且coplast whomoozcop1
>10.0.0.1
whomoozcop2
>10.0.0.2
whomoozcop3
>10.0.0.3
whomoozcop4
>未定义whomoozcop1.domain.com
?10.0.0.1
whomoozcop2.domain.com
?10.0.0.2
whomoozcop3.domain.com
?10.0.0.3
whomoozcop4.domain.com
>未定义cop discovery已打开,并且coplast is
true
,
执行dns查找,直到cop hostname为fo其IP地址与coplast主机名匹配或遇到未知cop主机名的undwhomoozcopat
?10.0.0.3
whomoozcop1
?10.0.0.1
whomoozcop2
?10.0.0.2
whomoozcop3
?10.0.0.3
whomoozcopat.domain.com
>10.0.0.3
whomoozcop1.domain.com
>10.0.0.1
whomoozcop2.domain.com
>10.0.0.2
whomoozcop3.domain.com
>10.0.0.3
已关闭cop发现并循环dns,
执行一次返回多个ip地址的dns查找
whomooz
?10.0.0.1
,10.0.0.2
,10.0.0.3
whomooz.domain.com
?10.0.0.1
,10.0.0.2
,10.0.0.3
主机
文件中进行。
host
连接参数中指定的主机名。这允许使用cop发现方法以外的负载分配方案。例如,可以使用循环dns或tcp/ip负载分配产品。cop发现优先于简单的数据库主机名查找。要使用另一种负载分配方案,请确保在dns中未定义cop主机名,或者使用cop
作为false
关闭cop发现
存储密码保护
概述
logdata
连接参数中指定的登录密码。加密密码(
开头,则指定的密码必须遵循以下格式:加密密码(文件:
密码加密密钥文件名,文件:
加密密码文件名)
文件:
前缀。必须用一个逗号将密码加密密钥文件名与加密密码文件名分开。设置TjencryptPassword
tjencryptpassword.py
是一个示例程序,用于创建用于存储密码保护的加密密码文件。安装teradata sql driver for python后,示例程序将放在python安装目录下的teradasql/samples
目录中。加密密码(
语法)指定。 < /广告><正文>参数
示例
说明
转换 aes/cbc/nopadding
以算法 /
模式/
填充的形式指定转换。下表列出了支持的转换。按键键 256
指定控制加密强度的算法密钥大小。 MAC < /TD> hmacsha256
指定消息验证代码(MAC)算法 hmacsha1
或hmacsha256
密码加密密钥文件名 密钥.属性
指定当前目录中的文件名、相对路径名或绝对路径名。这个文件是由这个程序创建的。如果该文件已经存在,它将被新文件覆盖。 加密密码文件名 encpass.properties
指定当前目录中的文件名、相对路径名或abs绝对路径名。必须与PasswordEncryptionKeyFileName不同的文件名或路径名。这个文件是由这个程序创建的。如果该文件已经存在,它将被新文件覆盖。 主机名 whomooz
指定Teradata数据库主机名。 用户名 客人
指定Teradata数据库用户名。 密码 请
指定要加密的Teradata数据库密码。密码中的Unicode字符可以用转义序列指定。 命令示例
pip install teradasql
命令安装用于Python的Teradata SQL驱动程序。tjencryptpassword.py
程序文件位于当前目录中。安装teradata sql driver for python后,示例程序将放在python安装目录下的teradasql/samples
目录中。将当前目录更改为python安装目录下的teradasql/samples
目录。 < /广告><正文>平台
命令
MacOS或Linux python tjencryptpassword.py aes/cbc/no添加256 hmacsha256 passkey.properties encpass.properties whomooz guest请
窗口 py-3 tjencryptpassword.py aes/cbc/nopadding 256 hmacsha256 passkey.properties encpass.properties whomooz guest请
密码加密密钥文件格式
< /广告><正文>属性 说明
版本=1
版本号必须是 1
。此属性是必需的。转换
算法/
模式/
填充以算法 /
模式/
填充的形式指定转换。下表列出了支持的转换。此属性是必需的。算法算法 此值必须与转换的算法部分相对应。此属性是必需的。 match=
匹配值密码加密密钥和加密密码文件必须包含相同的匹配值。将比较匹配值,以确保两个指定的文件相互关联,作为"健全性检查"帮助避免配置错误。此属性是必需的。 键=
六位数此值是密码加密密钥,编码为十六进制数字。此属性是必需的。 mac=
macalgorithm指定消息验证代码(MAC)算法 hmacsha1
或hmacsha256
。存储密码保护先执行加密,然后执行mac,以防止填充oracle攻击。此属性是必需的D.</TD >mackey=
十六进制这个值是mac密钥,编码为十六进制数字。此属性是必需的。 加密密码文件格式
< /广告><正文>属性 说明
版本=1
版本号必须是 1
。此属性是必需的。match=
匹配值密码加密密钥和加密密码文件必须包含相同的匹配值。将比较匹配值,以确保两个指定的文件相互关联,作为"健全性检查"帮助避免配置错误。此属性是必需的。 密码=
六位数此值是加密密码,编码为十六进制数字。此属性是必需的。 params=
十六进制此值包含密码算法参数(如果有),编码为十六进制数字。有些密码需要无法从密钥派生的算法参数,例如初始化向量。此属性是可选的,具体取决于密码算法是否具有相关参数。 hash=
十六进制此值是预期的消息身份验证代码(MAC),编码为十六进制数字。加密后,将使用密文、转换名和算法参数(如果有)计算预期的mac。在解密之前,用于python的teradata sql驱动程序使用密文、转换名和算法参数(如果有的话)计算mac,并验证计算出的mac是否与预期的mac匹配。如果计算的mac与预期的mac不同,则其中一个或两个文件可能已被篡改。此属性是必需的。 params
在技术上是可选的,但所有三种分组密码模式cbc
、cfb
和ofb
都需要初始化向量,而teradata sql driver for python支持这三种模式。ecb(电子码本)不需要params
,但用于python的teradata sql驱动程序不支持ecb。转换、密钥大小和mac
< /广告><正文>转换 键大小 des/cbc/nopadding
des/cbc/pkcs5添加
des/cfb/nopadding
des/cfb/pkcs5添加
des/ofb/nopadding
des/ofb/pkcs5添加
desede/cbc/nopadding
desede/cbc/pkcs5添加
desede/cfb/nopadding
desede/cfb/pkcs5添加
desede/ofb/nopadding
desede/ofb/pkcs5添加
aes/cbc/nopadding
aes/cbc/nopadding
aes/cbc/nopadding
aes/cbc/pkcs5添加
aes/cbc/pkcs5添加
aes/cbc/pkcs5添加
aes/cfb/nopadding
aes/cfb/nopadding
aes/cfb/nopadding
aes/cfb/pkcs5添加
aes/cfb/pkcs5添加
aes/cfb/pkcs5添加
aes/ofb/nopadding
aes/ofb/nopadding
aes/ofb/nopadding
aes/ofb/pkcs5添加
aes/ofb/pkcs5添加
aes/ofb/pkcs5添加
hmacsha1
和hmacsha256
。cfb8
或ofb8
等模式用作面向字节的密码的块密码。
与Teradata JDBC驱动程序共享文件
aes/cbc/nopadding
和hmacsha256
hmacsha1
与JDK 1.4.2兼容。文件位置
加密密码(
语法),每个文件名前面必须有文件:
前缀。
必须用一个逗号将密码加密密钥文件名与加密密码文件名分开。文件可以位于当前目录中,用相对路径指定,或用绝对路径指定。ENCRYPTED_PASSWORD(file:JohnDoeKey.properties,file:JohnDoePass.properties)
ENCRYPTED_PASSWORD(file:../dir1/JohnDoeKey.properties,file:../dir2/JohnDoePass.properties)
ENCRYPTED_PASSWORD(file:c:/dir1/JohnDoeKey.properties,file:c:/dir2/JohnDoePass.properties)
ENCRYPTED_PASSWORD(file:/dir1/JohnDoeKey.properties,file:/dir2/JohnDoePass.properties)
处理顺序
交易模式
tmode
连接参数允许应用程序指定连接的事务模式。"tmode":"ansi"
提供美国国家标准协会(ansi)事务语义。建议使用此模式。"tmode":"tera"
提供传统的teradata事务语义。此模式仅建议用于需要Teradata事务语义的旧式应用程序。"tmode":"default"
提供为teradata数据库配置的默认事务模式,该模式可以是ansi或tera模式。"tmode":"default"
是省略tmode
连接参数时的默认值。multiset
。在tera模式下创建的表默认为集合
表。
case-specific
。对于在tera模式下创建的表,默认情况下字符列不区分大小写。而不是特定于大小写的
where
子句条件中)在tera模式下不区分大小写,但在ansi模式下区分大小写。这反过来又可以在ansi模式和tera模式下产生不同的查询结果。无论模式如何,比较两个不区分大小写的表达式都是不区分大小写的,将一个不区分大小写的表达式与任何类型的另一个表达式进行比较都是区分大小写的,无论模式如何。您可以显式地将表达式转换为case-specific
或not case-specific
以获得应用程序所需的字符数据比较。自动提交
commit
方法或rollback
方法。execute
方法来管理事务,方法是使用Teradata_nativeSQL
和Teradata_auto commit_off
转义函数来关闭自动提交。cur.execute("{fn teradata_nativesql}{fn teradata_autocommit_off}")
commit
或rollback
方法来负责提交或回滚事务。
0
import teradatasql
bt
、et
、abort
、commit
或rollback
,因为这些命令在不同供应商之间有所不同。(teradata的两种模式ansi和tera甚至有所不同)相反,最佳实践建议应用程序只调用标准方法commit
和rollback
进行事务管理。commit
。commit
。当应用程序调用commit
方法时,驱动程序执行commit
bt
或et
,un应用程序显式执行bt
或et
命令本身,这是不推荐的。bt
。当应用程序调用commit
方法时,驱动程序执行et
直到事务完成。bt
。随后,在tera模式下,在auto commit关闭的情况下,当应用程序使用驱动程序执行另一个sql请求,并且会话已经有一个正在进行的事务时,则驱动程序无需在执行应用程序的sql请求之前执行bt
。bt
和et
对,teradata数据库跟踪嵌套级别。最外面的bt
/et
对定义事务范围;内部bt
/et
对对对事务没有影响,因为teradata数据库不提供实际的事务嵌套。要提交事务,必须重复执行et
命令,直到解除嵌套。teradata wire协议位(前面提到过)指示何时解除嵌套并完成事务。当应用程序在tera模式下调用commit
方法时,驱动程序反复执行et
命令,直到嵌套解除并且事务完成。bt
、et
、abort
、commit
或rollback
之前关闭自动提交。应用程序负责为有效的事务模式执行适当的命令。tera模式命令是bt
,et
和abort
。ANSI模式命令是commit
和rollback
。在禁用自动提交的tera模式下打开事务时,应用程序必须特别小心。在tera模式下,在auto commit关闭的情况下,当应用程序执行一个sql请求时,如果会话没有正在进行的事务,那么驱动程序在执行应用程序的sql请求之前会自动执行bt
。因此,应用程序不应通过执行bt
1
import teradatasql
commit
和rollback
。
2
import teradatasql
数据类型
< /广告><正文>Teradata数据库数据类型
结果集python数据类型
将teradata的值设置为 false
bigint
int
blob
字节
<代码>代码>字节 字节
byteint
int
字符
< < > >str
clob
str
日期
datetime.date
str
十进制
decimal.decimal
str
浮点数
浮点数
整数
int
间隔年
str
年到月的间隔
< < > >str
间隔月份
str
间隔日
str
每天到每小时的间隔
str
每天到分钟的间隔
str
天到秒的间隔
str
间隔小时
str
小时到分钟的间隔
str
间隔小时到秒
str
间隔分钟
str
间隔分钟到秒
str
间隔秒
< < > >str
号码
decimal.decimal
str
期间(日期)
< < > >str
时段(时间)
str
时段(带时区的时间)
str
周期(时间戳)
str
时段(带时区的时间戳)
str
smallint
< < > >int
时间
datetime.time
str
时区时间
datetime.time
使用tzinfo
str
时间戳
datetime.datetime
str
带时区的时间戳
datetime.datetime
使用tzinfo
str
varbyte
< < > >字节
varchar
< < > >str
< /广告>< >绑定-值python数据类型
Teradata数据库数据类型
字节
varbyte
datetime.date
日期
datetime.datetime
时间戳
datetime.datetime
使用tzinfo
带时区的时间戳
datetime.time
时间
datetime.time
使用tzinfo
时区时间
datetime.timedelta
varchar
格式与天到秒的间隔兼容
十进制。十进制
号码
浮点数
浮点数
int
bigint
str
varchar
array
数据值,它们可以作为varchar
值在数据库中来回传输。varchar
值在数据库中来回传输。空值
null
从teradata数据库接收的值作为pythonnone
值返回结果集行。none
值作为null
varchar
值传输到teradata数据库。字符导出宽度
charset
连接参数。注意teradata数据库的字符导出宽度行为,在使用utf8会话字符集时,该行为会将尾随空格填充添加到固定宽度的char
数据类型结果集列值。char(
n)
数据类型是固定宽度的数据类型(包含n个字符),teradata数据库为响应假脱机和网络消息中的字符(
n)保留固定字节数交通。
字符(
n)
数据类型在响应假脱机和网络消息通信中可以占用的最大字节数。当使用utf8会话字符集时,teradata数据库将填充字符附加到小于保留的最大大小的char(
n)
值的尾部,以便char(
n)
值都占用相同的固定数字o响应假脱机和网络消息通信中的f字节。select
语句或视图中使用cast
或trim
来解决这个缺点,将固定宽度的char
数据类型转换为varchar
char
列:创建表mytable(c1 char(10),c2 char(10))
从MyTable中选择C1、C2
cast
或trim
修改查询以避免尾随空格填充:从mytable中选择cast(c1作为varchar(10)),trim(从c1开始)
cast
或trim
将查询包装在视图中,以避免后面的空格填充:将视图myview(c1,c2)创建为select cast(c1创建为varchar(10)),从mytable修剪(从c2开始)
从MyView中选择C1、C2
charpadding.py
模块构造函数
teradasql.connect(
jsonconnectionstring,
参数…)
none
。第二个参数和随后的参数是可选的。将连接参数指定为json字符串、kwargs或两者的组合。kwargs
take prec在json字符串中指定的相同命名连接参数上删除。teradasql.date(
年,
月,
日)
datetime.date
值。teradasql.datefromticks(
秒)
datetime.date
值。teradasql.time(
小时,
分钟,
秒)
datetime.time
值。teradasql.timefromticks(
seconds)
datetime.time
值。teradasql.timestamp(
年,
月,
日,
小时,
分钟,
秒datetime.datetime
值。teradasql.timestampfromticks(
seconds)
datetime.datetime
值。模块全局
teradasql.apilevel
"2.0"
表示用于python的teradata sql驱动程序实现了pep-249 python数据库api规范2.0teradasql.threadsafety
2
表示线程可以共享此模块,线程可以共享连接,但线程不能共享游标。teradasql.paramstyle
模块异常
teradasql.error
是其他异常的基类。teradasql.interfaceerror
针对与驱动程序相关的错误引发。尚未支持。teradasql.databaseerror
针对与数据库相关的错误引发。
teradasql.dataerror
针对数据值错误(如被零除)引发。尚未支持。teradasql.integrityerror
是针对引用完整性冲突而引发的。尚未支持。teradasql.operationerror
针对与数据库操作相关的错误引发。teradasql.programmingerror
针对SQL对象存在错误和SQL语法错误引发。尚未支持。连接方法
.close()
.commit()
.cursor()
.rollback()
光标属性
。排列大小
.fetchmany()
方法一次获取的行数。默认为1
表示一次提取一行。。连接
。说明
。description[
列][0]
提供列名称。。说明[
column][1]
将列类型代码作为与下面列出的类型对象之一类似的对象提供。。description[
column][2]
提供以字符为单位的列显示大小。尚未实施。。description[
column][3]
以字节为单位提供列大小。。description[
列][4]
提供列精度(如果适用),否则提供列精度。。description[
列][5]
提供列比例(如果适用),否则为无
。.description[
列][6]
提供列的可空性为真
或假
.rowcount
光标方法
.callproc(
过程重命名,
参数值的可选顺序)
in
和inout
参数值的序列,以将值绑定到sql请求中的问号参数标记。
不支持将参数值指定为映射。
返回由inout
参数输出值(如果有)和任何动态结果集组成的结果集。out
此方法不支持参数。使用。execute
调用具有out
参数的存储过程。.close()
。执行(
sqlrequest,
参数值的可选序列)
.executemany(
sqlrequest,
参数值序列的序列)
.fetchall()
.fetchmany(
可选行数)
.arraysize
属性将确定要提取的行数。
返回列值序列或空序列,以指示所有行都已提取。.fetchone()
none
以指示所有行都已提取。.nextset()
true
或none
以指示所有结果集都已获取。.setinputsizes(
类型排序的顺序)
.setOutputSize(
大小,
可选列索引)
键入对象
teradasql.binary
blob
、byte
或varbyte
列标识为二进制数据类型。.description[
列][1]==teradasql.binary
teradasql.datetime
日期
、时间
、时区时间
、时间戳
或时区时间戳列与光标的"描述"属性相比较时,作为日期/时间数据类型。
.description[
列][1]==teradasql.datetime
teradasql.number
bigint
、byteint
、decimal
、float
、integer
、number
或smallint
列标识为数字数据类型。.description[
列][1]==teradasql.number
teradasql.string
char
、clob
、interval
、period
或varchar
列与光标的"描述"属性相比较时识别为字符数据类型。.description[
列][1]==teradasql.string
转义语法
日期和时间文本
< /广告><正文>文字类型
格式
日期 {d'
yyyy-mm-dd'}
时间 {t'
hh:mm:ss'}
时间戳 {ts'
yyyy-mm-dd hh:mm:ss'}
时间戳 {ts'
yyyy-mm-dd hh:mm:ss.f'}
标量函数
< /广告><正文>数值函数
返回
{fn abs(
数字)}
数字的绝对值 {fn acos(
float)}
以弧度表示的反余弦
{fn asin(
浮点)}
弧度表示的浮点数
{fn atan(
浮点)}
以弧度表示的反正切值
{fn atan2(
y,
x)}
弧切,以弧度表示,属于y/x {fn天花板(
数字)}
大于或等于数的最小整数 {fn cos(
浮点)}
余弦浮点数弧度 {fn cot(
float)}
浮点的余切弧度 {fn度(
数字)}
角度in数值弧度 {fn exp(
浮点)}
e提高到浮点的幂
{fn楼层(
编号)}
小于或等于数的最大整数 {fn日志(
float)}
自然(基e)浮点的对数
代码>{fn log10(float )}
以10为底的浮点对数
{fn mod(
整数1,
整数2)}
整数1的余数
{fn pi()}
常数pi,约等于3.14159… {fn幂(
数,
整数)}
数字提升为整数幂 {fn弧度(
数字)}
弧度in数值度 {fn rand(
种子)}
一个随机浮点数,忽略0‰值lt;1和种子。
{fn round(
数字,
地点)}
数字四舍五入到个位置 {fn符号(
数字)}
-1如果数字为负;0如果数字为0;1如果数字为正 {fn sin(
浮点)}
正弦浮点弧度 {fn sqrt(
浮点)}
浮点的平方根
{fn tan(
浮点)}
浮点的正切弧度 <表><广告>{fn截断(
数字,
位置)}
数字截断为个位置 < /广告><正文>字符串函数 返回
{fn ascii(
字符串)}
字符串中第一个字符的ascii码
{fn char(
代码)}
带ascii代码的字符 {fn字符长度(
字符串)}
字符串的字符长度
{fn字符长度(
字符串)}
字符串的字符长度
{fn concat(
string1,
string2)}
串接string1和string2 形成的字符串
{fn差异(
string1,
string2)}
一个从0到4的数字,表示基于它们的soundex代码的string1和string2的语音相似性,这样返回值越大表示语音相似性越大;0表示不相似,4表示强相似性 {fn插入(
字符串1,
位置,
长度,
字符串2)}
用string2替换位置处字符串1的长度字符段形成的字符串,从Teradata数据库15.0开始可用
{fn lcase(
字符串)}
将字符串中的所有大写字符替换为相应的小写字符而形成的字符串 {fn左(
字符串,
计数)}
最左边的计数字符串的字符数 {fn长度(
字符串)}
字符串的字符长度
{fn定位(
string1,
string2)}
在string1第一次出现的string2中定位,如果string2不包含string1 {fn ltrim(
字符串)}
移除le形成的字符串从字符串读取空格
{fn八位字节长度(
字符串)}
字符串的八位字节长度
{fn位置(
string1in
string2)}
在string1第一次出现的string2中定位,如果string2不包含string1 {fn重复(
字符串,
计数)}
通过重复stringcount次而形成的字符串,从Teradata数据库15.0开始提供
{fn替换(
string1,
string2,
string3)}
将string1中的所有string2替换为string3 {fn右(
字符串,
计数)}
最右边的count个字符,从Teradata数据库15.0开始提供
{fn rtrim(
字符串)}
通过从字符串中删除尾随空格而形成的字符串
{fn soundex(
字符串)}
字符串的soundex代码
{fn空格(
计数)}
由count空格组成的字符串
{fn子字符串(
字符串,
位置,
长度)}
字符串的长度字符段位于位置 <表><广告>{fn ucase(
字符串)}
将字符串中的所有小写字符替换为其大写等效字符而形成的字符串 < /广告><正文>系统功能
返回
{fn database()}
当前默认数据库名称 {fn ifnull(
表达式,
值)}
表达式如果表达式不为空,或者值如果表达式为空 <表><广告>{fn user()}
登录用户名,在设置代理用户之后,它可能与当前的授权用户名不同
< /广告><正文>时间/日期函数
返回
{fn curdate()}
当前日期 {fn current_date()}
当前日期 {fn current_time()}
当前时间 {fn current_timestamp()}
当前日期和时间 {fn curtime()}
当前时间 {fn月日(
日期)}
从1到31的整数,表示日期中的月份
{fn提取(年份从
值)}
日期和/或时间的年份分量值 {fn提取(月起
值)}
日期和/或时间的月份组成值 {fn提取(日起
值)}
日期和/或时间的日分量值 {fn提取(小时从
值)}
日期和/或时间的小时组成值 {fn提取(分钟从
值)}
日期和/或时间的分钟分量值 {fn提取(从
值)}
第二次日期和/或时间的组成部分值 {fn小时(
时间)}
从0到23的整数,表示时间的小时
{fn分钟(
时间)}
从0到59的整数,表示时间的分钟
{fn月(
日期)}
从1到12的整数,表示日期的月份
{fn now()}
当前日期和时间 {fn秒(
时间)}
从0到59的整数,表示时间的秒数
{fn时间戳添加(sql-tsi-year,
计数,
时间戳)}
通过将计数年添加到时间戳 而形成的时间戳
{fn timestampadd(sql-tsi-u-month,
计数,
时间戳)}
将count个月添加到timestamp {fn时间戳添加(SQL TSI日,
计数,
时间戳)}
通过将计数天添加到时间戳 {fn timestampadd(sql-tsi-hour,
计数,
时间戳)}
通过将计数小时添加到时间戳 {fn timestampadd(sql tsi u minute,
计数,
时间戳)}
通过将计数分钟添加到时间戳 {fn timestampadd(sql_tsi_second,
计数,
时间戳)}
通过将计数秒添加到时间戳 {fn timestampdiff(SQL年,
时间戳1,
时间戳2)}
时间戳2超过时间戳1的年数
{fn timestampdiff(sql-tsi-u-month,
时间戳1,
时间戳2)}
时间戳2超过时间戳1的月数
{fn timestampdiff(sql-tsi-u-day,
时间戳1,
时间戳2)}
时间戳2超过时间戳1的天数
{fn timestampdiff(每小时计算时间,
时间戳1,
时间戳2)}
时间戳2超过时间戳1的小时数
{fn timestampdiff(SQL时间间隔,
时间戳1,
时间戳2)}
时间戳2超过时间戳1的分钟数
{fn timestampdiff(SQL秒,
时间戳1,
时间戳2)}
时间戳2超过时间戳1的秒数
{fn年(
日期)}
年月日
转换函数
< /广告><正文>转换函数
返回
{fn转换(
值,sql_bigint)}
值转换为sql bigint
{fn转换(
值,SQL二进制(
大小)}
值转换为sql 字节(
大小)
{fn转换(
)值,sql_char(
大小)}
值转换为sql char(
大小)
{fn转换(
值,sql_date)}
值转换为SQL 日期
{fn转换(
值,sql十进制(
精度,
刻度)}
值转换为SQL 十进制(
精度,
刻度)
{fn转换(
值,sql双精度)}
值转换为SQL 的同义词
双精度
,是浮点
{fn转换(
值,sql_float)}
值转换为sql float
{fn转换(
值,sql_integer)}
值转换为SQL 整数
{fn转换(
值,sql_longvarbinary)}
值转换为sql varbyte(64000)
{fn转换(
值,sql_longvarchar)}
值转换为sql long varchar
{fn转换(
值,sql数值)}
值转换为sql 数字
{fn转换(
值,sql_smallint)}
值转换为sql smallint
{fn转换(
值,sql时间(
比例)}
值转换为sql 时间(
比例)
{fn转换(
值,sql时间戳(
缩放)}
值转换为sql 时间戳(
比例)
{fn转换(
值,sql tinyint)}
值转换为sql byteint
{fn转换(
值,sql变量(
大小)}
值转换为sql varbyte(
大小)
{fn转换(
值,sql varchar(
大小)}
值转换为sql varchar(
大小)
类似谓词转义字符
like
谓词的模式参数中,字符%
(百分比)和(下划线)用作通配符。
要在
like
谓词的模式参数中逐字解释特定的通配符,通配符前面必须有转义符,转义符必须在like
谓词的转义
子句中指示。like
谓词转义字符转义子句在SQL请求文本传输到数据库之前被相应的SQL子句替换。{escape'
转义字符'}
like
谓词之后立即指定。外部连接
{oj
表名可选关联名
左外联接
表名可选关联名
on
联接条件}
{oj
表名选项关联名
右o外部联接
表名选项关联名
打开
联接条件}
{oj
表名可选关联名
完全外部联接
表名可选关联名
on
联接条件>>
存储过程调用
{调用
过程重命名}
{调用
过程重命名(
逗号分隔参数值…)}
本机SQL
connection.nativesql
方法的功能。{fn teradata\u nativesql}
连接功能
{fn teradata\u nativesql}
< /广告><正文>连接功能
返回
{fn teradata\u amp\u count}
Teradata数据库系统的安培数 {fn teradata_database_version}
Teradata数据库的版本号 {fn teradata_driver_version}
用于python的teradata sql驱动程序的版本号 {fn teradata\u getloglevel}
当前日志级别 {fn teradata登录序列号}
会话的登录序列号(如果可用) {fn teradata_provide(配置响应)}
以json格式配置响应包内容 {fn teradata_provide(连接id)}
进程中连接的唯一标识符 {fn teradata_provide(默认连接)}
false
表示这不是存储过程默认连接
{fn teradata_provide(主机id)}
会话的主机ID {fn teradata_provide(java_charset_name)}
utf8
{fn teradata_provide(lob_支持)}
true
或false
表示此连接的LOB支持
{fn teradata_provide(本地地址)}
连接的TCP套接字的本地地址 {fn teradata_provide(本地端口)}
连接的TCP套接字的本地端口 {fn teradata_provide(原始主机名)}
原始指定的Teradata数据库主机名 {fn teradata_provide(redrive_active)}
true
或false
指示此连接是否已重新驱动
{fn teradata_provide(远程地址)}
连接的Teradata数据库节点的主机名(如果可用)和IP地址 {fn teradata_provide(远程端口)}
tera的tcp端口号数据数据库 {fn teradata_provide(rnp_active)}
true
或false
指示此连接是否激活了可恢复的网络协议
{fn teradata_provide(会话字符集代码)}
会话字符集代码 191
{fn teradata_provide(session_charset_name)}
会话字符集名称 utf8
{fn teradata_provide(sip_支持)}
true
或false
表示此连接的语句信息包支持
{fn teradata_provide(事务模式)}
会话的事务模式, ansi
或tera
{fn teradata_session_number}
会话编号 {fn teradata_setloglevel(
loglevel)}
空字符串,并更改连接的日志级别
请求范围函数
的请求范围函数转义子句。execute
或。executemany
方法。 < /广告><正文>请求作用域函数
效果 {fn teradata_failfast}
拒绝("Fail Fast")此SQL请求,而不是由工作负载管理规则或限制延迟 {fn teradata伪结果集}
每个真实结果集前面都有一个包含语句元数据的假结果集 {fn teradata_lobselect(
选项)}
使用lob select选项执行sql请求 s
(假脱机范围的lob定位器)、t
(事务范围的lob定位器)或默认的i
(内联具体化的lob值){fn teradata_provide(请求范围lob支持关闭)}
关闭此SQL请求的LOB支持 {fn teradata_provide(请求范围刷新rsmd)}
使用默认的请求处理选项执行SQL请求
{fn teradata_provide(请求范围SIP支持关闭)}
关闭此SQL请求的StatementInfoParcel支持 {fn teradata_rpo(
请求处理选项)}
使用requestprocessingoption s
(prepare)、e
(execute)或默认的b
(both)执行SQL请求
{fn teradata_untrusted}
将SQL请求标记为不受信任;尚未实现 更改日志
16.20.0.47
-2019年8月27日
16.20.0.46
-2019年8月16日
16.20.0.45
-2019年8月12日
16.20.0.44
-2019年8月7日
16.20.0.43
-2019年7月29日
16.20.0.42
-2019年6月7日
batchinsert.py
16.20.0.41
-2019年2月14日
16.20.0.40
-2019年2月8日
16.20.0.39
-2018年10月26日
storedproc.py
16.20.0.38
-2018年10月25日
16.20.0.37
-2018年10月22日
16.20.0.36
-2018年10月22日
16.20.0.35
-2018年10月22日
16.20.0.34
-2018年10月15日
tjencryptpassword.py
16.20.0.33
-2018年10月12日
16.20.0.32
-2018年9月19日
loadcsvfile.py
和metadatafromprepare.py
16.20.0.31
-2018年9月19日
16.20.0.30
-2018年9月14日
16.20.0.29
-2018年9月14日
16.20.0.28
-2018年9月13日
16.20.0.27
-2018年9月12日
16.20.0.26
-2018年9月11日
16.20.0.25
-2018年9月10日
16.20.0.24
-2018年9月6日
16.20.0.23
-2018年8月31日
16.20.0.22
-2018年8月30日
16.20.0.21
-2018年8月29日
16.20.0.20
-2018年8月28日
16.20.0.19
-2018年8月22日
16.20.0.18
-2018年8月21日
16.20.0.17
-2018年8月20日
16.20.0.16
-2018年8月17日
16.20.0.15
-2018年8月17日
16.20.0.14
-2018年8月10日
16.20.0.13
-2018年8月9日
16.20.0.12
-2018年8月9日
16.20.0.11
-2018年8月8日
16.20.0.10
-2018年8月8日
16.20.0.9
-2018年8月7日
16.20.0.8
-2018年8月7日
16.20.0.7
-2018年7月30日
16.20.0.6
-2018年7月25日
16.20.0.5
-2018年7月25日
16.20.0.4
-2018年7月23日
16.20.0.3
-2018年7月19日
16.20.0.2
-2018年7月19日
16.20.0.1
-2018年7月18日
16.20.0.0
-2018年7月18日
推荐PyPI第三方库