ORA-01008未绑定所有变量及TS2339属性不存在问题求助
问题修复方案
ORA-01008: not all variables bound 报错修复
问题原因
- PL/SQL 块中额外定义了未绑定的
:result占位符,绑定参数列表中没有对应声明,导致Oracle无法匹配所有变量 - 定义的
c_result游标变量未被赋值就传入DBMS_SQL.RETURN_RESULT,逻辑存在错误
修复代码
直接调整Repository层中执行SQL的部分,删除多余的:result占位符,将函数返回值直接赋值给已声明的c_result变量即可:
const ret = await conn.execute( `DECLARE c_result SYS_REFCURSOR; BEGIN -- Call the function c_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 } } )
TS2339: Property 'bipagem' does not exist on type 'unknown' 报错修复
问题原因
TypeScript 无法识别this.rep的类型,默认将其判定为unknown类型,因此不允许调用该类型上未声明的bipagem方法。
修复方法
- 给Controller类中的
rep属性显式声明对应的Repository类类型,示例如下:
// 替换为你实际的Repository类名 private rep: BipagemRepository
- 如果是依赖注入场景,检查注入实例的类型定义是否完整,避免类型丢失
- 临时调试可以使用类型断言绕过校验(不推荐生产环境使用):
let info = await (this.rep as any).bipagem( // 原有参数保持不变 )
内容的提问来源于stack exchange,提问作者Joyce
相关产品推荐
相关产品推荐

