我正在写一个过程,里面有一个execute immediate。这是我的代码。
PROCEDURE upd_row(
table_name VARCHAR2,
set_values VARCHAR2,
conditions VARCHAR2 := NULL)IS
BEGIN
EXECUTE IMMEDIATE 'UPDATE '|| table_name || 'SET' || set_values|| ' WHERE ' || conditions ||')';
END;如你所见,我有3个参数。这是我如何调用它的代码。
table_pkg.upd_row('my_contacts','name=''Nancy Greenberg''','id=2'); 我得到的错误是:'missing SET keyword‘
发布于 2020-12-16 23:09:44
错误在于,当您将SET关键字连接到set_values和table_name时,您没有在其间留出空格,因此这会将所有这些单词连接在一起。
所以你的代码应该是这样的:
EXECUTE IMMEDIATE 'UPDATE '|| table_name || ' SET ' || set_values|| ' WHERE ' || conditions ;顺便说一句,考虑在execute immediate的末尾删除')',因为它会导致语句失败,因为没有任何打开的(。
https://stackoverflow.com/questions/65325659
复制相似问题