Oracle 无法使用update语句中的bind变量更新行
我使用的是Oracle SQL Developer 4.0.0.13 查询:Oracle 无法使用update语句中的bind变量更新行,oracle,oracle-sqldeveloper,Oracle,Oracle Sqldeveloper,我使用的是Oracle SQL Developer 4.0.0.13 查询: UPDATE employes SET emptime = systimestamp WHERE emp_id = 123 AND emp_device = :abc; UPDATE employes SET emptime = systimestamp WHERE emp_id = 123 AND emp_device = trim(:abc); 字段定义:emp_设
UPDATE employes
SET emptime = systimestamp
WHERE emp_id = 123
AND emp_device = :abc;
UPDATE employes
SET emptime = systimestamp
WHERE emp_id = 123
AND emp_device = trim(:abc);
字段定义:emp_设备字符20字节
值为:999980000880999此值存在于表中
当我在SQLDeveloper中运行上述查询时,它要求我给出bind变量的值,我将其粘贴到文本框中,它返回0行更新
但是,当我在更新查询中删除bind变量并指定实际值时,它会更新列值。下面是查询
查询:
UPDATE employes
SET emptime = systimestamp
WHERE emp_id = 123
AND emp_device = 99998000000008880999 ;
--工作
此外,当我在bind variable文本框中添加一些尾随空格并修剪emp_device列时,它会更新该列。下面是查询
查询:
UPDATE employes
SET emptime = systimestamp
WHERE emp_id = 123
AND emp_device = :abc;
UPDATE employes
SET emptime = systimestamp
WHERE emp_id = 123
AND emp_device = trim(:abc);
-作品-:abc值为“99998000008880999”
我不知道它出了什么问题。有人可以看一下并提出解决方案。在对话框中输入参数“9999800000088880999”并使用撇号字符。您的emp\U设备数据类型使用字符类型。请注意,CHAR type总是将生成的字符串填充为固定宽度
如果需要字符串或数字,则应使用VARCHAR2作为数据类型,因为示例纯粹由数值组成 尽力。。还是不行。结果的脚本输出:已更新0行:ABC-------“9999880000008080999”请共享您的创建表脚本。什么类型的:ABC?我没有定义任何名为:ABC的变量,SQL开发人员也没有要求我…假设是SQLPlus。。我在SQL Developer中尝试过这个,但仍然不起作用。-->可变abc-char21;执行:abc:=89148001700748180966;我将列更改为varchar2..结果仍然相同。。。尝试使用数字…仍然相同…您能否与emp_device=999800000088880999共享您的表描述和行