最簡單的存儲過程
實現的方法和詳細的操作步驟如下:
1、第一步,雙擊plsql圖標進入登錄界面,輸入用戶名和密碼,然後傳輸資料庫實例名稱,如下圖所示,然後進入下一步。
2. 何為存儲過程,舉例說明
存儲過程,實際就是一段寫在資料庫中的代碼。。
由於此段資料庫操作代碼由伺服器完成,而客戶端只是進行簡單的參數提交,所以,可以有效的利用伺服器的強勁而減小對客戶機的負合。
如:你想插入一條數據到資料庫。
雖然你的要求是,先檢查表裡面是否己存在該項。
如果不存在就Insert,如果存在就UPDATE。
這個時候,你就可以把這個判斷用存儲過程來寫。
你的程序只要提示你想要保存到資料庫裡面的東西即可。
下面就是一個簡單的存儲過程。
CREATE PROCEDURE [insert_A_Employees]
(@fWorkNo [int],
@fWorkName [char](10),
@fDeptName [varchar](20),
@fGroupName [varchar](20),
@fRecordDate [datetime])
AS
declare @iCount int
select @iCount = count(*) from A_EMPLOYEES where @fWorkNo = fWORKNO --統計該工號在資料庫的數量賦值給 @iCount
if @iCount = 0 --如果資料庫中不存在該工號
begin
INSERT INTO [CLKQ].[dbo].[A_Employees] --則插入數據
( [fWorkNo],
[fWorkName],
[fDeptName],
[fGroupName],
[fRecordDate])
VALUES
( @fWorkNo,
@fWorkName,
@fDeptName,
@fGroupName,
@fRecordDate)
return 1 --返回一個標識
end else begin --否則則更新數據
update [CLKQ].[dbo].[A_Employees]
set [fWorkName]=@fWorkName,
[fDeptName]=@fDeptName,
[fGroupName]=@fGroupName,
[fRecordDate]=@fRecordDate
where [fWorkNo]=@fWorkNo
return 0 --返回一個標識
end
GO
此時你只要在客戶端程序提供:
@fWorkNo ,
@fWorkName ,
@fDeptName ,
@fGroupName ,
@fRecordDate
這幾個值就行了。。
其它處理過程就由伺服器方處理了。
以上是以 SQL 資料庫為例。。。
ACCESS 等資料庫沒有此功能。
3. sqlserver2008 寫一個簡單的存儲過程,兩個輸入參數,調用遠程另一個存儲過程並傳入這兩個參數。
--on serverA,test_A 資料庫
Create proc P_test_A @A int,@B int
AS
select @A+@B
--on ServerB,test_B 資料庫
Create proc P_Test_B @A int,@B int
AS
exec [serverA].[test_A].[dbo].P_test_A @A,@B
以上示例為在ServerB的test_b資料庫上創建存儲過程調用server_a上的test_a資料庫中P_test_A存儲過程,在執行前需在Server_B上添加鏈接伺服器server_a
4. 簡單通俗的解釋一下存儲過程是干什麼的
存儲過程..完成一定功能的可重復調用的程序。
你可以這樣理解:
你使用手機撥打A同事的手機,需要一個一個號碼的輸入,然後才能撥打
而如果你把這個號碼設置為快速撥號,那麼你只要長按1(自己設置的數字鍵)就可以直接撥打電話了
把這個號碼設置為快速撥號的過程你就可以理解為創建存儲過程。
汗..語言表達能力不足,不能完整的表達出我的意思,你看著理解吧。
5. 一個簡單的oracle存儲過程的問題,begin和end之間具體能放那些東西
oracle存儲過程中,begin和end中存放的存儲過程的主體。
Oracle存儲過程基本語法 存儲過程:
CREATEORREPLACEPROCEDURE存儲過程名
IS
BEGIN
NULL;
END;
行1:
CREATE OR REPLACE PROCEDURE 是一個SQL語句通知Oracle資料庫去創建一個叫做skeleton存儲過程, 如果存在就覆蓋它;
行2:
IS關鍵詞表明後面將跟隨一個PL/SQL體。
行3:
BEGIN關鍵詞表明PL/SQL體的開始。
行4:
NULL PL/SQL語句表明什麼事都不做,這句不能刪去,因為PL/SQL體中至少需要有一句;
行5:
END關鍵詞表明PL/SQL體的結束
6. 存儲過程怎麼寫啊
//創建存儲過程
CREATE PROCEDURE userData(
IN id INT
)
BEGIN
SELECT * from userdata WHERE userflag = id;
END;
其中IN是傳進去的變數;
drop procere userData;//銷毀這個存儲過程。
call userData(2) //調用存儲過程。
(6)最簡單的存儲過程擴展閱讀:
sql中的存儲過程及相關介紹:
CREATE PROCEDURE [擁有者.]存儲過程名[;程序編號]
[(參數#1,…參數#1024)]
[WITH
{RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION}
]
[FOR REPLICATION]
AS 程序行
其中存儲過程名不能超過128個字。每個存儲過程中最多設定1024個參數
(SQL Server 7.0以上版本),參數的使用方法如下:
@參數名數據類型[VARYING] [=內定值] [OUTPUT]。
每個參數名前要有一個「@」符號,每一個存儲過程的參數僅為該程序內部使用,參數的類型除了IMAGE外,其他SQL Server所支持的數據類型都可使用。
[內定值]相當於我們在建立資料庫時設定一個欄位的默認值,這里是為這個參數設定默認值。[OUTPUT]是用來指定該參數是既有輸入又有輸出值的,也就是在調用了這個存儲過程時,如果所指定的參數值是我們需要輸入的參數。
同時也需要在結果中輸出的,則該項必須為OUTPUT,而如果只是做輸出參數用,可以用CURSOR,同時在使用該參數時,必須指定VARYING和OUTPUT這兩個語句。
參考資料來源:網路-儲存過程