建立儲存過程小提示tip_plsql_小經驗
SQL> create or replace procedure p_find_question_by_title(v_title varchar2,o_result out sys_refcursor)
2 --線上答疑顯示所有問題
3
4 --顯示的列:學段,科目,題目內容,提問者,瀏覽數,狀態,更新時間
5 --涉及到的表:問題資訊,問題統計資訊,學段科目資訊
6 as
7 v_sqlstr varchar2(4000);
8 begin
9 v_sqlstr:='select
10 xk.teachstage,--學段
11 xk.subjectname,--科目
12 qi.question_title,--題目內容
13 qi.question_id,--提問者
14 qs.browse_count,--瀏覽數
15 qi.question_status,--狀態
16 qs.latest_update_time --更新時間
17 from Q_QUESTIONINFO qi,Q_QUESTION_STAT qs,E_SUBJECTINFO xk
18 where qi.questionid=qs.questionid and qi.subject_id=xk.subjectid
19 where question_title like ":title"
20 ';
21 open o_result for v_sqlstr using v_title;
22
23 end;
24 /
2 --線上答疑顯示所有問題
3
4 --顯示的列:學段,科目,題目內容,提問者,瀏覽數,狀態,更新時間
5 --涉及到的表:問題資訊,問題統計資訊,學段科目資訊
6 as
7 v_sqlstr varchar2(4000);
8 begin
9 v_sqlstr:='select
10 xk.teachstage,--學段
11 xk.subjectname,--科目
12 qi.question_title,--題目內容
13 qi.question_id,--提問者
14 qs.browse_count,--瀏覽數
15 qi.question_status,--狀態
16 qs.latest_update_time --更新時間
17 from Q_QUESTIONINFO qi,Q_QUESTION_STAT qs,E_SUBJECTINFO xk
18 where qi.questionid=qs.questionid and qi.subject_id=xk.subjectid
19 where question_title like ":title"
20 ';
21 open o_result for v_sqlstr using v_title;
22
23 end;
24 /
Procedure created.
SQL> var x refcursor;
SQL> exec p_find_question_title('zxy',:x);
BEGIN p_find_question_title('zxy',:x); END;
SQL> exec p_find_question_title('zxy',:x);
BEGIN p_find_question_title('zxy',:x); END;
*
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00201: identifier 'P_FIND_QUESTION_TITLE' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00201: identifier 'P_FIND_QUESTION_TITLE' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
SQL> exec p_find_question_title('zxy',:x);
BEGIN p_find_question_title('zxy',:x); END;
*
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00201: identifier 'P_FIND_QUESTION_TITLE' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00201: identifier 'P_FIND_QUESTION_TITLE' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
SQL> exec p_find_question_by_title('zxy',:x);
BEGIN p_find_question_by_title('zxy',:x); END;
*
ERROR at line 1:
ORA-00933: SQL command not properly ended
ORA-06512: at "PD.P_FIND_QUESTION_BY_TITLE", line 21
ORA-06512: at line 1
ERROR at line 1:
ORA-00933: SQL command not properly ended
ORA-06512: at "PD.P_FIND_QUESTION_BY_TITLE", line 21
ORA-06512: at line 1
小結:
1,建立儲存過程成功,只是說明建立儲存過程的語法是成功的
2,不會驗證儲存過程內部的業務處理邏輯的sql是否正常,是否可以成功執行
3,所以一定在建立成功後,要手工呼叫,進行除錯排錯,最好顯式執行下儲存過程的sql是否成功執行
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-667028/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle建立儲存過程Oracle儲存過程
- SQL 建立儲存過程PROCEDURESQL儲存過程
- MySql儲存過程—2、第一個MySql儲存過程的建立MySql儲存過程
- 儲存過程編寫經驗和優化措施儲存過程優化
- laravel建立一個儲存過程Laravel儲存過程
- MySQL 建立儲存過程報錯MySql儲存過程
- 儲存過程編寫經驗和最佳化措施儲存過程
- mysql儲存過程小試牛刀MySql儲存過程
- SqlServer儲存過程的建立與使用SQLServer儲存過程
- MySQL儲存過程的建立和使用MySql儲存過程
- 用儲存過程動態建立表儲存過程
- ORACLE儲存過程中建立子過程的測試!Oracle儲存過程
- Oracle儲存過程編寫經驗和最佳化措施Oracle儲存過程
- 儲存過程編寫經驗和最佳化措施(轉)儲存過程
- c#呼叫儲存過程小記C#儲存過程
- MySQL儲存過程詳解 mysql 儲存過程MySql儲存過程
- 建立儲存過程編譯無效物件儲存過程編譯物件
- MySQL 5.5 建立儲存過程和函式MySql儲存過程函式
- 儲存過程儲存過程
- db2刪除已經儲存的表儲存過程DB2儲存過程
- Oracle儲存過程優化小實踐Oracle儲存過程優化
- Stored Procedure(儲存過程)編寫經驗和最佳化措施 (轉)儲存過程
- Oracle:建立JOB定時執行儲存過程Oracle儲存過程
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- MySQL儲存過程詳解 mysql 儲存過程linkMySql儲存過程
- Oracle儲存過程乾貨(一):儲存過程基礎Oracle儲存過程
- 儲存過程與儲存函式儲存過程儲存函式
- Oracle儲存過程Oracle儲存過程
- 使用儲存過程儲存過程
- sybase儲存過程儲存過程
- java儲存過程Java儲存過程
- 管理儲存過程儲存過程
- 呼叫儲存過程儲存過程
- mysql 儲存過程MySql儲存過程
- SQLSERVER儲存過程SQLServer儲存過程
- MYSQL學習與實驗(八)——儲存過程實驗MySql儲存過程
- mysql儲存過程經典例項詳解MySql儲存過程
- 近期編寫tcbs儲存過程小記(1)儲存過程