Skip to content

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()