oracle 基礎溫習之 儲存過程
建立一個儲存過程的語法:
create [or replace] procedure 過程名
[(引數名 [IN | OUT | IN OUT] 資料型別 ...]
{IS | AS}
{說明部分}
begin
語句序列
[exception 例外處理]
end [過程名]
例子:
建立一個新增學生的儲存過程。
呼叫:
引數型別:
這裡肯定是傳入引數 IN:
如果換成傳出引數OUT,會怎麼樣了?
返回error:
ORA-06550: 第 2 行, 第 17 列:
PLS-00363: 表示式 '0211' 不能用作賦值目標
ORA-06550: 第 2 行, 第 24 列:
PLS-00363: 表示式 '高五' 不能用作賦值目標
ORA-06550: 第 2 行, 第 33 列:
PLS-00363: 表示式 '男' 不能用作賦值目標
ORA-06550: 第 2 行, 第 39 列:
PLS-00363: 表示式 '21' 不能用作賦值目標
ORA-06550: 第 2 行, 第 42 列:
PLS-00363: 表示式 'cs' 不能用作賦值目標
ORA-06550: 第 2 行, 第 2 列:
PL/SQL: Statement ignored
如果換成傳出引數IN OUT,會怎麼樣了?
報錯誤:
第 2 行出現錯誤:
ORA-06550: 第 2 行, 第 17 列:
PLS-00363: 表示式 '0211' 不能用作賦值目標
ORA-06550: 第 2 行, 第 24 列:
PLS-00363: 表示式 '高五' 不能用作賦值目標
ORA-06550: 第 2 行, 第 33 列:
PLS-00363: 表示式 '男' 不能用作賦值目標
ORA-06550: 第 2 行, 第 39 列:
PLS-00363: 表示式 '21' 不能用作賦值目標
ORA-06550: 第 2 行, 第 42 列:
PLS-00363: 表示式 'cs' 不能用作賦值目標
ORA-06550: 第 2 行, 第 2 列:
PL/SQL: Statement ignored
create [or replace] procedure 過程名
[(引數名 [IN | OUT | IN OUT] 資料型別 ...]
{IS | AS}
{說明部分}
begin
語句序列
[exception 例外處理]
end [過程名]
-
CREATE TABLE Student
-
(Sno CHAR(9) PRIMARY KEY,
-
Sname CHAR(20) NOT NULL,
-
Ssex CHAR(4),
-
Sage SMALLINT,
-
Sdept CHAR(20)) tablespace gaospace;
-
-
例子:
建立一個新增學生的儲存過程。
-
create or replace procedure addnewstudent(
-
p_sno student.sno%type,
-
p_sname student.sname%type,
-
p_ssex student.ssex%type,
-
p_sage student.sage%type,
-
p_sdept student.sdept%type)
-
As
-
begin
-
insert into student values(p_sno, p_sname, p_ssex, p_sage, p_sdept);
-
commit;
- end addnewstudent;
呼叫:
-
begin
-
addnewstudent('0209','趙利','男',21,'cs');
- end;
引數型別:
這裡肯定是傳入引數 IN:
-
create or replace procedure addnewstudent2(
-
p_sno IN student.sno%type,
-
p_sname IN student.sname%type,
-
p_ssex IN student.ssex%type,
-
p_sage IN student.sage%type,
-
p_sdept IN student.sdept%type)
-
As
-
begin
-
insert into student values(p_sno, p_sname, p_ssex, p_sage, p_sdept);
-
commit;
-
end addnewstudent2;
-
-
-
begin
-
addnewstudent2('0210','趙五','男',21,'cs');
- end;
如果換成傳出引數OUT,會怎麼樣了?
-
create or replace procedure addnewstudent3(
-
p_sno OUT student.sno%type,
-
p_sname OUT student.sname%type,
-
p_ssex OUT student.ssex%type,
-
p_sage OUT student.sage%type,
-
p_sdept OUT student.sdept%type)
-
As
-
begin
-
insert into student values(p_sno, p_sname, p_ssex, p_sage, p_sdept);
-
commit;
-
end addnewstudent3;
-
-
-
begin
-
addnewstudent3('0211','高五','男',21,'cs');
- end;
返回error:
ORA-06550: 第 2 行, 第 17 列:
PLS-00363: 表示式 '0211' 不能用作賦值目標
ORA-06550: 第 2 行, 第 24 列:
PLS-00363: 表示式 '高五' 不能用作賦值目標
ORA-06550: 第 2 行, 第 33 列:
PLS-00363: 表示式 '男' 不能用作賦值目標
ORA-06550: 第 2 行, 第 39 列:
PLS-00363: 表示式 '21' 不能用作賦值目標
ORA-06550: 第 2 行, 第 42 列:
PLS-00363: 表示式 'cs' 不能用作賦值目標
ORA-06550: 第 2 行, 第 2 列:
PL/SQL: Statement ignored
如果換成傳出引數IN OUT,會怎麼樣了?
-
create or replace procedure addnewstudent5(
-
p_sno in out student.sno%type,
-
p_sname in out student.sname%type,
-
p_ssex in out student.ssex%type,
-
p_sage in out student.sage%type,
-
p_sdept in out student.sdept%type)
-
As
-
begin
-
insert into student values(p_sno, p_sname, p_ssex, p_sage, p_sdept);
-
commit;
-
end addnewstudent5;
-
-
-
begin
-
addnewstudent5(\'0211\',\'高五\',\'男\',21,\'cs\');
- end;
報錯誤:
第 2 行出現錯誤:
ORA-06550: 第 2 行, 第 17 列:
PLS-00363: 表示式 '0211' 不能用作賦值目標
ORA-06550: 第 2 行, 第 24 列:
PLS-00363: 表示式 '高五' 不能用作賦值目標
ORA-06550: 第 2 行, 第 33 列:
PLS-00363: 表示式 '男' 不能用作賦值目標
ORA-06550: 第 2 行, 第 39 列:
PLS-00363: 表示式 '21' 不能用作賦值目標
ORA-06550: 第 2 行, 第 42 列:
PLS-00363: 表示式 'cs' 不能用作賦值目標
ORA-06550: 第 2 行, 第 2 列:
PL/SQL: Statement ignored
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26435490/viewspace-1077840/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle儲存過程乾貨(一):儲存過程基礎Oracle儲存過程
- Oracle 基礎 ----procedure(儲存過程)Oracle儲存過程
- SQL Server基礎之儲存過程SQLServer儲存過程
- oracle 儲存過程學習Oracle儲存過程
- Oracle儲存過程學習Oracle儲存過程
- SQL Server基礎:儲存過程SQLServer儲存過程
- Oracle Pl/SQL 之 儲存過程OracleSQL儲存過程
- Oracle 基礎溫習7 之 遊標Oracle
- Oracle儲存過程Oracle儲存過程
- Mysql儲存過程基礎(案例+程式碼)MySql儲存過程
- MyBatis基礎:MyBatis呼叫儲存過程(6)MyBatis儲存過程
- Oracle 儲存過程加密之wrap工具Oracle儲存過程加密
- Oracle 基礎溫習3Oracle
- Oracle儲存過程-1Oracle儲存過程
- oracle的儲存過程Oracle儲存過程
- Oracle儲存過程例子Oracle儲存過程
- Oracle建立儲存過程Oracle儲存過程
- oracle plsql儲存過程OracleSQL儲存過程
- ORACLE 儲存過程示例Oracle儲存過程
- MySQL和Oracle對比之儲存過程MySqlOracle儲存過程
- MySQL之儲存過程MySql儲存過程
- 從sybase的儲存過程轉向oracle的儲存過程儲存過程Oracle
- oracle 基礎溫習8 包Oracle
- 原創:oracle 儲存過程Oracle儲存過程
- oracle 儲存過程批次提交Oracle儲存過程
- [Flashback]Oracle flashback儲存過程Oracle儲存過程
- oracle的儲存過程格式Oracle儲存過程
- java 呼叫oracle 儲存過程JavaOracle儲存過程
- oracle--08儲存過程Oracle儲存過程
- 儲存過程學習教材儲存過程
- MyBatis 示例之儲存過程MyBatis儲存過程
- oracle10g_儲存過程學習小記Oracle儲存過程
- oracle儲存過程書寫格式Oracle儲存過程
- C#呼叫 oracle儲存過程C#Oracle儲存過程
- Oracle儲存過程基本語法Oracle儲存過程
- [Procedure]Oracle之分頁儲存過程Oracle儲存過程
- oracle 儲存過程遊標的使用Oracle儲存過程
- C#呼叫Oracle儲存過程C#Oracle儲存過程