DB2存储过程的输出为空

时间:2019-02-08 17:29:42

标签: php sql stored-procedures db2

我试图弄清楚为什么存储过程的输出返回null,即使在过程中进行了插入

首先,我的程序参数:

PARAMS:

IN IN_FIRST_NAME,
IN IN_LAST_NAME,
OUT OUT_V_R_ID

这是调用插入的例程,然后我试图将输出变量设置为创建的V_R_ID,即记录的ID

P1 : BEGIN ATOMIC

DECLARE V_H_ID INTEGER DEFAULT 0 ;
DECLARE V_R_ID VARCHAR ( 20 ) ;
DECLARE V_ROW_CHANGE_TIMESTAMP TIMESTAMP ;

SELECT CAST ( NEXT VALUE FOR SCHEMA . H_ID_SEQ AS VARCHAR ( 20 ) )
INTO V_R_ID
FROM SYSIBM . SYSDUMMY1 ;

CALL SCHEMA . INSERT_RECORD ( V_R_ID
, IN_FIRST_NAME
, IN_LAST_NAME
) ;

SET OUT_V_R_ID = V_R_ID ;

END P1 

然后,在PHP中,我以输入名字和姓氏的形式调用该函数,并将$ out2设置为输出变量。转储模具只是打印为空

function createJobTitleToDealerContact($firstName,$lastName){

    $stmt = \DB::connection('odbc')->getPdo()->prepare('CALL SCHEMA.CREATERECORD(?,?,?)'); 

    $stmt->bindParam(1, $firstName, PDO::PARAM_STR);
    $stmt->bindParam(2, $lastName, PDO::PARAM_STR);
    $stmt->bindParam(3, $out2, PDO::PARAM_STR, 20);

    $stmt->execute();
    dd($out2);
}

我只是在PHP中错误地调用了它吗?

0 个答案:

没有答案