【发布时间】:2016-02-22 11:18:20
【问题描述】:
我有一个具有 IN OUT 游标参数的 Oracle 存储过程。
SP_GET_RATES
(
M_CHECKIN_DATE VARCHAR2,
M_CHECKOUT_DATE VARCHAR2,
M_CURRENCY VARCHAR2,
M_RESULT IN OUT SASIAPLSQLTAB.SEARCH_RESULT_CURSOR
)
在 Yii2 中我尝试使用这种方法来获取程序结果。
$params = array(
':1' => '20-Nov-2015',
':2' => '21-Nov-2015',
':3' => 'USD'
);
$stmt = $connection->createCommand("CALL SP_GET_RATES(:1,:2,:3,:4)", $params);
$stmt->bindParam(':4', $return_cursor,\PDO::PARAM_STR|\PDO::PARAM_INPUT_OUTPUT,4000);
$stmt->queryAll();
但是当我执行这个时,我得到了错误。
SQLSTATE[HY000]: General error: 6553 OCIStmtExecute: ORA-06553: PLS-306: wrong number or types of arguments in call to 'SP_GET_RATES'
(ext\pdo_oci\oci_statement.c:148)
The SQL being executed was: CALL SP_GET_RATES('20-Nov-2015','21-Nov-2015','USD',NULL)
我尝试了不同的方法来绑定值,但我仍然无法弄清楚如何在 Yii2 中绑定 IN OUT 游标参数。并且我认为 Yii2 使用 PDO OCI 连接 oracle 数据库。
Yii 2.0.6 PHP 5.5.24 甲骨文11g
【问题讨论】:
标签: php oracle stored-procedures pdo yii