更新语句 PLSQL
Posted
技术标签:
【中文标题】更新语句 PLSQL【英文标题】:Update statement PLSQL 【发布时间】:2020-12-16 14:53:19 【问题描述】:好吧,我正在编写一个程序,其中有一个立即执行。这是我的代码。
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');
我得到的错误是:'缺少 SET 关键字'
【问题讨论】:
【参考方案1】:错误是当您将SET
关键字连接到set_values
和table_name
时,您不会在它们之间留下空格,因此这会将所有这些单词连接在一起。
所以你的代码应该是这样的:
EXECUTE IMMEDIATE 'UPDATE '|| table_name || ' SET ' || set_values|| ' WHERE ' || conditions ;
顺便说一句,考虑在立即执行结束时删除')'
,因为它会导致语句失败,因为没有任何打开的(
。
【讨论】:
现在我得到这个错误:00955.00000 - “名称已被现有对象使用” 如果没有看到所有代码实际上很难知道哪个对象已经存在,但我的猜测是您正在创建的过程 upd_row 的名称已经存在,请在创建时尝试创建或替换如果您想更新或创建该过程。以上是关于更新语句 PLSQL的主要内容,如果未能解决你的问题,请参考以下文章