Oracle无效的主机绑定变量,plsql - Z-ORA-01745:无效的主机/绑定变量名称(PLSQL) - SO中文参考 - www.soinside.com...

Z-ORA-01745:无效的主机/绑定变量名称(PLSQL)

问题描述 投票:1回答:1

我对plsql中的动态变量有了新的认识。我在EXECUTE IMMEDIATE语句中收到错误“无效的主机/绑定变量名称”。提前致谢。

CREATE OR REPLACE PROCEDURE MY_CLASS_CONFIG_DML (pBuCode VARCHAR2,

pMyPKId VARCHAR2,

pMyName VARCHAR2,

pMyId VARCHAR2,

pRemarks VARCHAR2,

pUserId VARCHAR2)

AS

v_table VARCHAR2 (50);

v_lastdate DATE;

--bindable var.

v_pkey VARCHAR2 (12) := pMyPKId;

v_myname VARCHAR2 (30) := pMyName;

v_bucode VARCHAR2 (4) := pBuCode;

v_myid VARCHAR2 (12) := pMyId;

v_remarks VARCHAR2 (50) := pRemarks;

v_lastid VARCHAR2 (8) := pUserId;

BEGIN

v_lastdate := SYSDATE;

v_table := v_bucode || '_WORKSHEET_CONFIG';

--Error happens on this part

EXECUTE IMMEDIATE

'insert into '

|| v_table

|| '(pk_id,my_name,my_id,remarks,last_user,last_date)

values(:pkey,:myname,:myid,:remarks,:user,:lastdate)'

USING v_pkey,

v_myname,

v_myid,

v_remarks,

v_lastid,

v_lastdate;

--end comment

COMMIT;

RETURN;

EXCEPTION

WHEN OTHERS

THEN

ROLLBACK;

END MY_CLASS_CONFIG_DML;

plsql

dynamic-sql

1个回答

2

投票

用另一个关键字替换:user::myuser或:lastid。冒号应该可以使用保留关键字“user”,但这是我看到的唯一问题。

热门问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值