oci_bind_by_name中的十进制值参数,用于调用Oracle存储过程

时间:2017-12-05 08:42:31

标签: php oracle oci

阅读

php oci_bind_by_name float to numeric

我不能在$ p6变量中使用十进制值,如:

$lmd  = "CALL ajoute_vol(:p1,:p2,:p3,:p4,TO_DATE(:p5,'DD/MM/YYYY HH24:MI'),:p6,:p7)"; 
...
$pduree = round(1.2/24,2); // 1h12 min 
...
print "</p>duree : ". $pduree;
oci_bind_by_name($etat, ':p6', $pduree,-1, SQLT_NUM);
...
print "</p>duree : ". $pduree;
oci_execute ($etat, OCI_NO_AUTO_COMMIT);   // COMMIT est dans la procédure
...

结果是1 / $ pduree似乎设置为0,但在调用中这不是零传递。

duree : 0.05
duree : 0

如果我在调用中将:p6设置为0可以正常工作(但我希望传递小数值)。

$lmd  = "CALL ajoute_vol(:p1,:p2,:p3,:p4,TO_DATE(:p5,'DD/MM/YYYY HH24:MI'),0,:p7)";

提前致谢

2 个答案:

答案 0 :(得分:0)

使用

id === 1

答案 1 :(得分:0)

相同问题:警告:oci_execute():ORA-01722 解决方案是在准备语句中包含微积分:

"CALL ajoute_vol(:p1,:p2,:p3,:p4,TO_DATE(:p5,'DD/MM/YYYY HH24:MI'), ROUND((:p6+:p7/100)/24,2), :p8)"