callfunc()
功能
该函数是存储函数的执行函数,支持存储函数带参数(in、out、inout)、存储函数不带参数、存储函数返回结果集。并输出执行之后的相关参数的值和函数返回值,与 callproc 函数使用方式相似。
参数
- 存储函数名。
- 若存储函数需要传递参数,第二个参数应该为参数元组对象。
- 若存储函数需要传递参数,第三个参数应该为参数类型元组对象。
返回值
参数列表对象。
使用说明
- 若存储函数无参数,则在函数内传入存储函数名即可。
- 若存储函数存在参数,需要传入两组参数:第一组为参数数据,第二组为参数的输入输出类型(in、out、inout),两组参数都以元组或列表方式传入,参考 4.2 节。
- 若存储函数执行后会产生结果集(存储函数内有 select 语句),则需要用户调用 setinputtype 函数提前指定参数的数据类型(Xugu_C_REFCUR),参数数据类型参考 4.3 节,setinputtype 函数下面会详细解释用法用例,详细示例参考第六章。
- 若使用 setinputtype 函数提前指定参数的数据类型,需要在最后指定存储函数返回的数据类型,否则默认为字符串返回。
- 函数执行之后会将传入的参数和函数返回值统一输出。
代码示例
## 执行无参数存储函数
print(cur.callfunc("test_no_parameter_func"))
## 执行有参数存储函数
print(cur.callfunc("test_in_func",(20,),(1,)))
print(cur.callfunc("test_out_func",("xugu",),(2,)))
print(cur.callfunc("test_inout_func",(20,'xugu'),(3,2)))