×

oracle insert or update

oracle insert or update(oracle中insert如何带条件添加数据)

admin admin 发表于2023-11-03 12:32:45 浏览32 评论0

抢沙发发表评论

本文目录

oracle中insert如何带条件添加数据

如果 数据不存在,那么执行插入的操作。数据已经存在, 那么就不插入(可能是只做更新处理, 也可能什么事情都不干)下面是一个例子代码:--源表CREATETABLEtest_from(idINT,valVARCHAR(20));--目标表CREATETABLEtest_to(idINT,valVARCHAR(20));--插入源表INSERTINTOtest_fromVALUES(1,’A’);INSERTINTOtest_fromVALUES(2,’B’);--合并源表到目标表MERGEINTOtest_toUSINGtest_fromON(test_to.id=test_from.id)--条件是id相同WHENMATCHEDTHENUPDATESETtest_to.val=test_from.val--匹配的时候,更新WHENNOTMATCHEDTHENINSERTVALUES(test_from.id,test_from.val)--源表有,目标表没有,插入--第一次检查目标表数据.SQL》SELECT*FROMtest_to;IDVAL------------------------------1A2B--更新源表UPDATEtest_fromSETval=’A2’WHEREid=1;--删除源表DELETEFROMtest_fromWHEREid=2;--插入源表INSERTINTOtest_fromVALUES(3,’C’);--合并源表到目标表MERGEINTOtest_toUSINGtest_fromON(test_to.id=test_from.id)--条件是id相同WHENMATCHEDTHENUPDATESETtest_to.val=test_from.val--匹配的时候,更新WHENNOTMATCHEDTHENINSERTVALUES(test_from.id,test_from.val)--源表有,目标表没有,插入--再次检查目标表数据.SQL》SELECT*FROMtest_to;

oracle update触发器 更新某一字段时往另一张表insert相关数据的触发器

create or replace trigger test1 after update of id on test1 for each rowbegininsert into test2(name) values(’now,you update test1.id ,and i can feel you !’);end;纯手打,根据字段触发就是这样,您可以参考着写。

oracle 触发器pre-insert, pre-update等什么意思啊 怎么用

你这个是oracle EBS form程序1.在数据插入前执行,把系统参数组织ID赋给BUDGET_MANAGERS块的ORG_ID栏位,保存用户选择的环境参数 :PARAMETER.P_ORG_ID 是系统参数,当用户进入系统时候,带入的信息FND_STANDARD.SET_WHO是记录who cloumn参数,包括建立人员,日期等2.这个是在数据更新前执行,FND_STANDARD.SET_WHO是记录who cloumn参数,包括修改,日期3.: V_WHERE VARCHAR2(1000);之前的程序有用,后来程序有修改,没删除而已,不用考虑的 PARAMETER.G_QUERY_FIND = ’TRUE’ 这个是参数,在其它一个地方先赋值给他,并做修改,COPY 是把前面一个数据,复制到后面的栏位上4.这个语句不用看,这个是因为POST_QUERY中有select into 赋值语句,使系统状态变完查询状态,退出后避免提醒用户更新资料,

oracle 如果存在主键则更新(update),否则添加新纪录(insert)怎么写

Create Or Replace Procedure p_Update_Add(Pn_Id     In Number, --传入的id

                                         Ln_Code   Number, --返回码

                                         Lr_Reinfo Number) Is

  Ln_Flags Number;

Begin

  Select Count(1) Into Ln_Flags From t_Test Where Id = Pn_Id; --t_test为测试表

  If Ln_Flags 》 0 Then

    --有一条或多条记录存在,表示主键已经存在,进行更新操作

    Update t_Test Set Xxx = Xxx;

    Lr_Code   := 1;

    Lr_Reinfo := ’进行更新’;

  Elsif Ln_Flags = 0 Then

    --没有记录,进行添加操作

    Insert Into t_Test Values (Xx, Xxx, Xxx, Xxx);

    Lr_Code   := 2;

    Lr_Reinfo := ’进行新增’;

  Else

    Lr_Code   := -1;

    Lr_Reinfo := ’操作失败’;

  End If;

Exception

  When Others Then

    Dbms_Output.Put_Line(’出现异常’);

    Rollback;  

End;

求教php+oracle insert、update、delete sql 语句的执行不成功问题

mysql_query() 仅对 SELECT,SHOW,DESCRIBE, EXPLAIN 和其他语句 语句返回一个 resource,如果查询出现错误则返回 FALSE。对于其它类型的 SQL 语句,比如INSERT, UPDATE, DELETE, DROP 之类, mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。所以你可以考虑通过TRUE和FALSE来判断执行的结果。

我想请问一下,能否在一个 oracle存储过程中 先insert一条记录,然后在对这条记录做update操作

这个操作是可以的,这种操作的实际应用也很多,比如有一些操作较复杂,需要用到循环插入,部分字段需关联上次插入字段及其他多个条件才能得到结果,为避免逻辑混乱或便与他人理解,可能会先插入部分简单数据,再对剩余字段做更新。1楼有些误人子弟了。

怎样让oracle语句实现insert和update根据条件case when执行

CREATE OR REPLACE TRIGGER “BASEINFO“AFTER insert OR updateON BASEINFOFOR EACH ROWDECLAREnextseq NUMBER;BEGINselect BASEINFO.nextval into nextseq from dual;CASEWHEN inserting THENINSERT INTO BASEINFO ( ID, STATUS, OP, EX, DATE, S_EXT_TIMESTAMP )VALUES (nextseq, ’NEW’, ’0’, -1, sysdate, :new.S_EXT_TIMESTAMP);WHEN updating THENINSERT INTO BASEINFO ( ID, STATUS, OP, EX, DATE, S_EXT_TIMESTAMP )VALUES (nextseq, ’NEW’, ’1’, -1, sysdate, :new.S_EXT_TIMESTAMP); END;

oracle触发器问题,怎么把insert,update,insert 写入同一触发器,参考下面的触发器代码!跪谢

你是要把插入和更新放到一个触发器里面对吗?这么写就行了:create or replace trigger updatedb_TEST_STURECORD before insert or update on TEST_STURECORD for each rowbeginif inserting thenupdate TEST_STURECORD@DBLINKTEST set STUR_ID =:New.STUR_ID, stur_where=:New.stur_where;end if; if updating theninsert TEST_STURECORD@DBLINKTEST values (xx,xxx,xx,xx,xx);end if;end;插入和更新内的代码你改成你自己需要的就行了。希望对你有帮助。