1. 程式人生 > >oracle的儲存過程寫法以及呼叫,各種遊標的介紹(靜態,動態,sys遊標的區別)

oracle的儲存過程寫法以及呼叫,各種遊標的介紹(靜態,動態,sys遊標的區別)

1、plsql下執行不帶引數的儲存過程

     CALL  getDeptCount();




2、plsql下執行帶引數的儲存過程DECLARE,必須使用程式碼段,並且可以列印其中的輸出引數

salary varchar2(100);
BEGIN
getSalaryByEmpNo('測試角色',salary);
DBMS_OUTPUT.PUT_LINE(salary);
END;



3、plsql下執行帶引數的儲存過程DECLARE,必須使用程式碼段,返回遊標,但是遊標不能再下面輸出出來,想看遊標可以通過右鍵----》test執行後,點開cursor來看
DECLARE
rolename varchar2(100);
creater varchar2(100);
rs SYS_REFCURSOR;
BEGIN
GET_out_CURSOR();

END;


call GET_OUT_CURSOR2();




DECLARE
rs SYS_REFCURSOR;
BEGIN
 GET_OUT_CURSOR3(rs);

END;

4、sqlplus執行儲存過程,如果想看儲存過程輸出的遊標結果,可以使用sqlplus來執行儲存過程

variable p refcursor;
execute PollutionStatic.getPollutionStatic(:p);
print p;
在sqlplus的oracle使用者下輸出以上命令,可以打印出來輸出結果



相關推薦

oracle儲存過程寫法以及呼叫各種遊標介紹靜態動態sys遊標區別

1、plsql下執行不帶引數的儲存過程      CALL  getDeptCount(); 2、plsql下執行帶引數的儲存過程DECLARE,必須使用程式碼段,並且可以列印其中的輸出引數 salary varchar2(100); BEGIN getSalaryByE

ORACLE儲存過程建立和呼叫

主要總結下遇到個幾個問題: 1、在業務程式碼執行時,賦值給一個變數,需要使用:=,而不是=; 2、在plsql中執行完建立語句,呼叫報錯 解決辦法: 右鍵編輯儲存過程,在控制檯中可以看到報錯資訊,點選錯誤資訊,可以看到出錯程式碼被標紅 3、在查詢資料

mysql 儲存過程寫法以及函式說明

create PROCEDURE proc_insertYJMX( in_ptzf varchar(1000), -- 普通罪犯編號 如1,2,2,3,最後要拼接一個逗號 in_tgzf varchar(1000), -- 特崗罪犯編號 如1,2,2,3,最後要拼

Oracle 儲存過程語法以及遊標的定義及INTO語法的使用

儲存過程建立語法: create [or replace] procedure 儲存過程名(param1 in type,param2 out type) as 變數1 型別(值範圍); 變數2 型別(值範圍); Begin Select count(*) in

oracle儲存過程編譯死掉的原因及解決

一次解決session無法完全刪除問題的全過程Linux             作者:資料庫 文章來源:資料庫技術 點選數:7 更新時間:2006-4-8                          開發環境:win2000server+oracle9i+delphi

java中呼叫Oracle儲存過程出現異常:java.sql.SQLException: ORA-00928: 缺失 SELECT 關鍵字(已解決)

在java中呼叫Oracle儲存過程時,出現異常:java.sql.SQLException: ORA-00928: 缺失 SELECT 關鍵字 //java程式碼 @Test public void testProcedure(){

mybatis 呼叫oracle儲存過程傳參、返回遊標的值獲取--示例

1,dao層程式碼 Integer currentlq_fsx = getSqlSession().selectOne("lqMapper.maxscore"); Map<String,Object> map = new HashMap<String,O

Oracle儲存過程物件packageprocedure etc... 呼叫許可權 ----20180206

在一些技術論壇裡面,常常看到有朋友問這種問題: 為什麼我的使用者具有DBA許可權,卻無法在儲存過程裡面建立一張普通表呢?  下面就結合具體案例來談談這個問題:  SQL> conn eric/eric; Connected.SQL> select * from dba_role_privs whe

bat批處理指令碼呼叫oracle儲存過程系統定時呼叫指令碼

編寫一個bat批處理指令碼呼叫oracle儲存過程,並設定系統定時完成該指令碼任務,有以下幾個步驟: 1. 先編寫一個call.sql檔案: set timing on; DECLARE o_UserID varchar2(20); BEGIN Packag

C#呼叫ORACLE儲存過程返回結果集

Oracle中scott使用者下建立儲存過程: (注:從9i開始有了sys_refcursor這種型別,在以前的Oracle版本中需要使用REF CURSOR,並且還需放在一個程式包中) create or replace procedure sp_getdept (result

Oracle 儲存過程中傳送郵件並支援使用者驗證 中文標題和內容

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Oracle儲存過程以及遊標

一.儲存過程 1、儲存過程定義 所謂儲存過程(Stored Procedure),就是一組用於完成特定資料庫功能的SQL語句集,該SQL語句集經過 編譯後儲存在資料庫系統中。在使用時候,使用者通過指定已經定義的儲存過程名字並給出相應的儲存過程引數 來呼叫並執行它,從而完成一個或一系列的資料庫

oracle儲存過程寫法

create or replace procedure 要建立的儲存過程名稱(入參a in varchar2, 出參b out varchar2) is 變數c varcha

Oracle 儲存過程觸發器事務

部落格園 首頁 新隨筆 聯絡 管理 訂閱 隨筆- 75  文章- 0  評論- 0  Oracle 儲存過程,觸發器,事務,鎖 1.1儲存過程   儲存過程是一種命名的PL/SQL程式塊,他可以有引數,也可以有若干

Oracle儲存過程中跳出迴圈的寫法

記錄exit和return的用法 1:exit用來跳出迴圈 loop IF V_KBP IS NULL THEN EXIT; END IF; end loop; 2:return跳出儲存過程 loop IF V_KBP IS NULL

oracle 儲存過程 的建立以及使用

1.概念     儲存過程: 實際上是封裝在伺服器上一段PLSQL程式碼片斷,已經編譯好了的程式碼             客戶端取呼叫儲存過程,執行效率就會非常高效

python呼叫oracle儲存過程

# -*- coding: utf-8 -*- import cx_Oracle conn = cx_Oracle.connect('user','pwd','tns') cursor = conn.cursor() #宣告變數 #呼叫儲存過程 sql = ''' declare result

Oracle 儲存過程、函式的建立和呼叫

一、Oracle 建立和呼叫儲存過程 1、基本語法 create or replace procedure update_emp_sal (Name in out type, Name in out type, ... ) is begin end update_emp_

DB2 儲存過程複製表結構、重命名錶、刪除表實現及Mybatis如何呼叫

----Mybaits呼叫db2儲存過程 <update id="changeTableName" parameterType="java.util.Map" statementType="CALLABLE"> call

C#呼叫oracle儲存過程最簡單的例項

              OracleParameter[] parameters={                                  new OracleParameter("paramin",OracleType.VarChar,20),