當前位置:首頁 » 存儲配置 » oraclesql執行存儲過程

oraclesql執行存儲過程

發布時間: 2024-04-24 14:28:07

① 請問oracle怎麼執行存儲過程

我試驗過了,就是exec 存儲過程名或者execute 存儲過程名(參數),請你在仔細確認一下,你的存儲過程名寫沒寫對呀,或者你沒有進入sqlplus中?

----
以上,希望對你能有幫助。

② oracle存儲過程sql執行超時

oracle存儲過程sql執行超時要優化系統。優化系統步驟:
1、參數默認是30秒,執行的sql超過30秒就會報超時錯誤。
2、優化sql讓執行更快。
3、修改這個參數,在調用執行SQL語句之前。Oracle公司(甲骨文)是全球最大的信息管理軟體及服務供應商,成立於1977年,總部位於美國加州Redwoodshore,面向全球開放oracle認證,Oracle開發的關系資料庫產品因性能卓越而聞名,Oracle資料庫產品為財富排行榜上的前1000家公司所採用。

③ 如何在oracle 觸發器中執行mssql資料庫中的存儲過程的相關推薦

1:什麼叫存儲過程?
在oracle中,可以在資料庫中定義子程序,這種程序塊叫存儲過程(procere),它存放在數據字典中,可以在不同用戶和應用程序中共享,並可以實現程序的優化和重用。

2:存儲過程的有點?
 過程運行在伺服器端,執行速度快
 過程執行一次後代碼就駐留在高速緩存中,在以後的操作中,直接調用緩存數據。
 確保資料庫的安全性,可以不授權用戶直接訪問應用程序中的一些表,而是授權用戶執行訪問資料庫的過程。
 自動完成需要預先執行的任務,過程可以在系統啟動時自動運行。、

3:存儲過程的創建和執行
用戶存儲過程只能定義在當前資料庫中,可以使用sql語句或OEM創建。
默認情況下,用戶創建的存儲過程歸登錄資料庫的用戶所擁有,DBA可以把許可授權給其他用戶。
Sql命令創建存儲過程
CREATE procere 過程名
【(parameter parameter_mode date_type,….n)】
IS| AS
BEGIN
SQL_STATEMENT
END 過程名
其中
Parameter表示過程的參數。
parameter_mode:參數的類型,過程參數和函數參數一樣,有三種類型IN,OUT,IN OUT
IN 表示參數是輸入給過程的。
OUT表示採納數載過程中被賦值,可以傳給過程的外部。
IN OUT表示可以傳內,可以傳外。

調用存儲過程
直接輸入存儲過程的名字可以執行一個已經定義的存儲過程。

存儲過程的編輯修改
修改存儲過程雖然可以和修改視圖一樣,用ALTER procere,但是他是用來重新編譯和驗證用的,如果要修改過程定義,建議還是用create or replace。

存儲過程的刪除
當某個過程不再需要的時候,應該將其從內存中刪除,以釋放它佔用的資源。
Drop procere 存儲過程名。
Drop procere update_info.

觸發器
觸發器(trigger)是一些過程,與表聯系緊密,用於保護表中的數據,當一個基表被修改時,觸發器自動就會執行。例如出入其可以實現多個表間數據的一致性和完整性。
一般情況下,對表數據的操作有增刪查改,維護數據的觸發器也可以分為多種,每張基表最多可以建立12個觸發器。
1:Before insert 2:before insert fo each row; 3:after inert
4:after insert for each row 5:before update 6:before update for each row
7:after update 8:after update for each row; 9:before delete;
10:before delete for each row 11:after delete 12:after delete for each row.

利用sql語句創建觸發器
語法規則
Create or replace trigger 觸發器名
{before| after| instead of}
{delete 【or insert】【or update】【of column ….n 】}
On 表名|視圖名
【for each row 】[]where condition]]
Sql_statement[,,,n]

參數說明
Instead of :指定在創建替代觸發器。
Of column 指定在哪些列上進行觸發。。。
創建觸發器的限制
1:觸發器中有效的語句可以包括DML語句,但是不能包括DDL,rollback,commit
,savepoint都不適用。

④ oracle中怎麼執行帶有輸出參數的存儲過程,在程序中我知道怎麼調用,

1、新建一個存儲過程(Procere)。

⑤ oracle 在pl/sql 工具中怎麼運行一個存儲過程

1、登錄到指定的資料庫,然後左側列表找到proceres。

3、點齒輪運行,然後輸入參數運行,如果沒有參數,直接運行就可以。

⑥ oracle 中用什麼命令執行一個帶參數的存儲過程

具體如下:

1、第一步,創建一個新的存儲過程,見下圖,轉到下面的步驟。

⑦ ORACLE 存儲過程是什麼 它的用處,好處是什麼概念性的東西多點。。

定義:存儲過程(Stored Procere )是一組為了完成特定功能的SQL 語句集,經編譯後存儲在資料庫中。用戶通過指定存儲過程的名字並給出參數(如果該存儲過程帶有參數)來執行它。存儲過程是資料庫中的一個重要對象,任何一個設計良好的資料庫應用程序都應該用到存儲過程。
存儲過程是由流控制和SQL 語句書寫的過程,這個過程經編譯和優化後存儲在資料庫伺服器中,應用程序使用時只要調用即可。在ORACLE 中,若干個有聯系的過程可以組合在一起構成程序包。
優點:
1.存儲過程只在創造時進行編譯,以後每次執行存儲過程都不需再重新編譯,而一般SQL語句每執行一次就編譯一次,所以使用存儲過程可提高資料庫執行速度。
2.當對資料庫進行復雜操作時(如對多個表進行Update、Insert、Query、Delete時),可將此復雜操作用存儲過程封裝起來與資料庫提供的事務處理結合一起使用。
3.存儲過程可以重復使用,可減少資料庫開發人員的工作量。
4.安全性高,可設定只有某用戶才具有對指定存儲過程的使用權。

簡單說,你在你的機器上寫了個存儲過程,這個存儲過程像那些表裡的數據一樣被放在遙遠的資料庫伺服器當中,但是它又是可執行的代碼,其他能連到資料庫伺服器的用戶,可以調用你寫的存儲過程
它的作用是隱藏細節,就是說,你寫的存儲過程代碼可能很復雜,但是其他人調用它卻很簡單,不用具體知道它是如何做的,且一次能完成多個指令

oracle有系統存儲過程和自定義存儲過程2種存儲過程。
系統存儲過程就是由oracle預先提供的一組完成特定功能的存儲過程,安裝完oracle就有了。
自定義存儲過程就是存在oracle資料庫里由一組plsql語句組成的自定義過程(procere)。它可以供其它oracle自定義存儲過程、自定義函數和job調用或者由客戶端程序調用。

⑧ oracle SQL語句中怎麼樣調用存儲過程

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

熱點內容
電腦改群暉伺服器 發布:2024-05-06 07:57:19 瀏覽:38
冒險島忘記伺服器了怎麼查 發布:2024-05-06 07:53:42 瀏覽:240
茶葉資料庫 發布:2024-05-06 07:52:16 瀏覽:311
伺服器web訪問埠怎麼查看 發布:2024-05-06 07:35:28 瀏覽:226
蘋果id改密碼要什麼條件 發布:2024-05-06 07:34:47 瀏覽:805
鎮江節點伺服器測試ip 發布:2024-05-06 07:15:05 瀏覽:540
sqlserver表格 發布:2024-05-06 07:09:54 瀏覽:612
雪鐵龍凡爾賽選哪個配置 發布:2024-05-06 06:56:04 瀏覽:571
福睿斯配置怎麼樣 發布:2024-05-06 06:50:16 瀏覽:103
微生物資料庫 發布:2024-05-06 06:47:33 瀏覽:605