CREATE OR REPLACE Procedure test
(param IN varchar2)
ASiCount integer;
BEGIN
SELECT COUNT(*) INTO iCount FROM tbname WHERE fieldname='001';
IF iCount > 0 THEN
UPDATE tbname SET ....;
ELSE
INSERT INTO tbname() VALUES ();
END IF;
COMMIT;
END TEST;
(param IN varchar2)
ASiCount integer;
BEGIN
SELECT COUNT(*) INTO iCount FROM tbname WHERE fieldname='001';
IF iCount > 0 THEN
UPDATE tbname SET ....;
ELSE
INSERT INTO tbname() VALUES ();
END IF;
COMMIT;
END TEST;
(param IN varchar2)
ASiCount integer;
BEGIN
SELECT COUNT(*) INTO iCount FROM tbname WHERE fieldname='001';
IF iCount > 0 THEN
UPDATE tbname SET ....;
ELSE
INSERT INTO tbname() VALUES ();
END IF;
COMMIT;
END TEST;
(param IN varchar2)
ASiCount integer;
BEGIN
UPDATE tbname SET ....; IF SQL%NOTFOUND THEN
INSERT INTO tbname() VALUES ();
END IF;
COMMIT;
END TEST;
(param IN varchar2)
AS
iCount integer;
BEGIN
select count(*) into iCount from col where tname = upper('tbname') and cname = upper('001')
IF iCount > 0 THEN
UPDATE tbname SET ....;
ELSE
INSERT INTO tbname() VALUES ();
END IF;
END TEST;
Oracle最基本的写法:
直接UPDATE,没有更新到记录时,再插入就可以了。