Connection

action

语法

Connection.action

说明:

此只写属性设置 v$session 表中的操作列。它是一个字符串属性,不能设置为 None – 请改用空字符串。

举例:

connection = STPython.connect(user="SYSDBA", password="szoscar55",
              dsn="localhost:2003/osrdb", threaded = False,
              encoding="UTF-8")
connection.action = "TEST_ACTION"

autocommit

语法

Connection.autocommit

说明:

是否自动提交事务(可读写)

举例:

connection.autocommit = 1

begin

语法

Connection.begin()

说明:

开启事务 用例详见Connection.rollback()的例

bulk

语法

Connection.bulk(tableName, **kwargs)

说明:

创建大容量导入对象
  • 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
conn = STPython.Connection('sysdba','szoscar55','localhost:2003/osrdb')
bulk = conn.bulk(table_name, schema=schema, colsDesc=cols_desc, bufferSize=bufferSize)

cancel

语法

Connection.cancel()

说明:

中断长时间运行的事务。

client_identifier

语法

Connection.client_identifier

说明:

此只写属性设置 v$session 表中的client_identifier列。

举例:

connection.client_identifier = "pythonuser"
connection.action = "Query Session tracing parameters"
connection.module = "End-to-end Demo"
for row in cursor.execute("""
    SELECT username, client_identifier, module, action
    FROM V$SESSION
    WHERE username = 'SYSTEM'"""):
  print(row)

clientinfo

语法

Connection.clientinfo

说明:

此只写属性设置 v$session 表中client_info列。

举例:

connection.clientinfo = "pythonuser info"

close

语法

Connection.close()

说明:

立即关闭连接,而不是在调用__del__时关闭。从此时起,连接将不可用;如果尝试使用连接执行任何操作,则会引发错误异常。 由连接创建的所有打开的游标和 LOB 都将关闭,并且也不再可用。 在内部,对连接的引用由游标对象、LOB 对象、订阅对象等持有。释放所有这些引用后,连接本身将自动关闭。可以仔细控制对这些相关对象的引用,也可以显式关闭连接,以确保有足够的资源可用。

举例:

connection.close()

commit

语法

Connection.commit()

说明:

提交事务 用例详见Connection.rollback()的例

current_schema

语法

Connection.current_schema

说明:

此读写属性设置会话的当前架构属性。设置此值与执行 SQL 语句“更改会话集CURRENT_SCHEMA”相同。该属性在执行服务器往返行程的下一次调用时设置(并验证)。该值放在随后执行的 SQL 语句中非限定数据库对象之前。

举例:

print(connection.current_schema)

cursor

语法

Connection.cursor()

说明:

创建游标对象

举例:

conn=STPython.Connection('sysdba','szoscar55','localhost:2003/osrdb')
cur=conn.cursor()

dsn

语法

Connection.dsn

说明:

获取连接串(只读)

举例:

connection = STPython.connect(user="SYSDBA", password="szoscar55",
              dsn="localhost:2003/osrdb", threaded = False,
              encoding="UTF-8")
print(connection.dsn)

edition

语法

Connection.edition

说明:

此只读属性获取会话版本

encoding

语法

Connection.encoding

说明:

此只读属性返回 客户端用于常规字符串的字符集的 IANA 字符集名称。

external_name

语法

Connection.external_name

说明:

此读写属性指定连接在记录分布式事务时使用的外部名称。

举例:

connection.external_name = "test_conn"
print(connection.external_name)

gettype

语法

Connection.gettype(name)

说明:

返回给定其名称的类型对象。然后,这可用于创建可绑定到此连接创建的游标的对象。

举例:

cursor = connection.cursor()
cursor.execute("insert into tab(a,b) values(:col1,:col2)",col1="test",col2=2)
print(connection.gettype("col1"))

internal_name

语法

Connection.internal_name

说明:

此读写属性指定连接在记录分布式事务时使用的内部名称。

举例:

connection.internal_name = "test_conn"
print(connection.internal_name)

maxBytesPerCharacter

语法

Connection.maxBytesPerCharacter

说明:

此只读属性返回每个字符可用于客户端字符集的最大字节数。

举例:

print(connection.maxBytesPerCharacter)

module

语法

Connection.module

说明:

此只写属性设置 v$session 表中的模块列

msgproperties

语法

Connection.msgproperties

说明:

返回一个对象,该对象指定高级排队中使用的消息的属性

举例:

connection.msgproperties(payload="The first message")

nencoding

语法

Connection.nencoding

说明:

此只读属性返回神通客户端正在使用的国家/地区字符集的 IANA 字符集名称

ping

语法

Connection.ping()

说明:

Ping 服务器,可用于测试连接是否仍处于活动状态。

rollback

语法

Connection.rollback()

说明:

回滚事务

举例:

import STPython
conn=STPython.Connection('sysdba','szoscar55','localhost:2003/osrdb')
conn.autocommit = 1
cur=conn.cursor()
try:
    # 开启事务
    conn.begin()
    cur.execute("UPDATE TAB1 SET A = 1000,B = 'b2' WHERE A=1;")
    1/0
except:
    # 事务回滚
    conn.rollback()
cur.close()
conn.close()

stmtcachesize

语法

Connection.stmtcachesize

说明:

此读写属性指定语句高速缓存的大小。如果重复执行的语句数量较少,则此值可能会对性能产生重大影响。

tnsentry

语法

Connection.tnsentry

说明:

获取连接串(只读)

username

语法

Connection.username

说明:

获取当前连接用户名(只读)

举例:

connection = STPython.connect(user="SYSDBA", password="szoscar55",
              dsn="localhost:2003/osrdb", threaded = False,
              encoding="UTF-8")
print(connection.username)

输出: SYSDBA