我需要以大写形式插入所有数据。我正在使用 Oracle 数据库,并且我编写了一个可以完成这项工作的触发器。问题是我不知道 :NEW 是否可以被覆盖。
这是我的代码。
CREATE OR REPLACE TRIGGER my_trigger
BEFORE INSERT OR UPDATE ON MY_TABLE
FOR EACH ROW
DECLARE
CURSOR fields IS
SELECT COLUMN_NAME FROM user_tab_columns WHERE table_name='MY_TABLE';
field user_tab_columns%ROWTYPE;
BEGIN
FOR field IN fields LOOP
DECLARE
theField VARCHAR2(100) := field.COLUMN_NAME;
newValue NVARCHAR2(1000) := :NEW."MY_FIELD";
BEGIN
:NEW."MY_FIELD" := UPPER(nValor);
END;
END LOOP;
END;
/
这适用于“MY_FIELD”字段,但我需要使用我的变量“theField”。这样我认为表中的所有字段都可以替换。
我希望有人可以帮助我,或者建议我另一种方法来做到这一点。
谢谢你。