我正在尝试实现一个更新我的表的存储过程(超过10k行)
但只有一定数量的行rownum
现行程序:
create or replace PROCEDURE P_UPDATETOANON AS
BEGIN
UPDATE PERSONENVERKEHR_VERTRIEBSSYS15.HIST_TEST
SET TS_RESPONSIBLE = 'test'
WHERE TS_RESPONSIBLE != 'test'
AND length(TS_RESPONSIBLE) > 3;
END P_UPDATETOANON;
Error(3,10): PL/SQL: SQL Statement ignored
Error(3,48): PL/SQL: ORA-01031: insufficient privileges
如何实现仅更新某个数据记录?
答案 0 :(得分:1)
如果您只需要更新给定数量的行,而没有任何逻辑来决定哪些行,您可能只需要:
UPDATE PERSONENVERKEHR_VERTRIEBSSYS15.HIST_TEST
SET TS_RESPONSIBLE = 'test'
WHERE TS_RESPONSIBLE != 'test'
AND length(TS_RESPONSIBLE) > 3
AND rownum < 100 /* for example */
甚至您的用户似乎无权更新表格;你首先需要
grant update on PERSONENVERKEHR_VERTRIEBSSYS15.HIST_TEST to MQCDBA
由表的所有者或其他授权用户提供。