【发布时间】:2016-11-02 01:55:54
【问题描述】:
是否可以在 Django 视图中获取游标数据类型的描述?
问题是当我执行原始 SQL 时,我可以通过调用 cursor().description 来获取描述,但是当我执行 cursor().callfunc('oracleTestFunc',cx_Oracle.CURSOR,)
(oracleTestFunc 返回光标)
我无法获取字段描述。所以问题是获得description。我该如何实现呢?
更新
我的预言机函数是
create or replace package body test_cl is
function ret_proc_run return sys_refcursor is
retval sys_refcursor;
begin
open retval for
select id_proc,inst_id,run_now from proc_run;
return retval;
end;
end test_cl;
在 Django 视图中我这样称呼它
cursor = connection.cursor()
results=cursor.callfunc('test_cl.ret_proc_run',cx_Oracle.CURSOR,)
所以我想要做的是访问由 oracle 函数返回的各个字段(这些是id_proc,inst_id,run_now)稍后在模板中使用。
我认为cursor.description 方法是可能的,但在进一步阅读文档后我发现这是不可能的,因为它会为游标数据类型返回none。
【问题讨论】:
-
你是问如何从函数返回的光标中获取描述?
-
我想在光标上调用描述函数。当我调用光标时,我没有得到任何结果,但是当我在视图中执行原始 sql 查询时,我可以调用它的描述方法。
-
Django 稍微包装了一些东西。您可能想直接尝试使用 cx_Oracle 来查看您想要做的事情在 Django 之外是否可以正常工作。您可以从 Django 中获取原始 cx_Oracle 连接。如果您需要,我可以追踪代码。告诉我。
-
@AnthonyTuinga 这个问题的来源是我想将光标从 oracle 转到 django 并访问视图中的单个光标字段。
-
你能再解释一下吗?我不确定你想说什么。首先尝试在outside Django 做你想做的事情是一个好主意——这将消除你在使用Django 框架时遇到的任何问题,它确实有点包装(这通常是一种方便)。如果这不是您的选择,请在您的问题中多解释一下您的情况!谢谢。
标签: django oracle django-views cx-oracle