亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 54009.sql

?? ORACLE DATABASE 10G PLSQL入門教程 源代碼
?? SQL
?? 第 1 頁 / 共 2 頁
字號:
-- -------------------------------------------------
-- Filename: 54009.sql
--
-- Script file for PL/SQL 101 for Oracle 10g
-- Chapter 09
-- Created by Christopher Allen
-- Copyright Oracle Press (c) 2004
-- -------------------------------------------------


-- Startup text at beginning of chapter
DROP TABLE plsql101_purchase;
DROP TABLE plsql101_product;
DROP TABLE plsql101_person CASCADE CONSTRAINTS;
DROP TABLE plsql101_old_item;
DROP TABLE plsql101_purchase_archive;
DROP TABLE plsql101_audit;

CREATE TABLE plsql101_person (
     person_code VARCHAR2(3) PRIMARY KEY,
     first_name  VARCHAR2(15),
     last_name   VARCHAR2(20),
     hire_date   DATE
     )
;

CREATE INDEX plsql101_person_name_index 
ON plsql101_person(last_name, first_name);

ALTER TABLE plsql101_person 
ADD CONSTRAINT plsql101_person_unique UNIQUE (
     first_name,
     last_name,
     hire_date
     )
;

INSERT INTO plsql101_person VALUES
     ('CA', 'Charlene', 'Atlas', '01-FEB-05');
INSERT INTO plsql101_person VALUES
     ('GA', 'Gary', 'Anderson', '15-FEB-05');
INSERT INTO plsql101_person VALUES
     ('BB', 'Bobby', 'Barkenhagen', '28-FEB-05');
INSERT INTO plsql101_person VALUES
     ('LB', 'Laren', 'Baxter', '01-MAR-05');
INSERT INTO plsql101_person VALUES 
     ('LN', 'Linda', 'Norton', '01-JUN-06');

CREATE TABLE plsql101_product (
     product_name     VARCHAR2(25) PRIMARY KEY,
     product_price    NUMBER(4,2),
     quantity_on_hand NUMBER(5,0),
     last_stock_date  DATE
     )
;

ALTER TABLE plsql101_product ADD CONSTRAINT positive_quantity CHECK(
     quantity_on_hand IS NOT NULL
     AND
     quantity_on_hand >=0
     )
;

INSERT INTO plsql101_product VALUES
     ('Small Widget', 99, 1, '15-JAN-06');
INSERT INTO plsql101_product VALUES
     ('Medium Wodget', 75, 1000, '15-JAN-05');
INSERT INTO plsql101_product VALUES
     ('Chrome Phoobar', 50, 100, '15-JAN-06');
INSERT INTO plsql101_product VALUES
     ('Round Chrome Snaphoo', 25, 10000, null);
INSERT INTO plsql101_product VALUES
     ('Extra Huge Mega Phoobar +',9.95,1234,'15-JAN-07');
INSERT INTO plsql101_product VALUES ('Square Zinculator', 
     45, 1, TO_DATE('December 31, 2005, 11:30 P.M.',
                       'Month dd, YYYY, HH:MI P.M.')
     )
;
INSERT INTO plsql101_product VALUES (
     'Anodized Framifier', 49, 5, NULL);
INSERT INTO plsql101_product VALUES (
     'Red Snaphoo', 1.95, 10, '31-DEC-04');
INSERT INTO plsql101_product VALUES (
     'Blue Snaphoo', 1.95, 10, '30-DEC-04')
;

CREATE TABLE plsql101_purchase ( 
     product_name  VARCHAR2(25), 
     salesperson   VARCHAR2(3),
     purchase_date DATE, 
     quantity      NUMBER(4,2)
     )
;

ALTER TABLE plsql101_purchase
ADD PRIMARY KEY (product_name,
                 salesperson,
                 purchase_date
                 )
;

ALTER TABLE plsql101_purchase 
ADD CONSTRAINT reasonable_date CHECK(
     purchase_date IS NOT NULL
     AND
     TO_CHAR(purchase_date, 'YYYY-MM-DD') >= '2003-06-30'
     )
;

ALTER TABLE plsql101_purchase
ADD CONSTRAINT plsql101_purchase_fk_product FOREIGN KEY 
     (product_name) REFERENCES plsql101_product;

ALTER TABLE plsql101_purchase
ADD CONSTRAINT plsql101_purchase_fk_person FOREIGN KEY 
     (salesperson) REFERENCES plsql101_person;

CREATE INDEX plsql101_purchase_product
ON plsql101_purchase(product_name);

CREATE INDEX plsql101_purchase_salesperson
ON plsql101_purchase(salesperson);

INSERT INTO plsql101_purchase VALUES 
     ('Small Widget', 'CA', '14-JUL-06', 1);
INSERT INTO plsql101_purchase VALUES 
     ('Medium Wodget', 'BB', '14-JUL-06', 75);
INSERT INTO plsql101_purchase VALUES 
     ('Chrome Phoobar', 'GA', '14-JUL-06', 2);
INSERT INTO plsql101_purchase VALUES 
     ('Small Widget', 'GA', '15-JUL-06', 8);
INSERT INTO plsql101_purchase VALUES 
     ('Medium Wodget', 'LB', '15-JUL-06', 20);
INSERT INTO plsql101_purchase VALUES 
     ('Round Chrome Snaphoo', 'CA', '16-JUL-06', 5);
INSERT INTO plsql101_purchase VALUES (
     'Small Widget', 'CA', '17-JUL-06', 1)
;

UPDATE plsql101_product
SET    product_price = product_price * .9
WHERE  product_name NOT IN (
       SELECT DISTINCT product_name
       FROM   plsql101_purchase
       )
;

CREATE TABLE plsql101_purchase_archive ( 
     product_name  VARCHAR2(25), 
     salesperson   VARCHAR2(3),
     purchase_date DATE, 
     quantity      NUMBER(4,2)
     )
;

INSERT INTO plsql101_purchase_archive VALUES 
     ('Round Snaphoo', 'BB', '21-JUN-04', 10);
INSERT INTO plsql101_purchase_archive VALUES 
     ('Large Harflinger', 'GA', '22-JUN-04', 50);
INSERT INTO plsql101_purchase_archive VALUES 
     ('Medium Wodget', 'LB', '23-JUN-04', 20);
INSERT INTO plsql101_purchase_archive VALUES 
     ('Small Widget', 'ZZ', '24-JUN-05', 80);
INSERT INTO plsql101_purchase_archive VALUES 
     ('Chrome Phoobar', 'CA', '25-JUN-05', 2);
INSERT INTO plsql101_purchase_archive VALUES 
     ('Small Widget', 'JT', '26-JUN-05', 50);

-- ======================================================================

-- Figure 9-1
/* Performance is current average per order amount as a percentage of the  historical average per order sale amount for a salesperson. Status returns the status of errors if any.
*/
SET SERVEROUTPUT ON
DECLARE
    TYPE performance_type IS RECORD
        (person_code      plsql101_person.person_code%TYPE,
         person_name      plsql101_person.last_name%TYPE,
         current_sales    NUMBER(8,2),
         perform_percent  NUMBER(8,1),
         status           varchar2(30)
        );

    one_perform performance_type;

    CURSOR person_cur IS
        SELECT *
        FROM   plsql101_person;

    /* This procedure computes the performance and current total sales by 
       one salesperson. The information for the salesperson is passed in
       as a record named a_person. If there are no sales for the day by the    
       person then current_sales is set to zero. If the person has no 
       history, for example, the person just joined today, then the 
       perform_percent is set to zero.
     */
    PROCEDURE current_performance
        (a_person plsql101_person%ROWTYPE,
         a_perform OUT performance_type)
    IS
        CURSOR history_cur (person varchar2) IS
            SELECT   AVG(tab2.product_price * tab1.quantity) avg_order
            FROM     plsql101_purchase_archive tab1,
                     plsql101_product tab2
            WHERE    tab1.product_name = tab2.product_name
            GROUP BY tab1.salesperson
            HAVING   tab1.salesperson = person;

        hist_rec history_cur%ROWTYPE;
        current_avg_sales NUMBER(8,2) := 0;

    BEGIN
        a_perform.person_code := a_person.person_code;
        a_perform.person_name := a_person.last_name;
        a_perform.status := NULL;

        BEGIN
            SELECT   SUM(tbl2.product_price * tbl1.quantity),
                     AVG(tbl2.product_price * tbl1.quantity)
            INTO     a_perform.current_sales,
                     current_avg_sales
            FROM     plsql101_purchase tbl1,
                     plsql101_product tbl2
            WHERE    tbl1.product_name = tbl2.product_name
            GROUP BY tbl1.salesperson
            HAVING   tbl1.salesperson = a_person.person_code;
        EXCEPTION
            WHEN NO_DATA_FOUND
            THEN
                a_perform.status := 'Current purchases exception';
                a_perform.current_sales := 0;
        END;

        OPEN history_cur (a_person.person_code);
        FETCH history_cur INTO hist_rec;
        IF (history_cur%NOTFOUND)
        THEN
            a_perform.perform_percent := 0;
            IF (a_perform.status IS NULL)
            THEN
                a_perform.status := 'Erroneous or no history';
            END IF;
        ELSE
            a_perform.perform_percent :=
                 100 * (current_avg_sales - hist_rec.avg_order)/
                                                  hist_rec.avg_order;
            a_perform.status := 'All fine';
        END IF;
        CLOSE history_cur;
    EXCEPTION
        WHEN NO_DATA_FOUND
        THEN
            a_perform.status := 'Exceptions found';
    END current_performance;

BEGIN
    FOR person_rec IN person_cur
    LOOP
        current_performance(person_rec, one_perform);

        dbms_output.put_line(one_perform.person_code ||
                             ' ' ||
                             one_perform.person_name ||
                             ' ' ||
                             one_perform.current_sales ||
                             ' ' ||
                             one_perform.perform_percent ||
                             ' ' ||
                             one_perform.status);
    END LOOP;
END;
/



-- Figure 9-2
DECLARE
    quant NUMBER := 20;
BEGIN
    INSERT INTO plsql101_purchase
    VALUES ('Medium Wodget',
            'LN',
            '18-AUG-05',
            quant);
    IF (SQL%NOTFOUND)
    THEN
        dbms_output.put_line('Insert error?!');
    END IF;
END;
/
SELECT * FROM plsql101_purchase;



-- Figure 9-3
INSERT INTO plsql101_product
VALUES ('Large Harflinger',
        21,
        100,
        '29-AUG-04');

INSERT INTO plsql101_product
VALUES ('Round Snaphoo',
        12,
        144,
        '21-JUL-04');
SELECT * FROM plsql101_product;



-- Figure 9-4
CREATE OR REPLACE PROCEDURE update_prod (
     prod_rec plsql101_product%ROWTYPE
     ) IS
BEGIN
     UPDATE plsql101_product
     SET    last_stock_date = prod_rec.last_stock_date,
            quantity_on_hand = quantity_on_hand 
                               + 
                               prod_rec.quantity_on_hand
     WHERE product_name = prod_rec.product_name;
END update_prod;
/
DECLARE
     a plsql101_product%ROWTYPE;
BEGIN
     a.product_name := 'Small Widget';
     a.product_price := 87;
     a.quantity_on_hand := 31;
     a.last_stock_date := TO_DATE('23-NOV-04');
     update_prod(a);
END;
/
SELECT * FROM plsql101_product;



-- Figure 9-5
set serveroutput on

BEGIN
  DELETE FROM plsql101_product
  WHERE       product_name = 'junk';
  IF (SQL%NOTFOUND)
  THEN
      dbms_output.put_line('No such product');
  END IF;
END;
/



-- Figure 9-6
DROP TABLE plsql101_timetab CASCADE CONSTRAINTS;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美午夜在线一二页| 久久久久久久久久久99999| 日韩欧美一级片| 国产精品久久久久久久午夜片| 亚洲综合久久av| 国产成人精品一区二区三区网站观看| 色综合久久综合中文综合网| 亚洲精品在线一区二区| 亚洲美女偷拍久久| 国产麻豆视频一区| 91精品久久久久久久久99蜜臂| 亚洲男同1069视频| 国产激情精品久久久第一区二区| 69堂成人精品免费视频| 亚洲日本一区二区| 成人在线综合网站| 久久综合狠狠综合久久激情| 天天操天天色综合| 欧美性高清videossexo| 综合网在线视频| 风间由美一区二区av101| 日韩欧美国产精品| 奇米色一区二区| 337p亚洲精品色噜噜狠狠| 一区二区三区日韩欧美精品 | 高清不卡一区二区| 日韩小视频在线观看专区| 亚洲一区二区五区| 欧美中文字幕一二三区视频| 亚洲嫩草精品久久| 色八戒一区二区三区| 亚洲国产精品国自产拍av| 欧美日韩一区二区三区四区五区| 中文天堂在线一区| 大陆成人av片| 国产精品福利一区| 99久久婷婷国产综合精品电影| 国产精品乱子久久久久| 波多野结衣欧美| 一色桃子久久精品亚洲| 9i在线看片成人免费| 成人免费小视频| av亚洲产国偷v产偷v自拍| 中文字幕一区在线观看视频| 一本大道综合伊人精品热热| 一区二区三区不卡视频在线观看 | 欧美日韩三级在线| 亚洲一级片在线观看| 欧美日韩成人高清| 日韩精品一二三| 日韩欧美一区电影| 处破女av一区二区| 亚洲精品乱码久久久久久久久| 欧美伊人精品成人久久综合97| 亚洲网友自拍偷拍| 日韩一级高清毛片| 春色校园综合激情亚洲| 亚洲精品欧美激情| 欧美一区二区三区性视频| 极品少妇xxxx偷拍精品少妇| 中文字幕免费观看一区| 91麻豆精品视频| 99视频精品免费视频| 亚洲日本欧美天堂| 欧美日本一区二区三区| 国产在线精品一区二区三区不卡| 国产无一区二区| 欧美亚州韩日在线看免费版国语版| 全部av―极品视觉盛宴亚洲| 欧美激情中文字幕一区二区| 在线观看av一区| 久久国产三级精品| 亚洲欧洲国产专区| 日韩视频免费观看高清完整版在线观看| 国内精品伊人久久久久av一坑 | 成人激情黄色小说| 亚洲成人在线免费| 久久久精品黄色| 欧美唯美清纯偷拍| 风间由美一区二区三区在线观看 | 日韩高清电影一区| 国产精品国产三级国产普通话99 | 成人福利在线看| 五月激情综合网| 日本伊人午夜精品| 国产精品视频一二| 日韩欧美在线不卡| 欧美性视频一区二区三区| 国产一区二区三区美女| 亚洲第一狼人社区| 国产精品盗摄一区二区三区| 欧美电影免费观看高清完整版在线观看| 91首页免费视频| 国产精品99久久久久久似苏梦涵| 午夜激情一区二区三区| 亚洲手机成人高清视频| 国产午夜亚洲精品羞羞网站| 欧美一区二区视频在线观看| 91成人在线精品| 成人激情视频网站| 国产盗摄一区二区| 狠狠色丁香婷婷综合| 亚洲成人激情综合网| 一区二区三区不卡在线观看| 中文字幕一区二区三区四区不卡| 久久这里都是精品| 日韩精品一区二区三区swag| 制服丝袜激情欧洲亚洲| 欧美日韩一区二区三区不卡| 色婷婷精品久久二区二区蜜臂av| 成人精品电影在线观看| 国产电影一区在线| 国产尤物一区二区在线| 国产在线视视频有精品| 久久不见久久见中文字幕免费| 日韩福利视频导航| 青青草国产成人av片免费| 图片区小说区国产精品视频| 丝袜美腿一区二区三区| 石原莉奈在线亚洲二区| 日韩成人一区二区| 日本伊人精品一区二区三区观看方式| 日本中文字幕一区| 免播放器亚洲一区| 精品一区二区三区免费视频| 狠狠狠色丁香婷婷综合激情| 国产精品一区专区| 国产东北露脸精品视频| 成人黄色在线看| 色婷婷综合五月| 欧美日韩精品三区| 欧美成人午夜电影| 国产日韩精品视频一区| 国产精品久久久久久久久久免费看| 国产精品国产成人国产三级 | www精品美女久久久tv| 精品成人佐山爱一区二区| 久久久久久久久蜜桃| 国产欧美日韩一区二区三区在线观看| 久久久国产精品不卡| 日韩毛片一二三区| 午夜精品久久一牛影视| 国模套图日韩精品一区二区 | 色呦呦日韩精品| 欧美日韩亚州综合| 日韩免费一区二区| 国产精品对白交换视频| 一区二区三区日韩| 久久国产精品免费| 91丝袜美女网| 日韩一区二区三区免费看| 国产精品人成在线观看免费| 亚洲一区二区高清| 国产精品一区二区无线| 色综合激情久久| 日韩免费高清视频| 成人免费在线观看入口| 青青青伊人色综合久久| aaa国产一区| 日韩午夜精品电影| 亚洲激情欧美激情| 国产九色精品成人porny | 久久成人av少妇免费| 99riav一区二区三区| 欧美一区二区视频在线观看2022| 国产精品国产三级国产有无不卡| 日本中文一区二区三区| 色综合咪咪久久| 国产欧美精品在线观看| 日韩vs国产vs欧美| 色网站国产精品| 国产精品久久福利| 老司机午夜精品| 在线视频一区二区三区| 国产欧美日韩卡一| 日本怡春院一区二区| 欧美性欧美巨大黑白大战| 国产精品久久久久9999吃药| 国产一区二区三区在线观看精品| 欧美日本在线视频| 一区二区三国产精华液| 99久久婷婷国产综合精品电影| 久久天堂av综合合色蜜桃网| 日韩国产高清在线| 欧美喷潮久久久xxxxx| 夜夜嗨av一区二区三区网页| 不卡一卡二卡三乱码免费网站| 精品久久一二三区| 日韩国产在线一| 欧美麻豆精品久久久久久| 日韩一区二区三区高清免费看看| 亚洲成av人片在线观看| 欧美最猛性xxxxx直播| 最新不卡av在线| jvid福利写真一区二区三区| 国产欧美日韩三区| 丁香婷婷综合激情五月色| 久久女同性恋中文字幕| 国产一区二区不卡在线| 26uuu精品一区二区在线观看|