删除输入变量中的 & 后,我试图将值保存在表中。当我在 dbms_ouput.put_line 中打印变量的值时,我得到了输出。但是当我将变量的值保存到数据库时,什么都没有更新。下面的代码是一个简化版本。在 oracle 11g 上使用 toad 10.6
FUNCTION UPDATE_ADDRESS(ADDRESS VARCHAR2,
P_USER VARCHAR2)
RETURN VARCHAR2 IS
RetVal VARCHAR2(32767);
V_ADDRESS VARCHAR2(32767);
BEGIN
DBMS_OUTPUT.put_line('ADDRESS ::=' || ADDRESS); --this prints
V_ADDRESS := REPLACE(ADDRESS, '&', '');
DBMS_OUTPUT.put_line('V_ADDRESS ::=' || V_ADDRESS); --so does this
UPDATE ADDRESS_TABLE
SET ADDRESS = SUBSTR(V_ADDRESS, 1, 255) --this column does not get updated
WHERE USER = P_USER;
COMMIT;
END;
/