相关疑难解决方法(0)

Oracle:将行类型数据插入另一个表

我有一个名为event的表 ,并创建了另一个全局临时表tmp_event,其中包含与事件相同的列和定义.是否可以使用此方法将事件中的记录插入tmp_event?

DECLARE
   v_record event%rowtype;
BEGIN 
   Insert into tmp_event values v_record;
END;
Run Code Online (Sandbox Code Playgroud)

事件表中有太多列,我想尝试这个,因为我不想列出所有列.

忘了提一下:我会在触发器中使用它,这个v_record可以作为对象:在EVENT表上插入之后是新的吗?

oracle plsql insert rowtype

7
推荐指数
1
解决办法
5万
查看次数

我可以复制:OLD和:Oracle存储过程中的新伪记录吗?

我有一个AFTER INSERT OR UPDATE OR DELETE,我正在写存储发生在某个表中的每个记录修改的触发,通过复制INSERTUPDATE :NEW值成镜表,并DELETE:OLD值.

我可以通过有条件地将:NEW或者:OLD记录传递给一个程序然后插入我的历史表中来大大地解决我的代码.不幸的是,我似乎找不到通过整个:OLD:NEW记录的方法.

我是否遗漏了某些内容,或者在调用插入过程时是否无法避免枚举每个列:NEW:OLD列?

我想做以下事情:

DECLARE
  PROCEDURE LOCAL_INSERT(historyRecord in ACCT.ACCOUNTS%ROWTYPE) IS
  BEGIN
    INSERT INTO ACCT.ACCOUNTS_HISTORY (ID, NAME, DESCRIPTION, DATE) VALUES (historyRecord.ID, historyRecord.NAME, historyRecord.DESCRIPTION, SYSDATE);
  END;
BEGIN
  IF INSERTING OR UPDATING THEN
    LOCAL_INSERT(:NEW);
  ELSE --DELETING
    LOCAL_INSERT(:OLD);
  END IF;
END;
Run Code Online (Sandbox Code Playgroud)

但我坚持这样做:

DECLARE
  PROCEDURE LOCAL_INSERT(id in ACCT.ACCOUNTS.ID%TYPE,
                         name in ACCT.ACCOUNTS.NAME%TYPE,
                         description in ACCT.ACCOUNTS.DESCRIPTION%TYPE) IS
  BEGIN
    INSERT …
Run Code Online (Sandbox Code Playgroud)

oracle triggers plsql stored-procedures

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

oracle ×2

plsql ×2

insert ×1

rowtype ×1

stored-procedures ×1

triggers ×1