【发布时间】:2014-12-17 22:45:04
【问题描述】:
我一直在网上寻找答案,但我没有找到答案,所以我在这里。
我有一个 PL/SQL 函数返回一条记录:
create or replace package pck_test is
TYPE coord_geo is record (coord_x float, coord_y float);
function ArrondiGeo(coord_x float, coord_y float) return coord_geo;
end pck_test;
/
create or replace package body pck_test is
FUNCTION ArrondiGeo(coord_x FLOAT,coord_y FLOAT) RETURN coord_geo
IS
temp_x FLOAT(24);
temp_y FLOAT(24);
rec_coord coord_geo;
BEGIN
temp_x := ROUND(coord_x,4)/5;
temp_y := ROUND(coord_y,4)/5;
temp_x := ROUND((temp_x*5),3);
temp_y := ROUND((temp_y*5),3);
rec_coord.coord_x := temp_x;
rec_coord.coord_y := temp_y;
RETURN rec_coord;
END;
END pck_test;
/
我想在 PHP 函数中使用它,但我真的不知道如何......
我试过了,但它不起作用:
public function get_tronc($x,$y)
{
$q = oci_parse($this->_db, 'begin :r := pck_test.ArrondiGeo(:x,:y); end;');
oci_bind_by_name($q, ':x', $x);
oci_bind_by_name($q, ':y', $y);
oci_bind_by_name($q, ':r', $r);
oci_execute($q);
return $r;
}
错误是:
Warning: oci_execute(): ORA-06550: line 1, column 13: PLS-00382: expression is of wrong type ORA-06550: line 1, column 7: PL/SQL: Statement ignored in /users/info/il3/jboeglin/Bureau/BDD/site/models/userManager.php on line 77
所以这是一个自我解释的错误,但我仍然不知道如何使用它。
谢谢。
【问题讨论】: