python - 有没有办法获得存储过程签名?
问题描述
假设我们有一个 Oracle 过程:
procedure proc(i_value in number, o_value out varchar2) is
begin
null;
end proc;
传递给函数的输出值callproc()
应由 Oracle 类型之一(cx_Oracle.NUMBER
等cx_Oracle.STRING
)启动。
在我们的例子中,一个名为 named 的变量将从过程out_value
中接收o_value
,并且在被传递之前应该像这样定义:
out_value = cur.var(cx_Oracle.STRING)
如果我们知道程序的签名就可以了。但如果不是呢?
有没有办法在调用过程之前获取过程的输出值类型?
解决方案
您将需要查询 USER_PROCEDURES 和 USER_ARGUMENTS 等“数据字典”视图。cx_Oracle 中没有内置的“描述 PL/SQL”API。
推荐阅读
- python - 神经网络的 NP 数组输入导致形状错误
- azure-devops - 有没有办法识别在 Azure Devops CI 构建中签入的 TFS 分支?
- macos - IntelliJ IDEA 无法移动多个 Kotlin 类
- python - 将 Excel 工作簿拆分为多个 Excel 文件
- mysql - MySQL Workbench 数据导出选择表
- c# - 将当前进程窗口移到最前面
- elasticsearch - 任何 java.lang.NullPointerException 时的 Mockito
- indexing - Kentico 9 中的“重建”智能搜索索引会导致站点中断吗?
- c# - 从 WCF 迁移到 .NET Core、WebGet、WebInvoke
- c - 是否可以创建一个通用函数指针数组?