setinputtype()
功能
此方法可在调用 execute() 、executemany()、callporc()、callfunc() 之前使用,用于预定义数据库操作参数的数据类型。用户可视需求情况选择使用该方法。
参数
预定义的参数数据类型元组对象。
返回值
无。
使用说明
- 此方法是为了设置下面即将执行的带参数的 SQL 语句的各参数类型。
- 用户可不使用此方法,但是若使用了此方法,必须将所有的参数类型全部设置。
- 只有在存储过程或者存储函数内的参数中有 SYS_REFCURSOR 类型,且存储过程和存储函数有结果集产生的情况下,才必须使用此方式设置参数类型(Xugu_C_REFCUR)。
- 此方法设置后,会一直影响后面 SQL 函数的执行,直到用户调用 cleartype 方法清除本次设置。
- 若绑定存储函数,需要在最后加入存储函数返回的参数类型。
- 此函数仅仅对 execproc 和 execfunc 函数起作用,执行普通 SQL 语句无须使用此函数设置参数数据类型。
代码示例
import xgcondb
conn = xgcondb.connect(host="127.0.0.1", port="5138", database="SYSTEM", user="SYSDBA", password="SYSDBA")
cur = conn.cursor()
#-----设置存储过程的参数类型(三个参数)----------
cur.setinputtype((xgcondb.Xugu_C_INTEGER,xgcondb.Xugu_C_CHAR,xgcondb.Xugu_C_REFCUR))
print(cur.execproc("test_proc",(32,"xugu","ser_cursor")))
print(cur.fetchall()) //打印存储过程产生的结果集数据
cur.cleartype() //清除上面设置的参数类型
#-----设置存储函数的参数类型(三个参数)----------
cur.setinputtype((xgcondb.Xugu_C_INTEGER,xgcondb.Xugu_C_CHAR,xgcondb.Xugu_C_REFCUR,xgcondb.Xugu_C_CHAR))#最后一个参数是函数返回值的预定义参数类型
print(cur.execfunc("test_func",(32,"xugu","ser_cursor")))
print(cur.fetchall()) //打印存储过程产生的结果集数据
cur.clearsize() //清除上面设置的参数类型
cur.close()
conn.close()