我正试图使用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";
?>