我创建了一个非常简单的表:
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); …Run Code Online (Sandbox Code Playgroud)