You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 20:54:03