thi*_*ieu 7 sql oracle plsql oracle-sqldeveloper
我创建了一个非常简单的表:
CREATE TABLE TMP ("ID" VARCHAR2(20 BYTE));
Run Code Online (Sandbox Code Playgroud)
然后尝试这样做:
DECLARE
whatever varchar2(20) := :bananas;
BEGIN
MERGE INTO tmp t USING
(SELECT whatever AS this_id FROM DUAL) d
ON (t.id = d.this_id)
WHEN NOT MATCHED THEN
INSERT (id) VALUES (d.this_id);
END;
Run Code Online (Sandbox Code Playgroud)
然后输入绑定

并得到此错误:
Error starting at line : 1 in command -
DECLARE
whatever varchar2(20) := :bananas;
BEGIN
MERGE INTO tmp2 t USING
(SELECT whatever AS this_id FROM DUAL) d
ON (t.id = d.this_id)
WHEN NOT MATCHED THEN
INSERT (id) VALUES (d.this_id);
END;
Error report -
Missing defines
Run Code Online (Sandbox Code Playgroud)
我没有运气弄清楚它想要什么.如果我将':bananas'替换为'a'之类的值,它会起作用,但是当我使用变量并绑定值时则不行.有人知道我的查询有什么问题吗?谢谢.
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
"CORE 11.2.0.4.0 Production"
TNS for IBM/AIX RISC System/6000: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
Run Code Online (Sandbox Code Playgroud)
编辑:我刚刚注意到错误并没有阻止数据正确合并......但错误仍然存在
| 归档时间: |
|
| 查看次数: |
9820 次 |
| 最近记录: |