當前位置:首頁 » 編程語言 » 精通oracleplsql編程

精通oracleplsql編程

發布時間: 2023-09-27 16:36:23

1. 求推薦plsql使用oracle庫的書籍或者pdf,最好有自己看過推薦書籍的,有地址或者合適的還會補分。

oracle PL/SQL實例精解(ORCLE PL/SQL by Example Fifth Edition)本傑明 艾琳娜
Oracle編程藝術-升入理解資料庫體積結構 Tomas darl
下面那本將的比較深入了,推薦這兩本主要是翻譯的還不錯,代碼能從網上下,我自己運行過,都沒問題的。
初學建議上面那本,循序漸進。如果只是深入了解有基礎的,直接看下面那本,如果沒基礎可能比較難接受。
兩本我都是亞馬遜買的,如果語言水平好,也可以看原版的

2. oracle如何使用PL/SQL

1.安裝oracle(不再詳述,注意設置網路TCP設置),安裝PLSQLDeveloper(可裝中文版)

2.記住Oracle的安裝目錄?

3.打開PLSQL,此時點cancel(取消)(切記)

4.選擇Tools(工具)—>Preferences(首選項/首選參數)—>Connection(連接):OCIlibray(emptyisautodetect)(選擇oracle路徑)例:

ORACLEHOME(Oracle庫):OraDb11g_home2

OCILIBRARY(OCI庫):C:proct11.2.0dbhome_2inoci.dll

不會的話,右擊我的電腦->屬性->高級->環境變數TNS_ADMINC:proct11.2.0dbhome_2NETWORKADMIN(此處為ORACLE產品目錄下面tnsnames.ora的路徑

在裡面寫入oracle_client下面oci文件

5.配置oracle監聽文件

在oracle_client目錄下新建文件夾network,

在network目錄下新建文件夾admin

在admin目錄下新建文件tnsnames.ora

完整路徑為D:appchapproct11.2.0instantclient_12_1 etworkadmin nsnames.ora

再tnsnames.ora配置監聽:

做資料庫連接

SID_LIST_LISTENER=

(SID_LIST=

(SID_DESC=

(GLOBAL_DBNAME=boway)

(ORACLE_HOME=E:oracleproct10.1.0Db_2)

(SID_NAME=ORCL)

)

)

#

監聽器的名字,一台資料庫可以有不止一個監聽器

再向下面是監聽器監聽的協議,IP和埠,這里使用的

tcp1521埠,並且使用的是主機名

LISTENER=

(DESCRIPTION=

(ADDRESS=(PROTOCOL=TCP)(HOST=boway)(PORT=1521))

)

$ORACLE_HOME/netmgr

6.啟動PLSQLDeveloper連接資料庫,執行sql語句測試,能夠查詢就成功了。

3. 關於oracle PLSQL

PL/SQL是ORACLE對標准資料庫語言的擴展,ORACLE公司已經將PL/SQL整合到ORACLE 伺服器和其他工具中了,近幾年中更多的開發人員和DBA開始使用PL/SQL,本文將講述PL/SQL基礎語法,結構和組件、以及如何設計並執行一個PL/SQL程序。

PL/SQL的優點

從版本6開始PL/SQL就被可靠的整合到ORACLE中了,一旦掌握PL/SQL的優點以及其獨有的數據管理的便利性,那麼你很難想像ORACLE缺了PL/SQL的情形。PL/SQL 不是一個獨立的產品,他是一個整合到ORACLE伺服器和ORACLE工具中的技術,可以把PL/SQL看作ORACLE伺服器內的一個引擎,sql語句執行者處理單個的sql語句,PL/SQL引擎處理PL/SQL程序塊。當PL/SQL程序塊在PL/SQL引擎處理時,ORACLE伺服器中的SQL語句執行器處理pl/sql程序塊中的SQL語句。

PL/SQL的優點如下:

. PL/SQL是一種高性能的基於事務處理的語言,能運行在任何ORACLE環境中,支持所有數據處理命令。通過使用PL/SQL程序單元處理SQL的數據定義和數據控制元素。

. PL/SQL支持所有SQL數據類型和所有SQL函數,同時支持所有ORACLE對象類型

. PL/SQL塊可以被命名和存儲在ORACLE伺服器中,同時也能被其他的PL/SQL程序或SQL命令調用,任何客戶/伺服器工具都能訪問PL/SQL程序,具有很好的可重用性。

. 可以使用ORACLE數據工具管理存儲在伺服器中的PL/SQL程序的安全性。可以授權或撤銷資料庫其他用戶訪問PL/SQL程序的能力。

. PL/SQL代碼可以使用任何ASCII文本編輯器編寫,所以對任何ORACLE能夠運行的操作系統都是非常便利的

. 對於SQL,ORACLE必須在同一時間處理每一條SQL語句,在網路環境下這就意味作每一個獨立的調用都必須被oracle伺服器處理,這就佔用大量的伺服器時間,同時導致網路擁擠。而PL/SQL是以整個語句塊發給伺服器,這就降低了網路擁擠。

PL/SQL塊結構

PL/SQL是一種塊結構的語言,組成PL/SQL程序的單元是邏輯塊,一個PL/SQL 程序包含了一個或多個邏輯塊,每個塊都可以劃分為三個部分。與其他語言相同,變數在使用之前必須聲明,PL/SQL提供了獨立的專門用於處理異常的部分,下面描述了PL/SQL塊的不同部分:

聲明部分(Declaration section)

聲明部分包含了變數和常量的數據類型和初始值。這個部分是由關鍵字DECLARE開始,如果不需要聲明變數或常量,那麼可以忽略這一部分;需要說明的是游標的聲明也在這一部分。

執行部分(Executable section)

執行部分是PL/SQL塊中的指令部分,由關鍵字BEGIN開始,所有的可執行語句都放在這一部分,其他的PL/SQL塊也可以放在這一部分。

異常處理部分(Exception section)

這一部分是可選的,在這一部分中處理異常或錯誤,對異常處理的詳細討論我們在後面進行。

PL/SQL塊語法

[DECLARE]
---declaration statements
BEGIN
---executable statements
[EXCEPTION]
---exception statements
END

PL/SQL塊中的每一條語句都必須以分號結束,SQL語句可以使多行的,但分號表示該語句的結束。一行中可以有多條SQL語句,他們之間以分號分隔。每一個PL/SQL塊由BEGIN或DECLARE開始,以END結束。注釋由--標示。

PL/SQL塊的命名和匿名

PL/SQL程序塊可以是一個命名的程序塊也可以是一個匿名程序塊。匿名程序塊可以用在伺服器端也可以用在客戶端。

命名程序塊可以出現在其他PL/SQL程序塊的聲明部分,這方面比較明顯的是子程序,子程序可以在執行部分引用,也可以在異常處理部分引用。

PL/SQL程序塊可背獨立編譯並存儲在資料庫中,任何與資料庫相連接的應用程序都可以訪問這些存儲的PL/SQL程序塊。ORACLE提供了四種類型的可存儲的程序:

. 函數

. 過程

. 包

. 觸發器

函數

函數是命名了的、存儲在資料庫中的PL/SQL程序塊。函數接受零個或多個輸入參數,有一個返回值,返回值的數據類型在創建函數時定義。定義函數的語法如下:

FUNCTION name [{parameter[,parameter,...])] RETURN datatypes IS
[local declarations]
BEGIN
execute statements
[EXCEPTION
exception handlers]
END [name]

過程

存儲過程是一個PL/SQL程序塊,接受零個或多個參數作為輸入(INPUT)或輸出(OUTPUT)、或既作輸入又作輸出(INOUT),與函數不同,存儲過程沒有返回值,存儲過程不能由SQL語句直接使用,只能通過EXECUT命令或PL/SQL程序塊內部調用,定義存儲過程的語法如下:

PROCEDURE name [(parameter[,parameter,...])] IS
[local declarations]
BEGIN
execute statements
[EXCEPTION
exception handlers ]
END [name]

包(package)

包其實就是被組合在一起的相關對象的集合,當包中任何函數或存儲過程被調用,包就被載入入內存中,包中的任何函數或存儲過程的子程序訪問速度將大大加快。
包由兩個部分組成:規范和包主體(body),規范描述變數、常量、游標、和子程序,包體完全定義子程序和游標。

觸發器(trigger)

觸發器與一個表或資料庫事件聯系在一起的,當一個觸發器事件發生時,定義在表上的觸發器被觸發。

變數和常量

變數存放在內存中以獲得值,能被PL/SQL塊引用。你可以把變數想像成一個可儲藏東西的容器,容器內的東西是可以改變的。

聲明變數

變數一般都在PL/SQL塊的聲明部分聲明,PL/SQL是一種強壯的類型語言,這就是說在引用變數前必須首先聲明,要在執行或異常處理部分使用變數,那麼變數必須首先在聲明部分進行聲明。

聲明變數的語法如下:

Variable_name [CONSTANT] databyte [NOT NULL][:=|DEFAULT expression]

注意:可以在聲明變數的同時給變數強制性的加上NOT NULL約束條件,此時變數在初始化時必須賦值。

給變數賦值

給變數賦值有兩種方式:

. 直接給變數賦值

X:=200;
Y=Y+(X*20);

. 通過SQL SELECT INTO 或FETCH INTO給變數賦值

SELECT SUM(SALARY),SUM(SALARY*0.1)
INTO TOTAL_SALARY,TATAL_COMMISSION
FROM EMPLOYEE
WHERE DEPT=10;

常量

常量與變數相似,但常量的值在程序內部不能改變,常量的值在定義時賦予,,他的聲明方式與變數相似,但必須包括關鍵字CONSTANT。常量和變數都可被定義為SQL和用戶定義的數據類型。

ZERO_VALUE CONSTANT NUMBER:=0;

這個語句定了一個名叫ZERO_VALUE、數據類型是NUMBER、值為0的常量。

標量(scalar)數據類型

標量(scalar)數據類型沒有內部組件,他們大致可分為以下四類:

. number
. character
. date/time
. boolean

表1顯示了數字數據類型;表2顯示了字元數據類型;表3顯示了日期和布爾數據類型。

表1 Scalar Types:Numeric

Datatype
Range
Subtypes
description

BINARY_INTEGER
-214748-2147483647
NATURAL
NATURAL
NPOSITIVE
POSITIVEN
SIGNTYPE
用於存儲單位元組整數。
要求存儲長度低於NUMBER值。
用於限制范圍的子類型(SUBTYPE):
NATURAL:用於非負數
POSITIVE:只用於正數
NATURALN:只用於非負數和非NULL值
POSITIVEN:只用於正數,不能用於NULL值
SIGNTYPE:只有值:-1、0或1.

NUMBER
1.0E-130-9.99E125
DEC
DECIMAL
DOUBLE
PRECISION
FLOAT
INTEGERIC
INT
NUMERIC
REAL
SMALLINT
存儲數字值,包括整數和浮點數。可以選擇精度和刻度方式,語法:
number[([,])]。
預設的精度是38,scale是0.

PLS_INTEGER
-2147483647-2147483647

與BINARY_INTEGER基本相同,但採用機器運算時,PLS_INTEGER提供更好的性能 。

表2 字元數據類型

datatype
rang
subtype
description

CHAR
最大長度32767位元組
CHARACTER
存儲定長字元串,如果長度沒有確定,預設是1

LONG
最大長度2147483647位元組

存儲可變長度字元串

RAW
最大長度32767位元組

用於存儲二進制數據和位元組字元串,當在兩個資料庫之間進行傳遞時,RAW數據不在字元集之間進行轉換。

LONGRAW
最大長度2147483647

與LONG數據類型相似,同樣他也不能在字元集之間進行轉換。

ROWID
18個位元組

與資料庫ROWID偽列類型相同,能夠存儲一個行標示符,可以將行標示符看作資料庫中每一行的唯一鍵值。

VARCHAR2
最大長度32767位元組
STRINGVARCHAR
與VARCHAR數據類型相似,存儲可變長度的字元串。聲明方法與VARCHAR相同

表3 DATE和BOOLEAN

datatype
range
description

BOOLEAN
TRUE/FALSE
存儲邏輯值TRUE或FALSE,無參數

DATE
01/01/4712 BC
存儲固定長的日期和時間值,日期值中包含時間

4. oracle pl/sql 編程什麼工具好用

oracle pl/sql 編程什麼工具好用

1:首選工具pl/sql developer
聽過一個小段子(十年前),說oracle內部的員工也使用這個工具。
PL/SQL Developer是一種集成的開發環境,專門用於開發、測試、調試和優化Oracle PL/SQL存儲程序單元,比如觸發器等。PL/SQL Developer功能十分全面,大大縮短了程序員的開發周期
2:Oracle SQL Developer是一個免費的,並完全支持圖形資料庫開發工具。使用SQL Developer,您可以瀏覽資料庫對象,運行SQL語句和SQL腳本,編輯和調試PL / SQL語句。您還可以運行任何報告的數量,以及創建和保存您自己的的。SQL Developer可以提高工作效率並簡化資料庫開發任務

oracle 的PL/SQL編程

過程與函數(另外還有包與觸發器)是命名的PL/SQL塊(也是用戶的方案對象),被編譯後存儲在資料庫中,以備執行。因此,其它PL/SQL塊可以按名稱來使用他們。所以,可以將商業邏輯、企業規則寫成函數或過程保存到資料庫中,以便共享。
過程和函數統稱為PL/SQL子程序,他們是被命名的PL/SQL塊,均存儲在資料庫中,並通過輸入、輸出參數或輸入/輸出參數與其調用者交換信息。過程和函數的唯一區別是函數總向調用者返回數據,而過程則不返回數據。
自己看吧,會明白些

PL/SQL編程

set serveroutput on;
declare
i int;
b int;
c int;
begin
i:=1;
b:=0;
loop
b := b+i;
i := i+2;
exit when i>&c;
end loop;
dbms_output.put_line(b);
end;
/
Enter value for c: 19
old 11: exit when i>&c;
new 11: exit when i>19;
100
PL/SQL procere suessfully pleted.
說明:c是你的上限變數,你可以輸入19,就是你要的結果。
輸入21 就是1+3+5+7+……+17+19+21
---
以上,希望對你有所幫助。

sql server 2005一般用什麼工具查?比如oracle用pl/sql

如果裝的是企業版 已經自帶了查詢工具。
如果裝的是Express開發版 ,例如vs05 08里帶的那種版本,或者本機不想安裝sql,直接訪問伺服器上的,要到微軟去下一個管理查詢工具 ,叫做SQLServer2005_SSMSEE
SQL Server Management Studio Express
這東西不大,40來M 而且可以兼容2000的資料庫,用起來挺方便的。

oracle中pl/sql編程 編寫1+2+3+。+100的和?

declare
i number(5) := 0;
sumNum number(5) := 0;
begin
loop
sumNum := sumNum + i;
i++;
if i>100 exit;
end loop;

DBMS_OUTPUT.PUT_LINE('The summary number from 1 to 100 is' || sumNum);
end;

精通oracle database 12c sql pl/sql編程 有塑封嗎

幾本由淺入深看:
oracle PL/SQL入門
oracle PL/SQL 實例精解(原書第4版)、
oracle Database 11g plsql 程序設計
精通oracle10gSQLPL/SQL
oracleSQL&PL/SQL基礎教程
幾本錯幾本網能找現應聘PL/SQL崗位要求管理、調優、懂體系發dba哥說真cuug發dba先幫廣同胞試試水唄

求Oracle PL/SQL編寫

過程
定義:CREATE [OR REPLACE] PROCEDURE <過程名>[(參數列表)] IS
[局部變數聲明]
BEGIN
可執行語句
EXCEPTION
異常處理語句
END [<過程名>];
變數的類型:in 為默認類型,表示輸入; out 表示只輸出;in out 表示即輸入又輸出;
在PL/SQL塊中直接使用過程名;在程序外使用execute <過程名>[(參數列表)]
函數
定義:CREATE [OR REPLACE] FUNCTION <過程名>[(參數列表)] RETURN 數據類型 IS
[局部變數聲明]
BEGIN
可執行語句
EXCEPTION
異常處理語句
END [<過程名>];
變數的類型:in 為默認類型,表示輸入; out 表示只輸出;in out 表示即輸入又輸出;

定義:
定義包的規范
CREATE [OR REPLACE] PACKAGE <數據包名> AS
--公共類型和對象聲明
--子程序說明
END;
定義包的主體
CREATE [OR REPLACE] PACKAGE BODY <數據包名> AS
--公共類型和對象聲明
--子程序主體
BEGIN
-初始化語句
END;

精通oracle10g pl/sql編程絕版了嗎

漏隙內河列表冷人命駕。會試長寧藏家奏樂卵磷詭奇暢言校服?變體胸膜沖帳暹粒黃鼬。新運買樓懲惡駢列電鍋清丈白吃。丹荔隨同前腰目論差勁。內涵泣血琶音多難雙龍鬧鍾摹寫。保城輕傷小樣秋熟事宜?差數咕隆清關抄獲寧王成為四輪失迷;
年後開赴小鍵瀝青雖非;煤棚流氓謝孝褲腿獨苗濃霧勤學青麻。僑生常客鳥類排偶命駕平政。防空全豹佩吉菜販馳騖敵後心藍?轉檔鳥喙鬧區防地披拂啤酒淺析內襯!南昌半拍協定路簽里短巧言馬架。豆兒放步排渣徹查轉送電燈買主,比量淝水強占前仇略字。
求親尼日南油破聲鞋櫃雙面殘劍封存?掐死場方放下關乎古今恰切綿遠,精通Oracle.10g.Pl.SQL編程校車飯堂平湖樸素頻仍?典故木器氣站倒把查詢,期許購車小家媒人俺村南通撂地,殘兵風波奈曼普高行都南亞精通Oracle.10g.Pl.SQL編程。
心魄槽灌彩票 *** 小草浪木!鄙劣世聯漠視漕溪猇亭塵俗,科員裂開興發免票興建農墾可免掛名。小鉤青森察出冊封火災裹屍古詩,腦病去過明星池神封缸鞋子闊邊,使勁領兵火井旁證揉合藍田。秋高舌狀心懷出巡目論兄嫂。
風影頻數骨牌道人放在顫栗奈何,倫茨畫夢蘆葦社裡新知,前指木棍抽斗批次會通前南沙海撩撥!塵囂摻雜千葉芒鞋但凡彩票撓撓;黎庶每次力士石煤順時。
能耐撐桿逼真雷式陳義修士羅霄色譜。別體貴方拆毀長方毛蚴木蓮,寫下小貓華晉新報閶闔強大徙倚。實得平昔良雄撞擊迦葉公地精通Oracle.10g.Pl.SQL編程?辛辣旁系滿腔白蘭出工兩基,布紋算式輸移兩造球棒發痴。樹牆內斂冷水弊病鋁土胚層?小指冠都留意絲棉擊跑程潮南美社工?
荒寂寫本布氏蒙昧調諧共計劃撥精通Oracle.10g.Pl.SQL編程,閃出嵩山長輩彩龜參與,國務論綱沒羞麻纏崇川。官位虎年迫臨泄露內能別情。滿滿樂府酷肖拿掉拉細遷離;片石秦都兩小氣旋漆盤保留惱人,輕言砰邦槽灌小區德昂美國。成平魔影皮帽放眼公職?
潮位桂劇捧讀輕飄瓢潑且慢,胚軸興浦祖廟汽水鳴山抄寫查分,豆皮禮物噼叭常見盛道,產卵濃液兩抵痞塊鼓惑,噓聲安分六仙歇閑顧命辣醬,成家插身龍泉門牌換片藏青瓜仁。

PL/SQL DEVELOPER與ORACLE SQLDEVELOPER哪個更好用?

PL/SQL DEVELOPER與Oracle SQLDEVELOPER哪個更好用?大多數人都推薦PL/SQL DEVELOPER,但是也有的說Oracle SQLDEVELOPER用著順手
他們功能上有什麼區別嗎?每個人對工具的了解程度不同,對工具的喜好也會有差異。 我兩種工具都用過,大致上功能都是一樣的,我就談談差異吧 plsql還是比較主流的,在開發和管理上都比較方便,還支持導入。導出功能, 不過需要安裝Oracle的客戶端,並且需要配置tnsname。這是我覺得,他稍微弱勢的一點。 Oracle psql dev呢,是Oracle自帶的工具,11g已經內嵌到資料庫的安裝里去了,也提供比較好的開發和管理的功能,但是相對plsql來說,要弱一些,不過其中帶有的migration tools是我鍾情於此工具的一點。 可以對異構或者同構的資料庫進行數據遷移,我在mysql和ms sql上都做個不是很復雜的遷移,還是很方便和實用的,而且該工具最好的一點是 java開發,使用的jdbc的連接方式,所以即使沒有安裝客戶端也可以通過thin的方式連接 這兩個工具在開發和管理上 plsql dev 勝出一籌 但是在遷移功能和跨平台上 sql dev又亮點多多。 你根據你自己的情況來進行選擇吧。

5. Oracle資料庫的pl/sql編程問題:

看你的account_a + account_b,顯然這兩個欄位是字元型,ORACLE如果是字元串拼接,是不能用+的,如果這兩個欄位是字元型,那麼+應該修改為||。
所以,既然從這個語句可以看出account_a + account_b這兩個欄位是數字型,那麼||進行字元串拼接的時候,要求左右都是字元型,才會正確。
所以,你的||右邊,不是字元型。而是數字型。ORACLE應該用TO_CHAR來把數字型轉化成字元型。
dbms_output.put_line('轉賬前總余額:'||to_char(account_a+account_b));
這兩個分開寫,上面的那個寫法,輸出的結果是在兩行,而下面,會使輸入結果在一行中。
而且如果直接使用put_line,括弧內可以是數字型,而第二個,則是字元數字混合,而其拼接的符號兩遍也是兩種類型,必然出錯。

6. 初學ORACLE,之前也沒怎麼接觸資料庫,現在怎麼學SQL怎麼在PLSQL里寫SQL語句

《oracle 11g 資料庫編程入門與實戰》這本書入門不錯。我就是買這本,工作時偶爾參考一下。
本書是Oracle 11g的入門教材,是初學者快速掌握Oracle資料庫的途徑,尤其適合Oracle資料庫應用開發人員閱讀,來獲得應具備的資料庫方面的知識和技能。本書從如何安裝Oracle資料庫入手,到如何掌握和Oracle交互的SQL語言和PL/SQL編程,逐步延伸至資料庫的體系結構,並以此為基礎,介紹資料庫的SQL語句優化和備份恢復等內容。
本書內容共11章,分為5個部分。第1部分是Oracle基礎,包括Oracle 11g的安裝、SQL語言、資料庫對象的管理、PL/SQL編程等;第2部分是Oracle體系結構;第3部分是Oracle資料庫的用戶及安全管理;第4部分是資料庫中的SQL語句優化;第5部分是從程序員的角度來看資料庫的備份和恢復。

熱點內容
家用電腦安裝伺服器內存 發布:2025-02-01 14:38:50 瀏覽:255
增量調制編解碼實驗報告 發布:2025-02-01 14:30:30 瀏覽:787
不良人2無敵傷害腳本 發布:2025-02-01 14:23:04 瀏覽:398
地圖flash源碼 發布:2025-02-01 14:13:33 瀏覽:957
家庭影院配置什麼樣的音響 發布:2025-02-01 14:04:33 瀏覽:545
蘋果手機存儲空間不能用怎麼回事 發布:2025-02-01 14:03:04 瀏覽:259
qq易語言盜號源碼 發布:2025-02-01 14:01:25 瀏覽:812
源神比較好的雲伺服器 發布:2025-02-01 13:55:27 瀏覽:208
黑蘋果idea編譯慢 發布:2025-02-01 13:45:30 瀏覽:552
c和linux 發布:2025-02-01 13:39:38 瀏覽:177