>我有以下内容:
一个日期,但作为字符串(作为参数发送),称为$fecha
,其值为
2016-03-21 10:59:00
和甲骨文 SP:
$proc = oci_parse($this->db->conn_id, "BEGIN
BD_SGMR.mr_grabar_marca_carro(
:p_fecha_marca
:estado,
:mensaje
);
END;");
oci_bind_by_name($proc,"p_fecha_marca",$fecha);
oci_bind_by_name($proc,"estado",$estado,-1,OCI_B_INT );
oci_bind_by_name($proc,"mensaje",$mensaje,200,SQLT_CHR );
oci_execute($proc);
执行该过程时,我有下一个错误:
遇到 PHP 错误严重性:警告
消息:oci_execute():ORA-01830:la Máscara de formato de fecha termina antes de convertir toda la cadena de entrada ORA-06512: en línea 2
文件名: 马卡卡罗/MarcarCarro_model.php
行号:172
我还没有找到解决方案。
感谢您的帮助
不同的格式(Oracle 预期的格式取决于客户端的配置)。您可以使用临时变量显式指定要传递的格式,如下所示。
declare
input_date date;
BEGIN
input_date:=to_datE(:p_fecha_marca,'DD/MM/YYYY hh24:mi:ss');
BD_SGMR.mr_grabar_marca_carro(
input_date,
:estado,
:mensaje
);
END;
要更改 oracle 期望的格式,您可以发出以下语句:
ALTER SESSION SET NLS_DATE_FORMAT = 'DD/MM/YYYY hh24:mi:ss'