Module STPython

Binary

语法:

STPython.Binary(string)

说明:

创建BINARY类型对象

举例:

STPython.Binary('string'.encode('utf-8'))

输出: b'string'

Bulk

语法:

STPython.Bulk(con, tableName, **kwargs)

说明:

创建Bulk类型对象

位置参数:
  • con: 连接对象
  • tableName: 表名
可选参数:
  • schema: 模式名,不设置时默认SYSDBA
  • colsDesc: 列描述符,在插入的数据的顺序与表中的顺序不一致或者并非导入数据库中所有列时,需要提供符合格式的列描述语句,如"B text,A text",当不设置时在addrow或addrows需按表的所有字段顺序输入
  • bufferSize: 缓存大小,不设置时默认1M

举例:

table_name = "tab01"
schema = "SYSDBA"
cols_desc = "B text,A text"
bufferSize = 1024*1024
con = STPython.Connection('sysdba','szoscar55','localhost:2003/osrdb')
bulk = STPython.Bulk(con, table_name, schema=schema, colsDesc=cols_desc, bufferSize=bufferSize)

clientversion

语法:

STPython.clientversion()

说明:

返回用作 5 元组的客户端库的版本。这五个值是主版本、次要版本、更新编号、修补程序编号和端口更新编号。

举例:

STPython.clientversion()

Connection

语法:

STPython.Connection(*args, **kwargs)

说明:

连接数据库,返回一个 connection 对象。

参数为连接属性,所有连接属性都可以用关键字指定,在 connection 连接串中,没有指定的关键 字都按照默认值处理。

参数描述

user 用户名
password 密码
dsn 连接串
mode 连接方式,目前仅支持默认值(不指定)
handle ACISvcCtx*类型,且仅当Python程序作为植入程序时使用
threaded 是否是多线程模式

举例:

例1

../../../../../_images/connection.png

例2

../../../../../_images/connection1.png

connect

同Connection

Cursor

语法:

STPython.Cursor(connection)

说明:

创建右边对象

参数描述

connection 连接对象

举例:

../../../../../_images/STCursor.png

Date

语法:

STPython.Date(year, month, day)

说明:

创建date类型对象

同标准 datetime.date(year, month, day)

举例:

../../../../../_images/date.png

DateFromTicks

语法:

STPython.DateFromTicks(ticks)

说明:

指定 ticks(从新纪元开始的秒值)构造日期类型对象。

举例:

date = STPython.DateFromTicks(1499930096)
print(date)

Time

语法:

STPython.Time(hour, minute, second)

说明:

构造一个保存时间值的对象。

举例:

STPython.Time(12,35,57)

TimeFromTicks

语法:

STPython.TimeFromTicks(ticks)

说明:

构造一个对象,其中包含给定价格变动值(自纪元以来的秒数;有关详细信息,请参阅标准 Python 时间模块的文档)。

举例:

timeTuple = (2002, 12, 9, 0, 0, 0, 0, 0, -1)
timeInTicks = time.mktime(timeTuple) + 1 * 86400
dateValue = STPython.TimestampFromTicks(int(timeInTicks))
print(dateValue)

输出: 2002-12-10 00:00:00

Timestamp

语法:

STPython.Timestamp(year, month, day, hour, minute, second)

说明:

创建timestamp类型对象

同标准datetime.datetime

举例:

STPython.Timestamp(2021,7,29,13,30,59)

TimestampFromTicks

语法:

STPython.TimestampFromTicks(ticks)

说明:

指定 ticks(从新纪元开始的秒值)构造Timestamp类型对象。

举例:

STPython.TimestampFromTicks(124235323)

输出:1973-12-09 05:48:43

apilevel

语法:

STPython.apilevel

说明:

返回字符串对象,说明当前支持的DB API 级别,当前是2.0

举例:

STPython.buildtime

输出: 2.0

buildtime

语法:

STPython.buildtime

说明:

返回字符串对象,说明编译时间

举例:

STPython.buildtime

paramstyle

语法:

STPython.paramstyle

说明:

返回字符串对象,说明当前参数格式。当前是named 如where name=:name

举例:

STPython.paramstyle

输出: named

threadsafety

语法:

STPyhton.threadsafety

说明:

说明当前线程安全级别 当前是2

级别描述

0:不支持线程安全, 多个线程不能共享此模块

1:初级线程安全支持: 线程可以共享模块, 但不能共享连接

2:中级线程安全支持 线程可以共享模块和连接, 但不能共享游标

3:完全线程安全支持 线程可以共享模块, 连接及游标

举例:

STPython.threadsafety

输出: 2

version

语法:

STPython.vesion

说明:

返回当前STPython版本

举例:

STPython.version

输出版本号

__version__

语法:

STPython.__version__

说明:

同STPython.version

PRELIM_AUTH

语法:

STPython.PRELIM_AUTH

说明:

此常量用于指定要使用的初步身份验证。这是执行数据库启动和关闭所必需的。

SYSASM

语法:

STPython.SYSASM

说明:

此常量用于指定要获取的 SYSASM 访问权限。

SYSDBA

语法:

STPython.SYSDBA

说明:

此常量用于指定要获取的 SYSDBA 访问权限。

SYSOPER

语法:

STPython.SYSOPER

说明:

此常量用于指定要获取的 SYSOPER 访问权限。

OPCODE_ALLOPS

语法:

STPython.OPCODE_ALLOPS

说明:

此常量用于指定应为所有操作发送消息。

OPCODE_ALLROWS

语法:

STPython.OPCODE_ALLROWS

说明:

此常量用于指定表或查询已完全失效。

OPCODE_ALTER

语法:

STPython.OPCODE_ALTER

说明:

此常量用于指定在 DDL 以某种方式更改已注册的表时应发送消息,或者消息标识已更改的表。

OPCODE_DELETE

语法:

STPython.OPCODE_DELETE

说明:

此常量用于指定在删除数据时应发送消息,或者消息标识已删除的行。

OPCODE_DROP

语法:

STPython.OPCODE_DROP

说明:

此常量用于指定在删除已注册的表时应发送消息,或者该消息标识已删除的表。

OPCODE_INSERT

语法:

STPython.OPCODE_INSERT

说明:

此常量用于指定在插入数据时应发送消息,或者消息标识已插入的行

OPCODE_UPDATE

语法:

STPython.OPCODE_UPDATE

说明:

此常量用于指定在更新数据时应发送消息,或者消息标识已更新的行。

BINARY

语法:

STPython.BINARY

说明:

此类型对象用于描述数据库中包含二进制数据的列

DATETIME

语法:

STPython.DATETIME

说明:

此类型对象用于描述数据库中包含二进制数据的列

举例:

cursor.execute('create table dt(d date)')
var = cursor.var(STPython.DATETIME)
var.setvalue(0,STPython.Timestamp(2022, 7, 30, 12, 33, 20))
cursor.execute('insert into dt values(:da)', da=var)
cursor.execute('select * from dt')
print(cursor.fetchone())

输出: (datetime.datetime(2022, 7, 30, 0, 0),)

INTERVAL

语法:

STPython.INTERVAL

说明:

该类型用来描述数据库时间戳类型

NUMBER

语法:

STPython.NUMBER

说明:

此类型对象用于描述数据库中的数字列

举例:

cursor.execute('create table tn(s number)')
var = cursor.var(STPython.NUMBER)
var.setvalue(0,123)
cursor.execute('insert into tn values(:t)', t=var)
cursor.execute('select * from tn')
v, = cursor.fetchone()
print(v)

ROWID

语法:

STPython.ROWID

说明:

此类型对象用于描述伪列“rowid”。

STRING

语法:

STPython.STRING

说明:

此类型对象用于描述数据库中的字符串列

举例:

cursor.execute('create table ts(s varchar(256))')
var = cursor.var(STPython.STRING)
var.setvalue(0,'hello world')
cursor.execute('insert into ts values(:t)', t=var)
cursor.execute('select * from ts')
v, = cursor.fetchone()
print(v)

BFILE

语法:

STPython.BFILE

说明:

BFILE类型

BLOB

说明:

该类型用来描述数据库BLOB类型

举例:

cursor = connection.cursor()
cursor.execute('create table tb(b blob)')
cursor.execute('insert into tb values(empty_blob)')
cursor.execute('select * from tb')
b, = cursor.fetchone()
b.write(b'aaa')
print(b.read())

BOOLEAN

语法:

STPython.BOOLEAN

说明:

BOOLEAN类型

CLOB

说明:

该类型用来描述数据库CLOB类型

举例:

../../../../../_images/BCLOB.png

CURSOR

语法:

STPython.CURSOR

说明:

游标类型

DATETIME

说明:

该类型用来描述数据库日期类型

举例:

../../../../../_images/DATETIME.png

INTERVAL

说明:

该类型用来描述数据库时间戳类型

LOB

说明:

该类型用来描述Python 的BLOB和CLOB类型

举例:

../../../../../_images/lob_ty.png

NUMBER

说明:

该类型用来描述数据库数值类型

举例:

../../../../../_images/NUMBER.png

ROWID

说明:

该类型用来描述表的rowid

STRING

说明:

该类型用来描述数据库字符类型

举例:

../../../../../_images/STRING.png

TIMESTAMP

说明:

该类型用来描述数据库Timestamp类型

举例:

../../../../../_images/TIMESTAMP.png

Warning

语法:

STPython.Warning

说明:

为重要警告引发的异常,由数据库 API 定义

Error

语法:

STPython.Error

说明:

异常是STPython定义的所有其他异常的基类,并且是 Python 标准错误异常

InterfaceError

语法:

STPython.InterfaceError

说明:

对于与数据库接口(而不是数据库本身)相关的错误引发的异常。它是 Error 的子类。

DatabaseError

语法:

STPython.DatabaseError

说明:

为与数据库相关的错误引发异常。它是 Error 的子类。

DataError

语法:

STPython.DataError

说明:

对于由于已处理数据问题而导致的错误引发的异常。它是 DatabaseError 的子类。

OperationalError

语法:

STPython.OperationalError

说明:

对于与数据库操作相关但不一定受程序员控制的错误引发的异常。它是 DatabaseError 的子类。

IntegrityError

语法:

STPython.IntegrityError

说明:

当数据库的关系完整性受到影响时引发异常。它是 DatabaseError 的子类。

InternalError

语法:

STPython.InternalError

说明:

数据库遇到内部错误时引发异常。它是 DatabaseError 的子类。

ProgrammingError

语法:

STPython.ProgrammingError

说明:

因编程错误引发异常。它是 DatabaseError 的子类。

NotSupportedError

语法:

STPython.NotSupportedError

说明:

使用数据库不支持的方法或数据库 API 时引发异常。它是 DatabaseError 的子类。