您的位置:首页 > 数据库 > Oracle

[Oracle]Plsql的一个例子

2006-01-05 17:01 344 查看
CREATE OR REPLACE PROCEDURE PROCSAMPLE IS BEGIN
  DELETE TABLESAMPLE
  WHERE KEY1 NOT IN
    (SELECT KEY1 FROM T30070_REGION_SSC_TMP);
  UPDATE TABLESAMPLE SET (
    NAME1,
    UPDATEDATE)
    =
    (SELECT
      NAME1,
      SYSDATE
    FROM T30070_REGION_SSC_TMP
    WHERE TABLESAMPLE.KEY1=T30070_REGION_SSC_TMP.KEY1
     AND TABLESAMPLE.NAME1<>T30070_REGION_SSC_TMP.NAME1)
  WHERE KEY1 =
    (SELECT KEY1
    FROM T30070_REGION_SSC_TMP
    WHERE TABLESAMPLE.KEY1=T30070_REGION_SSC_TMP.KEY1
     AND TABLESAMPLE.NAME1<>T30070_REGION_SSC_TMP.NAME1);
  INSERT INTO TABLESAMPLE (
    KEY1,
    UPDATEDATE)
    SELECT
      KEY1,
      SYSDATE
    FROM T30070_REGION_SSC_TMP
    WHERE KEY1 NOT IN (SELECT KEY1 FROM TABLESAMPLE);
  COMMIT;
  EXCEPTION WHEN OTHERS THEN BEGIN
    ROLLBACK;
    RAISE_APPLICATION_ERROR(SQLCODE,SQLERRM,TRUE);
  END;
END PROCSAMPLE;
/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息