您好我正在尝试创建一个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提交提交
我不知道这是否正确或这是错误。
我可以在没有任何不需要参数的问题存储过程的情况下执行。 我的问题在于需要以日期为参数的程序。
任何建议。
先谢谢