错误:ORA-01008:并非所有变量都绑定



我有几个小时的错误,无法确定问题所在。错误:ORA-01008:并非所有变量都绑定

控制器

async bipagem(req: Request, res: Response) {
try {
let credentials = super.openToken(req)
let { p_fil_filial, p_set_cdgo, p_mini_fab, p_codigo_barra } = req.query
let info = await this.rep.bipagem(
p_fil_filial as string,
p_set_cdgo as string,
p_mini_fab as string,
p_codigo_barra as string,
credentials as string
)
res.json(info)
} catch (error) {
catchErr(res, error)
}
}
}

存储库

public async bipagem(
p_fil_filial: string,
p_set_cdgo: string,
p_mini_fab: string,
p_codigo_barra: string,
userPool: string
) {
let conn
try {
conn = await connection(userPool)
const ret = await conn.execute(
`DECLARE
c_result SYS_REFCURSOR;      
BEGIN
-- Call the function
:result := brio.pck_fab0024.bipagem(p_fil_filial => :p_fil_filial,
p_set_cdgo => :p_set_cdgo,
p_mini_fab => :p_mini_fab,
p_codigo_barra => :p_codigo_barra,
p_msg => :p_msg);
DBMS_SQL.RETURN_RESULT(c_result);
END;`,
{
p_fil_filial,
p_set_cdgo,
p_mini_fab,
p_codigo_barra,
p_msg: { type: oracledb.STRING, dir: oracledb.BIND_OUT }
}
)
return { ...(ret.outBinds as object), conteudo: ret.implicitResults[0] }
} catch (e) {
console.log('Erro na fab0024: ', e.message)
return {
p_fil_filial,
p_set_cdgo,
p_codigo_barra,
p_msg: '',
conteudo: []
}
} finally {
if (conn && typeof conn !== 'string') conn.close()
}
}
}

我尝试包含p_msg参数,得到了以下返回错误TS2339:类型"unknown"上不存在属性"bipagem"。

您的PL/SQL块有六个绑定参数,但您只传递了五个值。因此,您会得到一个错误,说其中一个局部变量没有绑定,这并不奇怪。

我认为您忽略了以下行中的:result也是绑定参数的事实:

:result := brio.pck_fab0024.bipagem(p_fil_filial => :p_fil_filial,

我怀疑您打算将结果分配给局部变量c_result(您目前没有为其分配任何值(,而不是一个额外的绑定参数:

c_result := brio.pck_fab0024.bipagem(p_fil_filial => :p_fil_filial,

最新更新