我试图弄清楚为什么存储过程的输出返回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中错误地调用了它吗?