oracle快捷語句框架中,Oracle框架:PL/SQL編程:

PL/SQL編程

一:什么是PL/SQL

(1.)PL/SQL體系結構:

PL/SQL引擎用來編譯和執行,PL/SQL塊或子程序,該引擎駐留在Oracle服務器中。

(2.)PL/SQL塊簡介

PL/SQL是一種塊結構語音,它將一組語句塊放在一個快中。

(3.)運算符和表達式:

PL/SQL語音支持操作符包含關系運算符,一般運算符和邏輯運算符,與SQL語音類似。

(4.)常量和變量聲明

在PL/SQL塊的可執行部分引用變量和常量前,必須先對其進行聲明。變量和PL/SQL塊的部分聲明,在PL/SQ塊的 可執行部分被使用。語法如下:

Variable_name data_type 變量范圍 變量的初始值;

(5.)注釋:

在PL/SQL可以使用如下兩種注釋符號:

‘--’雙減號

‘//’

在PL/SQL快中的可執行部分引用的變量和常量前,必須先對其聲明

語法:variable_name data_type[(size)][:=init_value];

變量名稱 數據類型 size 指定變量的初始值

二:PL/SQL數據類型

(1.)Oracle使用變量類型圖

(2.)LOB數據類型

(3.)屬性類型:

%Type:定義一個變量,其數據類型與已經定義的某個數據變量(尤其是表的某一列)的數據類型相一致這時可以使用%Type (優點:可以不必知道所引用的數據庫列的數據類型。所引用的數據類型可以實現時改變,容易保持一致,不必修改PL/SQL程序)

%ROWTYPE:返回一個記錄類型,其數據類型和數據庫表的數據結構相一致,這時可以使用%ROWTYPE.(優點:可以不必知道所引用數據庫列的個數和數據類型。所引用的數據庫中列的個數和數據庫類型可以實現改變,容易保持一致,不用修改PL/SQL程序)

三:PL/SQL控制語句

(1.)條件控制:if語句如下:

If 布爾表達式 then

PL/SQL和SQL語句

End if;

If 布爾表達式 then

PL/SQL和SQL語句

Elst

其他語句

End if;

If 布爾表達式 then

PL/SQL和SQL語句

Elsif 其他布爾表達式 then

其他語句

Elsif 其他布爾表達式 then

Else

其他語句

End if;

(2.)case 語法如下

----------------格式1----------------

Case 條件表達式

When 條件表達式1 then

語句段1

When 條件表達式2 then

語句段2

…………….

When 條件表達式n then

語句段n

End case;

----------------格式2----------------

Case 條件表達式

When 條件表達式1 then

語句段1

When 條件表達式2 then

語句段2

…………….

When 條件表達式n then

語句段n

Else 語句段

End case;

(3.)循環控制:Loop循環語法如下:

Loop

要執行的語句;

Exit when 條件語句 -------條件滿足時跳出循環

End loop;

While循環語法如下:

While 布爾表達式 loop

要執行的語句;

End loop;

For循環語法如下

For 循環計數器 In reverse 下限…….上限 loop

要執行的語句

End loop;

四:異常處理:

(1.)預定義異常:

(2.)處理用戶自定義異常:

在PL/SQL塊的定義部分定義的異常情況

異常情況 exceptlon

拋出異常情況:

Raise 異常情況

在PL/SQL塊的異常情況處理部分對異常情況做出的相應處理

五:游標:

(2.)游標的分類

隱式游標:返回單行記錄

顯示游標:返回多行記錄

顯示游標使用步驟:

(1.)聲明游標:cursor 名稱 is

(2.)打開游標:open 名稱;

(3.)提取游標:fetch 名稱 into variables;

(4.)關閉游標: close 名稱;

(3.)使用循環游標簡化游標的讀取語法:

For 聲明記錄變量 in 名稱

Loop

Executable_statements

End loop;

(4.)No_data_found和notfound的區別

Select………into語句返回0條記錄和多條記錄是觸發no_data_found

當update或delete語句的where子句未找到時,觸發%notfound

在提取循環中用%notfound或%found來確定循環的退出條件,而不用no_data_fuond

六:存儲過程:

子程序的組成:

(1.)聲明部分:類型,游標,常量,變量,異常,嵌套子程序聲明

(2.)可執行部分:可執行部分包括賦值,控制執行過程存儲過程中出現的異常

(3.)異常處理部分:異常處理程序,負責處理執行存儲過程中出現的異常。

子程序的優點如下:

模塊化,可重用性,可維護性,安全性。

(4.)存儲過程用法:

1.創建存儲過程:語法如下:

Create 語句 procedure 存儲名稱

參數列表

Is|as

局部聲明

Begin

可執行語句

exception

異常處理程序

End 存儲名稱;

2.調用存儲過程

(1.)用命令調用

語法如下:

Exce 過程名稱 參數列表;

(2.)參數的傳遞方式三種:

按位置傳遞

Exec add_emp(1111,‘mary’,2000,’‘manager’,10);

按名稱傳遞

混合方式傳遞

3.存儲過程參數模式語法如下:

存儲名稱 in|out|in out datatype :=賦值;

4.存儲過程訪問權限

-----授予a執行emp的權限

Grant execute no add_emp to a

-------撤銷權限

Revoke execute on add_emp from a;

5.刪除存儲過程

Drop procedure 存儲名稱;

七:存儲過程的調試與跟蹤:

(1.)在sql*plus下調試

(2.)用戶PL/SQL Developer工具調試

其中on_flag有三種情況:

0表示過程執行成功但無提示信息。大于0表示過程執行成功但有提示信息。

*小于1表示過程執行失敗且有提示信息。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/532266.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/532266.shtml
英文地址,請注明出處:http://en.pswp.cn/news/532266.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

logisticregression參數_通俗地說邏輯回歸【Logistic regression】算法(二)sklearn邏輯回歸實戰...

前情提要:通俗地說邏輯回歸【Logistic regression】算法(一) 邏輯回歸模型原理介紹上一篇主要介紹了邏輯回歸中,相對理論化的知識,這次主要是對上篇做一點點補充,以及介紹sklearn 邏輯回歸模型的參數&#…

tensorflow適用于python版本_tensorflow用python哪個版本更好?

tensorflow用python哪個版本?一、安裝anaconda tensorflow是基于python腳本語言的,因此需要安裝python, 當然還需要安裝numpy、scipy、six、matplotlib等幾十個擴展包。如果一個個安裝,裝到啥時候去?(我曾經光安裝scip…

php parse url ctf,【SSRF】如何繞過filter_var(), preg_match() 和 parse_url()

0x01 前言這篇文章是在我看完一片國外安全大佬寫的文章后對其進行總結并翻譯得到的。0x02 正文之繞過filter_var和preg_match本片文章主要深入一種php ssrf的技術——如何繞過例如filter_var(), preg_match()和parse_url()等函數。本次我進行測試的php版本全部為php v5.6.30php…

python json解析_python讀取json文件并解析

原博文 2018-07-09 18:35 ? # -*- coding: utf-8 -*- import os import json import sys reload(sys) sys.setdefaultencoding(utf-8) filelistos.listdir(E:\\log\\files\\) for ite... 相關推薦 2019-12-05 20:03 ? 如何使用 Python 語言來編碼和解碼 JSON 對象。 JSON(Jav…

oracle進程瞬間暴增,oracle goldengate ogg 源段傳輸進程lag延遲不斷增加的原因?

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓了解GoldenGate中LAG的含義GGSCI中顯示的LAG代表 事務被寫入到磁盤介質中的時刻例如Oracle中redo被寫入到online redo logfile中 和 Replicat將同一個事務分發到目標數據庫的時刻 之間的時間間隔。通俗地說,一個事務內的…

python中文詞云圖代碼_Python簡單實現詞云圖代碼及步驟解析

一、安裝 wordcloud pip install wordcloud 二、加載包、設置路徑 import os from wordcloud import WordCloud import matplotlib.pyplot as plt os.chdir(E:\\pyspace\\tmp) 三、詞云圖示例 1、默認參數示例 text Keep it simple and stupid. wc WordCloud() # 實例化詞云圖…

linux 命令 空格轉義,在Linux中,如何轉義SCP復制路徑中的空格?

問題描述我是Linux新手,我想將文件從遠程復制到本地系統…現在,我在Linux系統中使用scp命令。當我嘗試將其復制時,我有一些文件夾或文件名帶有空格文件,它顯示錯誤消息:“沒有這樣的文件或目錄”我試過了:s…

usb大容量存儲設備驅動程序_20年歷史了!為什么USB接口還存在?網友:原來如此...

USB接口作為計算機領域應用最廣泛的數據接口,已有20多年的歷史。和它的名字一樣,USB(Universal Serial Bus)最初也是為統一的數據接口而設計的。你幾乎可以用它來代替計算機的各種外部數據接口,只需為它設計相應的驅動程序。隨著市場對USB接口…

linux終端炫酷命令,你不得不知道11個炫酷的 Linux 終端命令

很多朋友都很喜歡Linux ,Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基于POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統,Linux是一款免費的操作系統,用戶可以通過網絡或其他途徑免費獲得,并可…

lasso回歸_一文讀懂線性回歸、嶺回歸和Lasso回歸

(圖片由AI科技大本營付費下載自視覺中國)作者 | 文杰編輯 | yuquanle本文介紹線性回歸模型,從梯度下降和最小二乘的角度來求解線性回歸問題,以概率的方式解釋了線性回歸為什么采用平方損失,然后介紹了線性回歸中常用的兩種范數來解決過擬合和…

springcloud架構特點_打造企業級微服務平臺架構,分布式應用場景管理

微服務平臺架構是一項在云中部署應用和服務的新技術。大部分圍繞微服務的爭論都集中在容器或其他技術是否能很好的實施微服務。微服務系統可以在“自己的程序”中運行,并通過“輕量級設備與HTTP型API進行溝通”。關鍵在于該服務可以在自己的程序中運行。通過這一點我…

linux 看防火墻的啟停日志,LINUX下防火墻iptables的日志管理

iptables的日志(log)由syslogd紀錄和管理。初始存放在 /var/log/messages里面。自動采取循環紀錄(rotation)的方式記錄。但是由于混在 messages中,對于管理和監視產生了不便。這里,我簡單介紹一下我的 iptables日志的管理,循環,和…

怎么判斷一個字符串的最長回文子串是否在頭尾_LeetCode 5 迅速判斷回文串的Manacher算法...

本文始發于個人公眾號: TechFlow題意Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.Link: https://leetcode.com/problems/longest-palindromic-substring/翻譯給定一個字符串s&#xff0c…

linux內核沒有iobuf,LINUX2.6.26.6內核下雙口RAM的驅動函數測試成功!

驅動程序:#include //#include #include #include #include #include #include #include //#include #include //#include #include #include #include #include //#include #include #include #include #include #include #include #include MODULE_LICENSE("…

spring和mybatis結合做簡單的增刪查改系統_springbootamp;amp;vue簡單的景點信息管理系統...

springboot&&vue簡單的景點信息管理系統這兩天閑著沒有什么事,就根據陳哥的教程,試著寫了一個springboot和vue的簡單的景點信息管理系統。也就大致實現了最基本的增刪查改。先看看效果圖吧:1、登陸界面: 2、注冊界面&…

linux 內核 丟棄分片包,LINUX內核關于IP分片重組問題請教

最近研究學習IP分片重組,也拜讀了不少dx的閱讀理解。可還是有疑問,請教xdm。源代碼:linux-2.4.26\linux-2.4.26\net\ipv4\ip_fragment.cIP分片的重組大概經過以下幾個函數:0/ ip_defrag1/ ip_find-->ip_frag_create-->ip_frag_intern2/…

spark算子_十、Spark之詳解Action類算子

常用Action類算子列表reduce(func): 通過func函數來對RDD中所有元素進行聚合運算,先運算分區內數據,再運算分區間數據。scala> val rdd1 sc.makeRDD(1 to 100)rdd1: org.apache.spark.rdd.RDD[Int] ParallelCollectionRDD[4] at makeRDD at :24# 對…

linux 庫函數 劫持,Linux hook技術之-Ring3下動態鏈接庫.so函數劫持

劫持普通函數當然沒有什么意思了!我們要劫持的是系統函數!我們知道,Unix操作系統中對于GCC而言,默認情況下,所編譯的程序中對標準C函數(fopen、printf、execv家族等等函數)的鏈接,都是通過動態鏈接方式來鏈…

await原理 js_「速圍」Node.js V14.3.0 發布支持頂級 Await 和 REPL 增強功能

本周,Nodejs v14.3.0 發布。這個版本包括添加頂級 Await、REPL 增強等功能。REPL 增強通過自動補全改進對 REPL 的預覽支持,例如,下圖中當輸入 process.ver 之后,不需要輸入剩下的實際內容,它幫我們生成了自動補全的輸…

在linux安裝requests庫命令,在Linux--Ubuntu18.04環境下安裝requests庫

之前在服務器上裝過requests庫,但是記憶中花了好大的力氣才成功,現在因為一次意外,服務器重裝系統,現在這些亂七八糟的庫又要重裝一遍,與上次不同的是,這次我裝一遍就成功了。現在分享一下成功的經歷。Pyth…