尝试在DJANGO中执行Oracle存储过程时出错

时间:2014-12-19 22:07:32

标签: django stored-procedures django-templates django-views

您好我正在尝试创建一个Django应用程序,我必须执行一些存储过程。 我的数据库是一个oracle 11g。 我需要将日期作为参数传递给存储过程,我得到一些错误,将字符串日期从模板转换为django视图:

型号:

class HOMEDAC():
      def concidac(self, pv_fecha):
          cursor = connection.cursor()
          spdac = cursor.callproc("django_sp.home_dac",(pv_fecha))
          cursor.close()
          return spdac

查看

def ProcedureView(request):
    form = DACForm(request.POST or None)
    if request.method == 'POST':
       if form.is_valid():
          f = request.POST.get('fecha')
          pfec = datetime.datetime.strptime(f,'%m/%d/%Y').strftime('%m/%d/%Y')
          carga = HOMEDAC()
          sp = carga.concidac(pfec)
          return HttpResponseRedirect('/home/')
    return render_to_response('dac.html',{'form':form})

HTML模板:

<head>
     <script>
     $(document).ready(function() {
       $('.datepicker').datepicker();
     });
     </script>

  </head>
<body >

{% load crispy_forms_tags %}

{% block content %}
<div class="container">
   <div class="col-sm-4">
    <form method='POST' role="form">{% csrf_token %}
      <div class="form-group">
        {% crispy form %}
      </div>
    </form>
   </div>
</div>

{% endblock %}
</body>

形式:

class DACForm(forms.Form):
      fecha = forms.DateField(widget=DateInput(),)
      def __init__(self, *args, **kwargs):
          super(DACForm, self).__init__(*args, **kwargs)
          self.helper = FormHelper()
          self.helper.form_method = 'post'
          self.helper.add_input(Submit('submit', 'Submit'))

我收到错误:

ORA-06550:第1行第7列:

PLS-00306:调用'HOME_DAC'时参数的数量或类型错误

ORA-06550:第1行第7列:

PL / SQL:语句被忽略

我知道当你没有传递参数或传递错误类型的参数时会触发错误。 我尝试传递参数而不转换为日期,我得到同样的错误。

我签入了firebug,模板将两个参数传递给视图:

  

参数:fecha 12/15/2014提交提交

我不知道这是否正确或这是错误。

我可以在没有任何不需要参数的问题存储过程的情况下执行。 我的问题在于需要以日期为参数的程序。

任何建议。

先谢谢

0 个答案:

没有答案