oracle缺失关键字原因,pl/sql ora-00905:设置值缺少关键字

我搜索了这个错误,但是由于它非常模糊,我找不到类似的东西来理解问题在哪里。此代码实际上是针对Oracle Apex应用程序的。我实际上有绑定变量而不是数字1和84(我确认它们在我的表中是正确的值),但仍然有相同的错误。

在声明变量之后,它选择一个字符串作为另一个表中一列的名称,并将其放入V_列。

然后我动态地构建一个查询来获取这个列的值,并将其放入v_值中,最后返回一个值(然后在表单文本字段中显示)。不幸的是,它返回ORA00905。

当我尝试使用已知值单独运行SQL命令时,它会运行。所以我认为动态SQL中一定有语法问题。谢谢你的帮助。

DECLARE

V_COLUMN VARCHAR2(50) := 'UNKNOWN';

V_VALUE VARCHAR2(50) := 0;

V_SQL VARCHAR2(500);

BEGIN

SELECT SUB_CAT_ABBREV INTO V_COLUMN FROM SUB_CATEGORY WHERE SUB_CATEGORY_ID = 1;

V_SQL := 'SELECT ' || V_COLUMN || ' INTO V_VALUE FROM PLANNED_EFFORTS WHERE PLAN_ID = 84';

EXECUTE IMMEDIATE V_SQL;

RETURN V_VALUE;

EXCEPTION

WHEN no_data_found THEN

RETURN 'No Data Found Error';

WHEN too_many_rows then

RETURN 'Too many rows';

WHEN OTHERS THEN

RETURN 'Other Error';

END;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值