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"
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)
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()
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)
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)
msgproperties¶
语法¶
Connection.msgproperties
说明:¶
返回一个对象,该对象指定高级排队中使用的消息的属性
举例:¶
connection.msgproperties(payload="The first message")
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()