亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

PL/SQL程序結構

2024-07-21 02:40:37
字體:
來源:轉載
供稿:網友
什么是PL/SQL程序

    前面第4章學習的標準化的SQL語言對數據庫進行各種操作,每次只能執行一條語句,語句以英文的分號“;”為結束標識,這樣使用起來很不方便,同時效率較低,這是因為Oracle數據庫系統不像VB、VC這樣的程序設計語言,它側重于后臺數據庫的治理,因此提供的編程能力較弱,而結構化編程語言對數據庫的支持能力又較弱,假如一些稍微復雜點的治理任務都要借助編程語言來實現的話,這對治理員來講是很大的負擔。
    正是在這種需求的驅使下,從Oracle 6開始,Oracle公司在標準SQL語言的基礎上發展了自己的PL/SQL(PRocedural Language/SQL,過程化SQL語言)語言,將變量、控制結構、過程和函數等結構化程序設計的要素引入了SQL語言中,這樣就能夠編制比較復雜的SQL程序了,利用PL/SQL語言編寫的程序也稱為PL/SQL程序塊。
    PL/SQL程序塊的主要特點如下。
    具有模塊化的結構。
    使用過程化語言控制結構。
    能夠進行錯誤處理。
    PL/SQL程序塊只能在【SQL Plus】、【SQLPlus Worksheet】等工具支持下以解釋型方式執行,不能編譯成可執行文件,脫離支撐環境執行。

PL/SQL實例分析

    下面將為前面建立的tempuser用戶建立一個名為testtable的數據表。
    在該表中有recordnumber整數型字段和currentdate時間型字段,編制一個PL/SQL程序完成向該表中自動輸入100個記錄,要求recordnumber字段從1到100,currentdate字段為當前系統時間。
    (1)前面建立的tempuser用戶默認的表空間為USERS,因此,要想使該用戶能夠使用表空間建立數據方案對象,必須首先給其賦予名為“RESOURCE”的角色。
    (2)以system用戶、SYSDBA身份登錄數據庫后,在【企業治理器】中按照修改用戶的步驟進行操作,直到出現如圖9.1所示的編輯用戶的【角色】選項卡。
    在【可用】下拉列表框中選擇“RESOURCE”,單擊PL/SQL程序結構按鈕將其添加到【已授予】列表框中。【默認值】單元格被選中,單擊“確定”按鈕。
PL/SQL程序結構
    (3)讀者也可以在【SQLPlus Worksheet】中直接執行如下SQL代碼完成上述操作。
    ―――――――――――――――――――――――――――――――――――――
    GRANT "RESOURCE" TO "TEMPUSER";
    ALTER USER "TEMPUSER" DEFAULT ROLE ALL
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/grantrole.sql。
    (4)按照創建數據表的操作步驟進行,直到出現如圖9.2所示的創建表的【一般信息】選項卡。
    在【名稱】文本框中輸入“testable”。
    在【方案】下拉列表框中選擇“tempuser”。
    在【表空間】下拉列表框中選擇“users”。
    選擇【表】/【標準】單選鈕。
    選擇【定義列】單選鈕。
    在【表列定義區】中輸入兩個數據列的定義。
    完成設置后單擊PL/SQL程序結構按鈕。
PL/SQL程序結構
    (5)讀者也可以在【SQLPlus Worksheet】中直接執行如下SQL代碼完成上述操作。
    ―――――――――――――――――――――――――――――――――――――
    CREATE TABLE "TEMPUSER"."TESTTABLE" ("RECORDNUMBER" NUMBER(4) NOT
        NULL, "CURRENTDATE" DATE NOT NULL)
        TABLESPACE "USERS"
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/createtesttable.sql。
    (6)以tempuser用戶身份登錄【SQLPlus Worksheet】,執行下列SQL代碼完成向數據表tempuser.testable中輸入100個記錄的功能。執行結果如圖9.3所示。
    ―――――――――――――――――――――――――――――――――――――
    set serveroutput on
    declare
        maxrecords constant int:=100;
        i int :=1;
    begin
        for i in 1..maxrecords loop
           insert into tempuser.testtable(recordnumber,currentdate)
           values(i,sysdate);
        end loop;
    dbms_output.put_line('成功錄入數據!');
    commit;
    end;
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/inserttesttable.sql。
PL/SQL程序結構
    (7)在【SQLPlus Worksheet】中執行下列語句,查詢插入的數據,結果如圖9.4所示。
    ―――――――――――――――――――――――――――――――――――――
    select * from tempuser.testtable;
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/selecttesttable.sql。
PL/SQL程序結構
    對完成上述數據插入過程的PL/SQL程序的分析如表9.1所示。
表9.1 PL/SQL實例代碼分析程序代碼說明set serveroutput on答應服務器輸出declare定義部分標識maxrecords constant int:=100;定義maxrecords為整型常量100i int :=1;定義i為整型值變量,初值為1Begin執行部分標識for i in 1..maxrecords loopi從1循環到maxrecordsInsert into tempuser.testtable(recordnumber,currentdate) values (i,sysdate);向數據表中插入數據end loop;結束循環dbms_output.put_line('成功錄入數據!');顯示成功錄入數據信息commit;提交結果end;結束執行
    表中的sysdate為系統時間函數;dbms_output為系統默認的程序包,put_line為包中定義的方法,功能是輸出信息;在Oracle中,所有對數據庫數據的更改并沒有直接操作數據庫,而是放在叫工作區的內存里,只有在commit語句執行后,才發生永久更改。

PL/SQL程序結構

    結合上述實例進行分析,完整的PL/SQL程序結構可以分為3個部分。
    1. 定義部分
    以Declare為標識,在該部分中定義程序中要使用的常量、變量、游標和例外處理名稱,PL/SQL程序中使用的所有定義必須在該部分集中定義,而在高級語言里變量可以在程序執行過程中定義。
    2. 執行部分
    以begin為開始標識,以end為結束標識。該部分是每個PL/SQL程序所必備的,包含了對數據庫的操作語句和各種流程控制語句。
    3. 異常處理部分
    該部分包含在執行部分里面,以exception為標識,對程序執行中產生的異常情況進行處理。一個完整的PL/SQL程序的總體結構如圖9.5所示。
PL/SQL程序結構
    有的程序比較簡單,往往省略異常處理部分。下面開始介紹PL/SQL的一些基本語法要素。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩视频一区在线| 亚洲国产日韩欧美在线99| 国产精品直播网红| 青青草原成人在线视频| 亚洲最大av网站| 久久久亚洲欧洲日产国码aⅴ| 国产一区二区三区久久精品| 亚洲人成电影网| 国产欧美韩国高清| 欧美激情免费看| 久久久在线免费观看| 黑人巨大精品欧美一区免费视频| 国产拍精品一二三| 亚洲欧美国产精品va在线观看| 亚洲在线免费视频| 精品久久久久久亚洲精品| 亚洲成人激情在线观看| 久久视频在线播放| 欧美日韩不卡合集视频| 国产欧美精品一区二区三区-老狼| 国产成人97精品免费看片| 亚洲最大福利网| 美女视频黄免费的亚洲男人天堂| 国产亚洲一级高清| 亚洲免费av网址| 亚洲老司机av| 91久久精品国产91久久性色| 亚洲精品国产精品自产a区红杏吧| 97**国产露脸精品国产| 91在线观看免费高清| 91av视频在线观看| 国产精品高潮呻吟久久av无限| 中文亚洲视频在线| 久久精品99久久久久久久久| 夜夜嗨av一区二区三区四区| 国产亚洲激情视频在线| 亚洲精品av在线| 欧美日韩一区免费| 中文字幕久久久| 久久久亚洲福利精品午夜| 视频在线观看99| 日本亚洲欧美成人| 日韩成人久久久| 色综合久久88色综合天天看泰| 欧洲永久精品大片ww免费漫画| 动漫精品一区二区| 欧美主播福利视频| 91欧美视频网站| 亚洲丝袜一区在线| 成人在线国产精品| 久久成人18免费网站| 国产精品福利久久久| 国产一区二区三区视频免费| 91在线免费网站| 欧美性在线视频| 国产精品尤物福利片在线观看| 欧美性xxxx极品hd欧美风情| 日韩女优人人人人射在线视频| 亚洲精品美女久久久| 国产精品都在这里| 欧美美女15p| 亚洲激情视频网站| 欧美重口另类videos人妖| 欧美极品少妇xxxxⅹ裸体艺术| 日韩综合中文字幕| 久久人人爽人人爽人人片av高请| 国产精品狼人色视频一区| 欧美视频在线观看免费网址| 国产成人一区二| 日本一区二区不卡| 国产视频精品自拍| 亚洲色在线视频| 97在线观看视频| 欧美亚州一区二区三区| 国产精品88a∨| 日韩精品一区二区三区第95| 国产91色在线|| 国产精品第一第二| 国产精品日本精品| 精品国产一区二区在线| 久久99精品视频一区97| 国产精品久久久久久五月尺| 欧美中文字幕视频| 亚洲欧洲国产一区| 欧美成人免费va影院高清| 久久精品99国产精品酒店日本| 一区二区在线视频| 欧美午夜激情视频| 色一区av在线| 欧美性猛交xxxx偷拍洗澡| 亚洲天堂av电影| 精品久久久久久久中文字幕| 国产一级揄自揄精品视频| 最新日韩中文字幕| 欧美日韩国产精品一区二区三区四区| 欧美国产日韩中文字幕在线| 精品国产乱码久久久久久虫虫漫画| 欧美电影在线观看网站| 中文字幕日韩电影| 欧美激情视频一区二区| 精品亚洲一区二区三区在线播放| 欧美在线视频在线播放完整版免费观看| 亚洲国产精品热久久| 欧美激情2020午夜免费观看| 亚洲国产欧美一区二区丝袜黑人| 日韩中文字幕精品视频| 中文字幕成人在线| 另类图片亚洲另类| 精品高清美女精品国产区| 国产精品视频26uuu| 欧美日韩国产一区二区三区| 亚洲综合视频1区| 欧美日韩在线视频一区| 国产高清视频一区三区| 中文.日本.精品| 国产精品国产福利国产秒拍| 日韩成人免费视频| 久久中文久久字幕| 美女视频黄免费的亚洲男人天堂| 亚洲四色影视在线观看| 国产美女直播视频一区| 69久久夜色精品国产69| 欧美与黑人午夜性猛交久久久| 亚洲精品www| 欧美日韩综合视频网址| 中文字幕在线观看亚洲| 中文字幕最新精品| 成人在线中文字幕| 国产精品毛片a∨一区二区三区|国| 日韩av手机在线看| 精品国产一区二区三区在线观看| 国产一区二区丝袜高跟鞋图片| 在线免费看av不卡| 色婷婷**av毛片一区| 亚洲成人三级在线| 国产精品永久免费观看| 亚洲自拍小视频| 国产精品视频地址| 国产美女被下药99| 欧美成人精品在线视频| 亚洲精品国产精品国自产在线| 国产成人精品免高潮在线观看| 亚洲精品欧美日韩| 热re91久久精品国99热蜜臀| 91麻豆桃色免费看| 亚洲国产日韩欧美综合久久| 成人啪啪免费看| 日韩中文字幕av| 91在线看www| 久久久久久国产精品三级玉女聊斋| 91精品国产99久久久久久| 26uuu日韩精品一区二区| 7777kkkk成人观看| 色婷婷av一区二区三区在线观看| 亚洲激情视频在线播放| 欧美亚洲第一区| 欧美亚洲日本网站| 2019最新中文字幕| 欧美最近摘花xxxx摘花| 国产成人精品久久二区二区| 国产精品偷伦免费视频观看的| 精品无码久久久久久国产| 精品电影在线观看| 亚洲色图18p|