如何使用ODBC在PHP中调用oracle存储过程



我正试图使用ODBC在PHP网站上调用Oracle存储过程。我有一张名为"雇员"的桌子。我想在网站上查看员工总数。下面我将描述从sql正常运行的函数、过程和pl/sql。

功能:

CREATE OR REPLACE FUNCTION func_totalEmployees 
RETURN number IS
t_emp number;
BEGIN
        select count(*) INTO t_emp from employees;
    RETURN t_emp;
END;

此函数将统计员工表中的所有条目。然后将值存储在

t_emp

程序:

CREATE OR REPLACE PROCEDURE pro_totalEmployees(totalEmployees OUT number) 
IS
BEGIN
    totalEmployees := func_totalEmployees;
END;

此过程将运行我们的函数,并使用totalEmployees变量输出一个值。

PL/SQL:

DECLARE
see_totalEmployees number;
BEGIN
    pro_totalEmployees(see_totalEmployees);
        dbms_output.put_line('Total Employees you have: ' || see_totalEmployees);
END;

现在是执行部分。这只是一个简单的pl/sql查询,它使用变量see_totalEmployees从我们的过程中输出员工总数

就是这样!

因此,在sql中,我得到了输出:您拥有的员工总数:107

现在我的问题:

如何使用ODBC将这个107存储到PHP变量中?

请帮忙。提前感谢

你可以试试这样的东西,

    <?php
    $Tot_emp = 0;
    // Create connection to db
    $conn = odbc_connect('db_name','user_name','password') or die;
    // Call your procedure
    $stmt = $conn->prepare("CALL sp_returns_string(?)");
    // Bind the output parameter
    $stmt->bindParam(1, $Tot_emp, PDO::PARAM_STR, 4000);    
    // call the stored procedure
    $stmt->execute();        
    // $message is now populated with the output value
    print "$Tot_empn";
    ?>

最新更新